vLLM - 高性能LLM推理引擎

文章目录

      • 前言
        • 大型语言模型(LLM)部署工具对比
        • Ollama和vLLM的一些选型建议
      • vLLM 简介
      • vLLM 安装部署
        • 使用 pip 安装
        • 遇到的问题解决
      • HuggingFace 获取模型
        • huggingface-cli 下载模型
          • 安装依赖
          • 下载模型
        • hf_transfer 加速
        • 设置镜像站
          • 方式一
          • 方式二
        • 下载使用示例
      • vLLM 大模型部署推理
        • OpenAI 兼容服务器
          • 启动服务器
            • vllm serve 启动服务器
            • 使用 python 启动服务器
            • 使用 Docker 启动服务器
          • API 参考
            • vllm serve 参数
            • 通过 curl 命令请求

前言

大型语言模型(LLM)部署工具对比
工具名称 性能表现 易用性 适用场景 硬件需求 模型支持 部署方式 系统支持
SGLang v0.4 零开销批处理提升1.1倍吞吐量,缓存感知负载均衡提升1.9倍,结构化输出提速10倍 需一定技术基础,但提供完整API和示例 企业级推理服务、高并发场景、需要结构化输出的应用 推荐A100/H100,支持多GPU部署 全面支持主流大模型,特别优化DeepSeek等模型 Docker、Python包 Linux
Ollama 继承 llama.cpp 的高效推理能力,提供便捷的模型管理和运行机制,并发处理能力相对有限 简单安装,易于使用,跨平台支持,广泛的模型适配,支持 REST API 个人开发者创意验证、辅助学习、日常问答、创意写作等轻量级应用场景 与 llama.cpp 相同,但提供更简便的资源管理,内存占用少 模型库丰富,涵盖 1700 多款,支持一键下载安装 独立应用程序、Docker、REST API Windows、macOS、Linux
VLLM 借助 PagedAttention 和 Continuous Batching 技术,多 GPU 环境下性能优异,充分利用多核CPU和GPU资源 需要一定技术基础,配置相对复杂 大规模在线推理服务、高并发场景 要求 NVIDIA GPU,推荐 A100/H100,相对ollama显存占用更大 支持主流 Hugging Face 模型 Python包、OpenAI兼容API、Docker 仅支持 Linux
LLaMA.cpp 多级量化支持,跨平台优化,高效推理 命令行界面直观,提供多语言绑定 边缘设备部署、移动端应用、本地服务 CPU/GPU 均可,针对各类硬件优化 GGUF格式模型,广泛兼容性 命令行工具、API服务器、多语言绑定 全平台支持

综合来看

  • 如果您是专业的科研团队,拥有强大的计算资源,追求极致的推理速度,那么 SGLang 无疑是首选,它能像一台超级引擎,助力前沿科研探索;
  • 要是您是个人开发者,或是中小型项目的原型开发,可在本地轻松玩转大模型,Ollama 就如同贴心伙伴,随时响应您的创意需求;
  • 对于需要搭建大规模在线服务,面对海量用户请求的开发者而言,VLLM 则是坚实后盾,以高效推理确保服务的流畅稳定;
  • 而要是您手头硬件有限,只是想在小型设备上浅尝大模型的魅力,或者快速验证一些简单想法,LLaMA.cpp 就是那把开启便捷之门的钥匙,让 AI 触手可及。
Ollama和vLLM的一些选型建议

Ollama和vLLM各有优劣,具体选择应依据实际需求而定,以下是一些选型建议:

1、简单易用与快速部署:
若您需要一个简单易操作、能够快速部署的LLM解决方案,且对推理速度要求不高,Ollama会是不错的选择。其跨平台支持和低内存占用的特点,使其非常适合资源受限的设备,能够快速搭建起基础的模型应用环境。

例如,对于个人开发者进行小型项目的原型开发、小型团队的内部工具搭建或者非技术人员的日常办公辅助等场景,Ollama的简单性和便捷性能够快速满足需求,降低开发和使用门槛。

2、高性能推理与资源充分利用:
如果您追求高性能的LLM推理,并且具备一定的技术基础和硬件资源,vLLM则更为合适。它的高推理速度和出色的资源利用率,使其能够胜任处理大量并发请求的企业级应用场景,为用户提供高效、稳定的推理服务。

比如,大型互联网公司的核心业务应用、需要高并发处理能力的在线服务平台以及对推理性能有严格要求的科研项目等,vLLM能够充分发挥其优势,提升系统的整体性能和响应速度。

3、技术基础与维护成本:
对于技术基础较弱的用户,Ollama的易用性更具吸引力,无需过多的技术知识和配置经验即可上手使用。而对于有一定技术基础且愿意投入时间进行配置和优化的用户,vLLM提供的高性能和灵活性则更有优势,能够根据具体需求进行深度定制和优化。

例如,初创企业在技术团队尚未成熟时,可能更倾向于选择Ollama来快速实现产品的初步功能;而有一定技术积累的成熟企业,在面对复杂的业务场景和高性能要求时,会选择vLLM并投入相应的技术人力进行深入优化和维护。

4、特定场景需求:
在资源受限的环境中,如个人开发、小型项目等,Ollama的低资源占用和简单部署使其成为首选。而在对性能要求极高、需要处理大规模并发请求的场景下,如大型企业的智能客服系统、在线问答平台等,vLLM凭借其高性能推理和分布式部署能力,能够更好地满足业务需求。

综上所述,Ollama和vLLM各有所长,在选择时应综合考虑项目的具体需求、技术基础和资源状况等因素,以便做出最合适的决策。

vLLM 简介

vLLM 是一个 Python 库,包含预编译的 C++ 和 CUDA (12.1) 二进制文件。

依赖环境

  • 操作系统:Linux
  • Python:3.8 - 3.12
  • GPU:计算能力 7.0 或更高(例如 V100、T4、RTX20xx、A100、L4、H100 等)

vLLM 框架是一个高效的大语言模型推理和部署服务系统,具备以下特性:

  • 高效的内存管理:通过 PagedAttention 算法,vLLM 实现了对 KV 缓存的高效管理,减少了内存浪费,优化了模型的运行效率。
  • 高吞吐量:vLLM 支持异步处理和连续批处理请求,显著提高了模型推理的吞吐量,加速了文本生成和处理速度。
  • 易用性:vLLM 与 HuggingFace 模型无缝集成,支持多种流行的大型语言模型,简化了模型部署和推理的过程。兼容 OpenAI 的 API 服务器。
  • 分布式推理:框架支持在多 GPU 环境中进行分布式推理,通过模型并行策略和高效的数据通信,提升了处理大型模型的能力。
  • 开源共享:vLLM 由于其开源的属性,拥有活跃的社区支持,这也便于开发者贡献和改进,共同推动技术发展。

vLLM 安装部署

使用 pip 安装

您可以使用 pip 安装 vLLM(建议采用 conda 虚拟环境进行安装):

#(推荐)创建一个新的 conda 

你可能感兴趣的:(大数据,ai)