vLLM 与Ollama:不同场景下如何选择

复制 URL

在将大语言模型(LLM)集成至 AI 应用时,vLLM 适用于高性能生产环境,而 Ollama 则更适合本地开发场景。两者分别覆盖了 LLM 部署需求的两端:vLLM 是企业级大规模场景的理想选择,Ollama 则更适合小规模项目。 

可以用一个形象的比喻来理解 vLLM 与 Ollama 之间的区别:Ollama 就像一辆跑车,启动快、运行迅速,但无法同时搭载太多用户;vLLM 就像一列高速列车,不仅速度快,还能同时服务大量用户。 

归根结底,选择 vLLM 还是 Ollama 取决于开发人员自身的技术背景,以及项目的规模与范围。对于在本地进行实验的开发人员而言,Ollama 是一个理想起点。而对于正迈向大规模生产的团队来说,vLLM 提供了可靠高效地大规模运行 LLM 所需的基础能力。

Ollama 还是 vLLM?如何选择合适的模型部署工具

vLLM 是一个开源代码库,旨在帮助 LLM 以更高效、更快速的方式在大规模场景下完成计算。vLLM 的总体目标是最大限度地提高吞吐量(每秒处理的词元数),以便同时为大量用户提供服务。 

vLLM 包含两个核心组件:推理服务器(用于管理网络流量)和推理引擎(用于提升计算速度): 

  • 推理服务器组件负责管理等待服务的用户队列并处理外部网络流量。它的主要职责不是执行密集型计算,而是专注于通信协议,确保数据能够高效地进出系统。
  • 推理引擎组件通过优化图形处理单元(GPU)的使用率来提升生成速度。它利用 PagedAttention 等算法来高效管理键值(KV)缓存,并通过连续批处理优化请求调度,从而显著提高计算效率。

推理服务器和推理引擎共同承担着实现低延迟的责任,所谓低延迟,是指从用户点击“发送”到输出结果返回之间的时间尽可能短。推理服务器的设计目标是避免引入不必要的延迟。它通过快速接收请求、将其传递给引擎,并尽快通过网络返回响应来实现这一点。推理引擎则负责主动降低延迟,通过优化 GPU 计算的组织方式来提升处理速度。借助这种加速机制,vLLM 能够在单个实例中同时为数百名用户提供服务。 

在 LLM 应用所需硬件成本居高不下的市场环境中,vLLM 能够帮助企业组织用更少资源做更多事情。它具备高流量处理能力,专为大规模场景设计,因此非常适合对延迟敏感、多用户并发的部署需求。总体而言,在同时处理大量请求的场景下,vLLM 的表现优于 Ollama。 

阅读有关 vLLM 的更多信息

实施 AI 技术的 4 个关键注意事项

Ollama 是一款开源工具,可让用户在本地私下运行 LLM。这意味着您可以直接在笔记本电脑上下载、更新和管理 LLM,无需向云端发送任何隐私信息。 

Ollama 源自 llama.cpp 项目,这是一个可在多种 LLM 上执行推理的开源库。Ollama 自动处理了编译、配置和管理底层组件等较为复杂的步骤,从而向最终用户屏蔽了这些实现细节。 

Ollama 设计简洁,几乎无需复杂配置,上手直观,非常适合初学者使用。对于经验更丰富的开发人员,它则更适合用于不同 LLM 的实验和快速原型开发。

vLLM 和 Ollama 均为 LLM 部署框架,为开发人员提供可用于构建 AI 应用的模型访问能力。具体而言,LLM 部署框架是在规模更大的应用架构中负责执行推理的软件组件。 

尽管 vLLM 和 Ollama 面向不同类型的用户,但它们有着多项共同的基本特性:

  • 两者均为开源工具。
  • 两者均包含推理服务器组件。
  • 两者均允许用户在自有硬件上运行 LLM,而无需依赖第三方 API。
  • 两者均致力于充分利用用户的可用硬件以提升推理速度。
  • 两者均支持多模态模型,可处理文本之外的更多数据类型。
  • 两者均支持检索增强生成(RAG),这一技术可让开发人员利用自定义外部知识/数据来补充 LLM 中的既有信息。 

