第一章:本地大模型生态全景

大家好,我是你们的老朋友。今天咱们聊聊本地大模型生态的全景图。说实话,这两年本地大模型发展太快了,我每隔几个月就得重新整理一遍知识库。嗯,今天这章,我就把自己踩过的坑、积累的经验,一次性倒给你们。

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,就别想了。

知识体系结构图

下面这张图,是我自己整理的本地大模型生态全景。你可以把它当作「导航地图」:

本地大模型生态全景 开源模型 Llama(英文/代码) Qwen(中文) Mistral(高效) 硬件选型 GPU(显存决定上限) 内存(带宽影响速度) 量化(4bit/8bit/FP16) 部署框架 llama.cpp(硬核) Ollama(省心) vLLM(高性能) 核心逻辑:模型选型 → 硬件匹配 → 框架部署 三者相互制约,需要根据场景做权衡

嗯,这张图其实是我在项目复盘时画的。你会发现,模型、硬件、框架三者是相互制约的。比如,你想跑 70B 模型,就得有 A100 级别的显卡,然后框架选 vLLM 才能发挥性能。反过来,如果你只有 8GB 显存,那就只能选 7B 模型 + 4bit 量化 + Ollama。

我的经验:刚开始别追求「大模型」。先拿 7B 模型跑通流程,再逐步升级。我曾经一上来就想跑 70B,结果折腾了两周,最后发现 7B 已经能满足 80% 的需求。

好了,这一章的内容就到这里。本地大模型的生态其实比想象中要丰富,但也更复杂。下一章我们会深入具体框架的部署细节,到时候我会手把手带大家跑起来。

专注资料整理