大模型部署ollama/vLLM/LMDeploy/SGLang区别
1. Ollama
1.1 简介
一个轻量级的模型托管框架,可在本地环境中运行和管理 LLM 模型。基于 Go 语言开发,集成了模型管理与交互界面,采用 MIT 许可。
Ollama 是基于 llama.cpp 开发的高层封装工具,它继承了 llama.cpp 的高效推理能力,同时大大简化了用户使用体验。它的安装过程堪称 "丝滑",无论你是 Windows、Linux 还是 MacOS 系统的用户,只需按照官网简洁明了的指引操作,短短几分钟,就能完成安装部署。跨平台的特性,让不同系统的用户都能毫无阻碍地拥抱大模型技术。
作为 llama.cpp 的上层应用,Ollama 不仅保留了底层引擎的高效性能,还在此基础上提供了更加友好的用户界面和更丰富的功能特性。它的模型库宛如一座宝藏,收纳了诸如 Llama、Qwen 等 1700 多款大语言模型,无论你是想探索前沿的学术研究,还是进行创意写作、日常问答,都能从中找到心仪之选。操作更是简单到极致,一条命令 "ollama run < 模型名称>",就能瞬间唤醒模型,开启智能交互之旅。不仅如此,Ollama 还极具 "个性",允许用户通过 Modelfile 自定义模型。你可以根据需求,灵活调整创造性参数或系统消息,让模型输出贴合特定场景。例如,在创作故事时,调高创造性参数,模型便能生成天马行空的情节;而在回答专业问题时,优化系统消息,使其给出精准严谨的答案。在日常使用中,对于个人开发者想要快速验证某个创意项目,或是学生党用于辅助学习、解答学科难题,Ollama 都能完美胜任,以其便捷性和灵活性,成为大家探索 AI 世界的得力伙伴。
网站: Ollama
# 1. 官网下载(支持全平台) https://ollama.com/
# 2. 一行命令启动(以Qwen为例) ollama run qwen:0.5b
# 3. 浏览器访问 http://localhost:11434
1.2 技术原理
1.3 优缺点
- 仅支持4bit量化模型
- 对话超过4096token会截断
- 企业级应用慎用
1.4 适用场景
适用于个人开发者测试、教育场景以及轻量应用
1.5 调用指南
2. vLLM
2.1 简介
高效的大型语言模型推理和部署框架,由加州大学伯克利分校开发,采用 Apache 2.0 许可,以 Python/PyTorch 为基础,优化了显存管理与批处理。基于PagedAttention技术的高吞吐推理框架,在NVIDIA/AMD GPU集群上展现卓越性能,支持多节点张量并行。
百万并发不是梦!GPU榨干指南
# 创建专用环境 conda create -n vllm python=3.12 -y && conda activate vllm
# 安装最新版(CUDA12.1+) pip install vllm
# 启动API服务(8卡A100示例) vllm serve --model Qwen2.5-72B --tensor-parallel-size 8
2.2 技术原理
官网文档:
https://docs.vllm.ai/en/latest/
中文文档(非官方):
https://vllm.hyper.ai/docs/getting-started/installation
cuda要求
vLLM contains pre-compiled C++ and CUDA (12.1) binaries.
架构与核心原理: vLLM 通过创新的 PagedAttention 技术,将每个序列的 KV 缓存分割成多个不连续的内存块(pages),从而避免了内存碎片化和冗余分配,极大地提升了内存使用效率,尤其是在处理长序列和多并发请求时。此外,vLLM 还采用了 Continuous Batching 技术,通过动态地将多个请求合并到一个批次中进行处理,显著提高了 GPU 的利用率和吞吐量。
2.3 优缺点
能调优秘籍:
- 开启PagedAttention提升吞吐量
- 使用Continuous batching处理突发流量
- 官方中文文档:https://vllm.hyper.ai
-
特点与优势: 高吞吐量、低延迟、优秀的长序列支持(与第六章讨论的长文本推理挑战相关)、支持多种量化方法(例如 FP8,与第五章讨论的模型优化相关)、与 OpenAI API 兼容、与 Hugging Face Transformers 生态系统深度集成。
2.4 适用场景
适用于需要处理大批量 Prompt 输入且对推理速度要求高的场景,高并发在线服务,如智能客服、批量生成,大规模文档处理等场景,以及单节点多 GPU 推理或中小规模云原生部署,对社区模型(如 LLaMA 系列)兼容性更优。
2.5 调用指南
(1)创建Python环境安装vLLM
#Create a new conda environment.
conda create -n vllm python=3.12 -yconda activate vllm# Install vLLM with CUDA 12.4. # If you are using pip. pip install vllm
(2)运行本地大模型
1、下载NLP大模型。
推荐大模型 qwen,llama,glm 。我们拿qwen2.5-0.5b来做测试。使用python语言调用模塔社区的大模型。
大模型网址
ModelScope 魔搭社区
# pip install modelscope#模型下载到本地。from modelscope import snapshot_downloadmodel_dir = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct',cache_dir="/root/autodl-tmp/llm")
cache_dir一定要指定绝对路径。
2、vLLM运行大模型
sh命令:
vllm serve /root/autodl-tmp/llm/Qwen/Qwen2.5-0.5B-Instruct
测试:
from openai import OpenAIclient = OpenAI( base_url="http://localhost:8000/v1", api_key="token-abc123",)completion = client.chat.completions.create( model="/root/autodl-tmp/llm/Qwen/Qwen2.5-0.5B-Instruct", messages=[ {"role": "user", "content": "请使用java编写冒泡排序!"} ])print(completion.choices[0].message)
其中vLLM的端口号是8000,model的值为模型的绝对路径。
3. LMDeploy(国产)
3.1 简介
由商汤科技团队维护的国产部署方案,提供从模型量化到服务编排的全流程工具链,支持与昇腾/海光等国产芯片深度适配
github地址:
https://github.com/InternLM/lmdeploy
官方文档:
https://lmdeploy.readthedocs.io/zh-cn/latest/
4bit量化实测:推理速度提升240%!
GitHub - InternLM/lmdeploy: LMDeploy is a toolkit for compressing, deploying, and serving LLMs.
# 环境配置(推荐Python3.8) pip install lmdeploy[all]
# 一键启动量化服务 lmdeploy serve api_server ./qwen2.5-72b \ --quant-policy 4 \ --cache-max-entry-count 0.5
- 架构特点: LMDeploy 以极致的 GPU 性能为目标,通过深度优化底层算子和调度策略,实现了超低的推理延迟和极高的吞吐量。它还深度应用了 FlashAttention 等技术来进一步提升性能。
3.3 优缺点
核心优势: 完美契合企业级实时应用的需求,对国产 GPU 进行了深度适配,具备优秀的多模态处理能力。
- 支持对话状态持久化(告别重复计算)
- 多机多卡自动负载均衡
- 通过OpenCompass可靠性认证
3.4 适用场景
适合国内企业和政府机构在特定国产硬件环境下部署,以及对实时性要求极高的应用场景。
3.5 调用指南
安装LMDeploy
conda create -n lmdeploy python=3.8 -yconda activate lmdeploypip install lmdeploy
运行本地大模型
sh命令:
pip install partial_json_parser
lmdeploy serve api_server /root/autodl-tmp/llm/Qwen/Qwen2.5-0.5B-Instruct --server-port 23333
–server-port 23333 指明端口号是23333 ,大模型路径要是绝对路径。api_server 启动时的参数可以通过命令行lmdeploy serve api_server -h查看。 比如,–tp 设置张量并行,–session-len 设置推理的最大上下文窗口长度,–cache-max-entry-count 调整 k/v cache 的内存使用比例等等。
4. SGLang
4.1 简介
SGLang 是伯克利团队开源的大模型推理引擎,最新发布的 v0.4 版本带来了多项重大性能提升。其核心技术亮点包括:
-
零开销批处理调度器:通过将 CPU 调度与 GPU 计算重叠,实现了 1.1 倍的吞吐量提升。
-
缓存感知负载均衡器:引入智能路由机制,可实现高达 1.9 倍的吞吐量提升,并将缓存命中率提高 3.8 倍。
-
DeepSeek 模型的数据并行注意力机制:针对特定模型优化,可实现高达 1.9 倍的解码吞吐量提升。
-
基于 xgrammar 的快速结构化输出:在 JSON 解码任务中比其他开源方案快达 10 倍。
这些优化使得 SGLang 在处理大规模并发请求时表现出色,特别适合需要高性能推理的企业级应用场景。例如,在处理共享前缀的批量请求时,新版本可以达到 158,596 token/s 的吞吐量,缓存命中率高达 75%。
零开销批处理提升1.1倍吞吐量,缓存感知负载均衡提升1.9倍,结构化输出提速10倍
4.5 调用指南
pip install "sglang[all]>=0.4.1.post5" --find-links
https://flashinfer.ai/whl/cu124/torch2.4/flashinfer
python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V3 --tp 8 --trust-remote-code
import openai
client = openai.Client(
base_url="http://127.0.0.1:30000/v1", api_key="EMPTY")
# Chat completion
response = client.chat.completions.create(
model="default",
messages=[
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."},
],
temperature=0,
max_tokens=64,
)
print(response)
5. 对别
将这几款工具放在一起 "掰手腕",从性能、易用性、适用场景等多个维度来一场全方位的较量,帮你找到最称手的那个 "兵器"。
工具名称 | 性能表现 | 易用性 | 适用场景 | 硬件需求 | 模型支持 | 部署方式 | 系统支持 |
---|---|---|---|---|---|---|---|
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 环境下性能优异 | 需要一定技术基础,配置相对复杂 | 大规模在线推理服务、高并发场景 | 要求 NVIDIA GPU,推荐 A100/H100 | 支持主流 Hugging Face 模型 | Python包、OpenAI兼容API、Docker | 仅支持 Linux |
LLaMA.cpp | 多级量化支持,跨平台优化,高效推理 | 命令行界面直观,提供多语言绑定 | 边缘设备部署、移动端应用、本地服务 | CPU/GPU 均可,针对各类硬件优化 | GGUF格式模型,广泛兼容性 | 命令行工具、API服务器、多语言绑定 | 全平台支持 |
综合来看,如果您是专业的科研团队,拥有强大的计算资源,追求极致的推理速度,那么 SGLang 无疑是首选,它能像一台超级引擎,助力前沿科研探索;要是您是普通的个人开发者、学生,或是刚踏入 AI 领域的新手,渴望在本地轻松玩转大模型,Ollama 就如同贴心伙伴,随时响应您的创意需求;对于需要搭建大规模在线服务,面对海量用户请求的开发者而言,VLLM 则是坚实后盾,以高效推理确保服务的流畅稳定;而要是您手头硬件有限,只是想在小型设备上浅尝大模型的魅力,或者快速验证一些简单想法,LLaMA.cpp 就是那把开启便捷之门的钥匙,让 AI 触手可及。