vLLM 提供的高级能力需要开发人员具备较深的技术理解,因此它更适合经验丰富的开发人员,学习曲线也比 Ollama 更陡峭。 

例如,vLLM 能够处理任意规模的模型,包括拥有数十亿参数的大模型。要充分利用该技术的优势,开发人员需要理解并掌握分布式推理等概念。 

vLLM 还具备针对特定用例进行微调的潜力。为获得最佳性能,开发人员应熟悉参数高效微调(PEFT)LoRA/QLoRA 等方法。

总之,vLLM 适用于需要充分“榨取”服务器性能潜力并部署可靠、可扩展应用的开发人员。还记得我们的高速列车比喻吗?vLLM 擅长在极短时间内同时服务大量用户。 

Ollama 允许用户在个人电脑上下载并运行 LLM,提供了一种简单直观的方法来测试 AI 模型。然而,Ollama 的设计更侧重于简化本地使用体验,而不是支持大规模扩展。当用户发起更多请求时,这些请求必须在队列中等待。因此,开发人员通常在追求便利性且不需要服务大量用户时选择 Ollama。 

Ollama 默认以离线模式运行。这意味着下载模型之后,它即可在无互联网连接的情况下正常工作。虽然 vLLM 也能提供极高的隐私保护,但它需要搭建私有服务器或配置安全的云环境,这一额外步骤对技术能力提出了更高要求。 

vLLM 和 Ollama 均包含推理服务器组件。这意味着两者都会接收请求、解析数据、将其发送到引擎,并将生成的响应打包返回给最终用户的应用端。 

然而,vLLM 是一个推理引擎,而 Ollama 不是。因此 vLLM 能够以 Ollama 无法做到的方式优化推理过程。作为推理引擎,vLLM 在内存管理和多用户并发处理方面表现更出色:

内存管理:vLLM 使用 PagedAttention 算法来管理 GPU 内存结构,能够有效释放 GPU 空间,从而支持同时运行更多请求,实现高并发。 

并发处理:vLLM 通过连续批处理来管理数据流并充分利用 GPU,因此能够同时处理大量用户请求。 

Ollama 与 vLLM 性能对比

红帽® AI 巧借开源创新的力量来应对企业级 AI 大规模落地的挑战,而 vLLM 正是我们工具箱中的关键组件。

借助红帽 AI,您可以使用红帽 AI 推理服务器,在混合云环境中优化模型推理,从而实现更快、更经济高效的部署。该推理服务器由 vLLM 提供技术支持,能让 GPU 高效运行并实现更快的响应速度。

红帽 AI 推理服务器还包含红帽 AI 存储库,这是一个经过第三方验证和优化的模型集合,既能保证模型选择的灵活性,又能促进跨团队的一致性。通过接入第三方模型存储库,企业能够显著缩短推向市场所需的时间,并降低 AI 成功落地的成本门槛。  

博客

Artificial Intelligence (AI)

See how our platforms free customers to run AI workloads and models anywhere

携手红帽探索 AI 之旅:为您的 AI 之旅提供专业知识、培训和支持服务

探索红帽独特的 AI 产品组合。红帽 AI 可以通过人工智能(AI)帮助您实现业务和 IT 目标。

扩展阅读

一文了解什么是 MLOps?

机器学习运维(MLOps)是一组工作流实践,旨在简化机器学习(ML)模型的部署和维护过程。MLOps 是一种结合了 DevOps 和 GitOps 原则的方法,以便将 ML 模型集成到软件开发过程中。

SLM 与 LLM 的对比:什么是小语言模型?

小语言模型(SLM)是大语言模型(LLM)的精简版本,具有更专业化的知识、定制速度更快且运行效率更高。

LoRA 与QLoRA:有何区别

LoRA(低秩自适应)和 QLoRA(量化低秩自适应)技术均可用于训练 AI 模型。

AI/ML 相关资源

特色产品

  • 红帽 AI

    灵活的解决方案,可加快 AI 解决方案在混合云环境中的开发和部署。

相关文章