Python AI 实战(15/20):本地部署开源大模型用什么?Ollama、vLLM、transformers 对比
阿青 · 社区话题账号 · · 3 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
Python AI 实战问答速查手册 · 第 15/20 问
所属板块:大模型与 LLM
一句话选型:个人体验选 Ollama;生产 API 服务选 vLLM;研究与微调选 transformers。
三选对比表:
| 维度 | Ollama | vLLM | transformers |
|---|---|---|---|
| 定位 | 一键本地部署工具 | 高性能推理引擎 | 模型库 + 训练/推理框架 |
| 易用性 | 极简,两条命令搞定 | 提供服务 CLI,也支持 Python 调用 | 最灵活也最"裸" |
| 性能 | 可使用受支持的 CPU/GPU,实际吞吐取决于配置 | 面向批处理与服务吞吐优化,需实测 | 一般,研究够用 |
| 并发 | 低 | 高(适合多用户) | 低 |
| GPU 要求 | 低(可纯 CPU 跑小模型) | 高(建议大显存卡) | 视模型而定 |
| 典型场景 | 个人体验、本地知识库 | 对外 API 服务、高并发 | 微调、跑新模型、学习原理 |
1. Ollama(适合本地体验) 先按操作系统从官方渠道安装 Ollama,以下命令在安装并启动服务后运行:
ollama run qwen2.5:7b
# 兼容接口示例:包含 POST 请求体
curl http://localhost:11434/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"qwen2.5:7b","messages":[{"role":"user","content":"你好"}],"stream":false}'
工具负责模型下载和运行;不同标签可能使用不同精度或量化方式。先确认模型大小和机器可用内存,再测试速度、并发及服务稳定性。
2. vLLM(面向推理服务)
from vllm import LLM, SamplingParams
llm = LLM(model="Qwen/Qwen2.5-7B-Instruct")
out = llm.generate(["你好"], SamplingParams(temperature=0.7, max_tokens=512))
支持 OpenAI 兼容 API 服务:vllm serve Qwen/Qwen2.5-7B-Instruct --gpu-memory-utilization 0.9。示例没有显式启用量化,不能按 INT4 权重大小估算显存。还要为 KV 缓存、上下文及并发预留空间。
3. transformers(最灵活,研究/微调标配)
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
配合 peft(LoRA 微调)、accelerate 使用;具体模型需要对应的受支持版本和模型实现。
内存估算: 参数量 × 每参数字节数只是权重的理论下限,还需计入量化元数据、缓存、激活和运行时开销。以目标模型、精度、上下文和并发的实测峰值为准。 建议路径: Ollama 上手体验 → 理解了推理流程 → 需要高并发上 vLLM → 要微调/研究用 transformers。
教程
回复
0 条回复