在使用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开源知识库问答系统对接本地大模型,我们特别总结了如下表格: