大模型黑话解释

听人说「上个 Q4」「别全参上 LoRA」「KV 打满了」时用。量化单独讲透,其余按场景对照。


1. 量化(Quantization)

一句话:用更少的比特去存模型权重,换显存和速度,略微牺牲精度。

模型里每个参数本来是高精度小数。训练和「原版推理」常用 16 位浮点(FP16 / BF16),每个数 2 字节。70 亿参数(7B)光权重就大约:

7e9 × 2 字节 ≈ 14 GB

消费级显卡往往只有 8GB、12GB。量化做的事,就是把这些数压成 8 位、4 位甚至更低:

你听到的大约位宽7B 体积量级直观感觉
FP16 / BF1616 bit14 GB原汁原味,训练常用
Q8_08 bit7–8 GB几乎无损
Q5_K_M~5 bit5–6 GB质量和体积都要
Q4_K_M~4 bit4–5 GB本地默认,Ollama 最常见
Q3 / IQ23 bit 及以下3 GB 以下能跑就行,质量掉得快

像照片从无损压成 JPEG:日常看不出来,把细节放大才有噪点。所以「Q4 就能跑」不是偷工减料,是为了把模型塞进你的机器。

1.1 文件名怎么读

Ollama / llama.cpp 用的权重格式叫 GGUF。名字里的档位例如:

  • Q4_K_M:约 4bit,K 表示按块混合量化(比早期 Q4_0 细),M 是 medium(比 S 肥、比 XL 瘦)
  • Q8_0:8bit,质量接近原版
  • Q5_K_M:介于 Q4 和 Q8 之间

经验:日常 Q4_K_M;要质量升 Q5 / Q8;显存不够再降 Q3。别一上来用 IQ2。

1.2 量化不是这些东西

黑话它在干什么和量化的差别
蒸馏 Distillation另训一个小模型去模仿大模型换了一套权重,不是把原权重存糙
LoRA冻住原模型,另贴一小层来微调是训练方法,不是压缩格式
QLoRA先把原模型量化,再做 LoRA量化是为了训得动,不是为了上线体积
GPTQ / AWQGPU 上的量化方案和 GGUF 不是一条产线:vLLM 常用 AWQ,Ollama 常用 GGUF

1.3 显存炸了,不一定是没量化

权重量化主要缩小模型文件。对话一长,真正往上爬的是 KV Cache(注意力的缓存),跟上下文长度、并发、层数有关。长文档 OOM,优先怀疑 KV,而不是「Q4 还不够狠」。


2. 现场翻译

原话人话
上 Q4_K_M 的 14B,ctx 32k140 亿参数、约 4bit 量化,上下文开到约 3.2 万 token。8~12GB 显存常见能跑
别全参,LoRA 贴一下不要改全部权重。冻住原模型,只训一小块适配器
先 RAG,别先微调知识会变、要可追溯,就检索后回答。微调改的是习惯和技能
不是权重大,是 KV 打满了模型文件没超,是长上下文的缓存把显存吃完了
温度调低,开 JSON mode少随机,强制按结构吐,适合抽取和接口
这是 MoE,激活 13B总参数更大,但每次只跑一部分专家。硬盘按总量,算力更接近激活量

3. 模型长什么样

参数量(7B / 14B / 70B)
B = Billion = 十亿个可学习数字。参数多通常更强,也更吃显存。比较模型时:先看参数量,再看量化档、上下文、是不是 MoE。

稠密 vs MoE
稠密:每次推理走完全部权重。MoE(Mixture of Experts):一排专家,路由只叫醒其中几个。所以会听到「总参数 47B、激活 13B」——硬盘按总量,算力更接近激活量。显存仍可能按总参数估,别只看激活量下单。

Transformer
现在聊天模型几乎都是 Decoder-only Transformer:从左到右一个 token 一个 token 生成。

多模态 / VLM
能看图、听声。能看不等于 OCR 专精,发票表格、印章、小字仍可能翻车。


4. 推理与部署

Token
模型读写的最小碎片,不是「一个汉字」或「一个英文单词」。英文大约 1 token ≈ 0.75 词;中文常 1 字 ≈ 1~2 token。计费、窗口、速度都按 token 算。

上下文窗口(ctx / num_ctx / 32K / 128K)
模型一次能「看见」的 token 上限,含输入 + 输出。窗口越大,KV Cache 越吃显存。标称 128K 不等于默认就按 128K 跑。

推理 Inference
用训好的模型生成答案。聊天、补全、工具调用都是推理,不是训练。

Prefill / Decode
先一次性读完提示(prefill,吃算力),再逐字往外吐(decode,吃显存带宽)。长文档卡住,常常慢在读入。

首字延迟 TTFT / 吞吐 TPS
多久开始说话,以及每秒能吐多少字。产品体感差,先看 TTFT。

运行时 ≠ 模型
Ollama / llama.cpp 是本地引擎(GGUF)。vLLM 是 GPU 高并发引擎。Qwen / Llama 才是模型。前者是跑步机,后者是运动员。


5. 训练与微调

预训练 Pretrain
在海量文本上学会语言,得到 base。base 很会续写,不一定会听话聊天。

SFT(监督微调)
用「问题–答案」对,把基座教成助手。数据质量比数量更重要。

RLHF / DPO
用「哪个更好」而不是标准答案,把口味调正。DPO 工程上更常见;GRPO 多出现在推理模型讨论里。

LoRA
不改原权重,另贴一小层低秩矩阵。产出是很小的 adapter,可插拔。细节见《LoRA 微调原理与实战》。

全参微调
所有权重都训练。数据少容易过拟合,还可能灾难性遗忘(新的会了,旧的忘了)。多数业务优先 LoRA。

蒸馏
让小模型模仿大模型的输出,把能力压缩进去。不是量化。


6. 提示与生成

Prompt / System prompt
你喂给模型的输入。System 放身份和硬规则,User 放本次任务。

思维链 CoT
先分步想再给结论。普通模型靠提示诱发;推理模型会自己长考。多花 token。

温度 Temperature / Top-p
控制「有多敢花样」。0~0.3 求稳(抽取、JSON);0.7~1.0 求活(写作)。先动温度,别两个一起乱拧。

幻觉 Hallucination
流畅、自信,但事实是假的。模型在补「最像真的」的下一句,不是在查资料。对策:RAG、要求引用、低温、允许说不知道、工具查真源。


7. 检索增强(RAG)

RAG
先查资料再生成,把私有知识临时塞进上下文。适合会变的知识库。微调改行为;RAG 更新知识。

Embedding
把文本变成向量,相近意思在空间里靠近。对话模型负责写;embedding 模型负责找。两者不是同一个模型。

切块 Chunking
长文切成检索单元。太大检索糙,太小语义断。重叠是为了避免关键句落在切口上。切块策略往往比换模型更影响效果。

混合检索
关键词(BM25)抓订单号、SKU;向量抓同义改写。

Rerank
向量先粗召回一堆,再用更准的模型把真正相关的顶上来。常见:召回 20,精排留 5,再塞给 LLM。


8. Agent 与工具

Agent
不只回答,还会规划、调工具、看结果再继续。可靠性取决于工具边界和停止条件,不取决于把提示词写得更像人。

工具调用 Function calling
模型输出「调哪个函数、参数是什么」,由你的程序真去执行。模型不直接碰数据库。

MCP
给 Agent 接工具、接数据源的一种标准协议。

ReAct
Thought → Action → Observation 循环。没观察就行动容易幻觉调用;没停止条件会死循环。


9. 评测与对齐

对齐 Alignment
让模型听人话、少作恶,而不只是会续写。base 没对齐,chat / instruct 对齐过。Guardrail 是外挂过滤。

跑分 / 榜
MMLU 偏知识,HumanEval 偏代码,GSM8K 偏数学,Arena 偏人气。刷榜和你的业务场景不是一回事。以自己的评测集为准。


10. 容易搅在一起的几对

别混的原因
量化蒸馏量化压同一套权重;蒸馏是另训一个小模型
微调RAG微调改模型行为;RAG 临时塞资料
Token字 / 词计费和窗口按 token,不是按汉字个数
参数量上下文长度7B 是脑子大小;32K 是一次能看多长
Embedding 模型对话模型一个负责找相似段落,一个负责写回答
OllamaQwen / Llama前者是跑步机,后者才是运动员
AgentChatbotAgent 会调工具、多步循环;聊天机器人通常一问一答
FP16Q4都是精度档。FP16 接近原版;Q4 是本地默认压缩档

和本仓库其它文的关系

  • LoRA 原理与实战:《LoRA 微调原理与实战》
  • 本地选型和显存表:《Ollama 开源大模型推荐》
  • 检索链路:RAG / GraphRAG 相关文

本文只负责把黑话翻译成人话。

更多推荐