学习笔记|MaxKB对接本地大模型时,选择Ollma还是vLLM?

发布于 2024年11月22日

在使用MaxKB开源知识库问答系统的过程中,除了对接在线大模型,一些用户出于资源配置、长期使用成本、安全性等多方面考虑,还在积极尝试通过Ollama、vLLM等模型推理框架对接本地离线大模型。而在用户实践的过程中,经常会对候选的模型推理框架进行多个维度的考察和对比。

在本文中,我们针对Ollama和vLLM这两款目前比较常用的模型推理框架,尝试从安装配置复杂性、性能、资源占用、成本、扩展性、推理性能等维度进行对比总结,仅供广大社区用户参考。

一、常见维度对比

Ollama

1. 安装和配置

使用Docker容器部署,简化安装流程;

支持多种操作系统(包括Windows、Mac和Linux),提供标准化的API接口。

支持从huggingface/modelscope等平台下载的模型文件。

2. 性能

在GPU环境下,推理速度显著优于CPU,支持OneAPI接入提升性能;

显存占用相对较低,例如Qwen2.5:7b模型仅需6GB显存。

3. 资源占用

在调用时加载模型,显存占用较低,适合在资源有限的环境中运行;

支持多种大模型,包括Qwen2.5等。

4. 成本

本地部署,需要本地机器硬件支持,成本取决于硬件配置。

vLLM

1. 安装和配置

需要安装Python环境和相关依赖,对技术要求较高(也支持Docker);

支持从huggingface/modelscope等平台下载的模型文件。

2. 性能

采用PagedAttention技术,提高内存利用率,支持高并发处理;

在高用户负载下,vLLM官方给出的吞吐量比HuggingFace Transformers高出24倍,比Text Generation Inference高出3.5倍。

3. 资源占用

模型加载常驻显存,显存占用相对较高,例如单卡16GB显存可能不足以运行Qwen2.5:7b模型;

需要较高的计算资源,适合在高性能硬件环境中运行。

4. 成本

本地部署,需要本地机器硬件支持,成本取决于硬件配置。

二、多机、多卡维度对比

在大模型多机、多卡的部署场景下,选择Ollama还是vLLM需要考虑以下两个关键因素:

1. 分布式扩展支持

vLLM提供了原生的多机多卡分布式支持,可以轻松地在多台机器上部署大模型,并且每台机器可以使用多个GPU进行推理。vLLM通过PagedAttention技术有效管理内存,显著提升推理效率;

Ollama虽然也支持多GPU环境,但其分布式部署能力相对较弱,可能需要额外的配置和优化来实现多机、多卡的高效运行。

2. 推理性能

vLLM在GPU上的推理速度显著提升,使用PagedAttention技术实现了比HuggingFace Transformers高14至24倍的吞吐量;

Ollama在GPU上的推理速度也非常快,但在多机、多卡环境下,vLLM的性能优势可能更加明显。

三、总结

总体而言,用户在使用MaxKB对接本地大模型时可以从以下三个维度进行重点考量:

技术基础和资源:如果有较强的技术基础和硬件资源,可以选择vLLM以获得更高的性能和吞吐量。如果希望快速搭建和管理知识库,且对硬件资源要求不高,可以选择Ollama;

成本考虑:如果硬件资源有限,尤其是在只有CPU或者单卡的情况下,选择Ollama进行本地部署是一个不错的选择,能够满足大部分的场景需要。如果有一定的硬件资源,且需要MaxKB具备高性能的问答能力,可以选择vLLM,或者通过类似Xinference平台进行部署;

MaxKB应用场景:简单来说,对于需要高效实时响应和高并发处理的问答场景,vLLM更为适合。对于需要快速搭建和灵活管理知识库的应用场景,Ollama更为适合。

当然,如果在实际私有化部署MaxKB的场景中,除了高性能的推理大模型外,还需要向量模型和重排模型,这个时候推荐部署Xinference进行统一管理和运行模型。

为了方便广大社区用户使用MaxKB开源知识库问答系统对接本地大模型,我们特别总结了如下表格: