第一章:本地大模型生态全景
大家好,我是你们的老朋友。今天咱们聊聊本地大模型生态的全景图。说实话,这两年本地大模型发展太快了,我每隔几个月就得重新整理一遍知识库。嗯,今天这章,我就把自己踩过的坑、积累的经验,一次性倒给你们。
1.1 主流开源模型对比:Llama、Qwen、Mistral
先说说模型选型。我个人习惯把开源模型分成三派:Llama 系、Qwen 系、Mistral 系。这三家各有各的脾气。
Llama(Meta)
Llama 是开源界的「老大哥」。我记得 2023 年初第一次跑 Llama 1 时,还得用 8 张 A100 才能推理。现在 Llama 3 已经非常亲民了。它的特点是:
- 生态最成熟:几乎所有框架都优先支持 Llama
- 英文能力强:英文对话、代码生成,Llama 3 70B 至今仍是标杆
- 社区活跃:微调教程、LoRA 权重,一搜一大把
但 Llama 有个硬伤——中文能力偏弱。我在项目中试过用 Llama 3 8B 做中文客服,效果不如 Qwen。说白了,它更适合英文场景。
Qwen(阿里)
Qwen 是我目前最常用的中文模型。为什么?因为它在中文理解上确实下了功夫。Qwen2.5 系列有几个亮点:
- 中文碾压:古诗词、成语、方言,它都能 hold 住
- 长上下文:128K 上下文窗口,处理长文档很爽
- 量化友好:Qwen2.5 7B 量化到 4bit 后,6GB 显存就能跑
我曾经用 Qwen2.5 7B 做过一个合同审查工具,128K 上下文刚好能塞下一整份合同。你想想看,要是用 Llama,可能得切段处理,麻烦得很。
Mistral(法国团队)
Mistral 是个「小而美」的选手。Mistral 7B 在发布时,性能直接对标 Llama 2 13B。它的特点:
- 效率极高:同等参数量下,推理速度最快
- MoE 架构:Mistral 8x7B 是混合专家模型,只激活部分参数
- 指令遵循好:微调后的 Mistral 7B Instruct,听话程度一流
但 Mistral 的中文支持一般,而且社区资源不如前两家丰富。我建议把它作为「备选方案」,特别是对推理延迟有要求的场景。
我的选型建议:
- 中文场景 → Qwen2.5
- 英文/代码场景 → Llama 3
- 低延迟/边缘设备 → Mistral 7B
1.2 硬件选型:GPU、内存、量化
硬件这块,我踩过的坑最多。刚开始做本地部署时,我天真地以为「显存够大就行」。后来发现,带宽、内存、CPU 都会成为瓶颈。
GPU 选型
目前主流选择就三档:
| 档次 | 推荐显卡 | 显存 | 能跑什么 |
|---|---|---|---|
| 入门 | RTX 3060 12G / RTX 4060 Ti 16G | 12-16GB | 7B 模型(4bit 量化) |
| 主流 | RTX 4090 24G / A5000 | 24GB | 13B 模型(4bit)或 7B(FP16) |
| 专业 | A100 80G / H100 | 80GB+ | 70B 模型(4bit)或 13B(FP16) |
我个人建议:如果预算有限,优先考虑 RTX 4060 Ti 16G。为什么?因为它能跑 7B 模型的 4bit 量化版本,而且功耗低。我曾经用 3060 12G 跑 Qwen2.5 7B,显存刚好够,但稍微开点上下文就爆了。
内存与量化
内存这块,很多人会忽略。其实推理时,模型权重需要从内存加载到显存。如果内存不够,系统会使用交换分区,速度直接掉到「幻灯片」级别。
量化是解决显存问题的关键。我常用的量化方案:
- 4bit 量化:显存占用降低 4 倍,质量损失约 5%
- 8bit 量化:显存降低 2 倍,质量几乎无损
- FP16:全精度,但显存需求翻倍
避坑指南:我曾经在 8GB 显存的卡上强行跑 13B 模型的 4bit 版本,结果推理速度只有 1 token/s。后来发现,显存不够时,模型会频繁在显存和内存之间交换数据。所以,显存一定要留出 20% 的余量。
1.3 部署框架概览:llama.cpp、Ollama、vLLM
框架选择,说白了就是「你要快,还是要省心」。我三个框架都用过,各有各的适用场景。
llama.cpp
llama.cpp 是「硬核玩家」的首选。它用 C++ 实现,支持 CPU 推理,而且量化方案最全。我最早接触它时,还是在命令行里手动编译。现在它已经支持 GPU 加速了。
它的核心优势:
- CPU 也能跑:没有 GPU 也能玩,只是慢点
- 量化格式多:GGUF 格式,支持 Q2_K 到 Q8_0 各种量化
- 轻量级:编译后只有几十 MB
但 llama.cpp 的 API 比较原始,需要自己写代码调用。我一般用它做模型测试和量化实验。
Ollama
Ollama 是「懒人福音」。它把模型下载、部署、API 封装成一条命令。你只需要:
ollama pull qwen2.5:7b
ollama run qwen2.5:7b
搞定。Ollama 底层其实用了 llama.cpp,但封装得非常友好。我建议初学者从 Ollama 入手,先跑起来再说。
不过 Ollama 也有缺点:自定义能力弱。如果你想改采样参数、加 LoRA,就得自己写代码了。
vLLM
vLLM 是「性能怪兽」。它专为高并发推理设计,支持 PagedAttention 和连续批处理。我在生产环境中用过 vLLM 部署 Qwen2.5 72B,吞吐量比原生实现高了 3 倍。
它的核心特性:
- 高吞吐:适合 API 服务场景
- 兼容 OpenAI API:可以直接用 OpenAI 的客户端调用
- 支持多 GPU:自动张量并行
注意:vLLM 对显存要求高,而且只支持 CUDA。如果你用的是 AMD 卡或者 Mac,就别想了。
知识体系结构图
下面这张图,是我自己整理的本地大模型生态全景。你可以把它当作「导航地图」:
嗯,这张图其实是我在项目复盘时画的。你会发现,模型、硬件、框架三者是相互制约的。比如,你想跑 70B 模型,就得有 A100 级别的显卡,然后框架选 vLLM 才能发挥性能。反过来,如果你只有 8GB 显存,那就只能选 7B 模型 + 4bit 量化 + Ollama。
我的经验:刚开始别追求「大模型」。先拿 7B 模型跑通流程,再逐步升级。我曾经一上来就想跑 70B,结果折腾了两周,最后发现 7B 已经能满足 80% 的需求。
好了,这一章的内容就到这里。本地大模型的生态其实比想象中要丰富,但也更复杂。下一章我们会深入具体框架的部署细节,到时候我会手把手带大家跑起来。