AI 模型基础知识
· 阅读需 5 分钟
核心概念
权重(Weights)
模型通过海量训练数据,调整出数十亿个小数,这些数字就是"权重",记录了模型学到的所有知识(语法、常识、逻辑等)。
- Qwen3-4B 中的 4B = 40亿个权重数字
- 每个权重形如
0.3847291638... - 原始精度(FP16)下,40亿个数字需要约 8GB 存储空间
量化(Quantization)
有计划地降低权重数字的精度,从而缩小模型文件体积。
类比:记朋友身高
175.3847291cm→ 精确但占空间175cm→ 四舍五入,误差极小高→ 最省空间,但信息丢失多
| 格式 | 每个数字占用 | 效果 |
|---|---|---|
| F16 | 16 位 | 原始精度,文件最大 |
| Q8 | 8 位 | 轻微损失 |
| Q4 | 4 位 | 明显压缩,质量尚可 |
| Q2 | 2 位 | 粗糙,质量损失大 |
量化后模型变小、运行更快,但会有轻微的"记忆模糊"。
K-Quants(分组量化)
普通量化是一刀切,所有权重用同样精度压缩。K-quants 把权重分组,重要的多保留精度,不重要的多压缩。
类比:打包行李
- 普通做法:所有东西压到同样厚度
- K-quants:护照/手机原样放,袜子/T恤真空压缩
Q4_K_M 内部实现:
- 注意力层(最重要)→ 用 6 位存储
- 其他层(次要)→ 用 4 位存储
- 整体平均 ≈ 4 位多一点
GGUF 文件命名规则
量化方法分两套体系,命名规则不同:
旧方法(Legacy):Qn_0 / Qn_1
Q 4 _ 0
│ │ └── 0 = 基础版 / 1 = 加偏移值的改进版
│ └──────── 每个权重的位数
└──────────── Quantization(量化)
- 每 32 个权重一组,统一压缩,算法简单
_0:基础版,直接截断_1:在_0基础上加了一个偏移值,略微提升精度- 现已基本被 K-quants 取代,新模型很少使用
常见旧方法格式(以 14B 模型为例):
| 格式 | 文件大小 | 说明 |
|---|---|---|
| Q4_0 | ~7.5GB | 老式 4 位,精度一般 |
| Q4_1 | ~8.3GB | 老式 4 位 + 偏移,略好于 Q4_0 |
| Q5_0 | ~9.2GB | 老式 5 位 |
| Q5_1 | ~10GB | 老式 5 位 + 偏移 |
| Q8_0 | ~14GB | 老式 8 位,质量很高 |
新方法(K-quants):Qn_K_M / Qn_K_S
Q 4 _ K _ M
│ │ │ └── 变体:M=Medium / S=Small / L=Large
│ │ └──────── K-quants(分组混合精度)
│ └────────────── 每个权重的位数
└──────────────── Quantization(量化)
- 把权重分组,对重要层使用更高精度
- 同等文件大小下质量优于旧方法
变体(M / S / L)说明
_M(Medium):重要层多保留精度,效果更好,推荐_S(Small):全部压更多,文件略小,质量略低_L(Large):保留更多精度,文件略大,质量略好
旧方法 vs 新方法对比(14B 模型)
| 格式 | 方法 | 文件大小 | 质量 |
|---|---|---|---|
| Q4_0 | 旧式 | ~7.5GB | 一般 |
| Q4_1 | 旧式+ | ~8.3GB | 略好 |
| Q4_K_S | K-quants | ~8.1GB | 好 |
| Q4_K_M | K-quants | ~8.7GB | 更好 |
同等大小下优先选 K-quants。遇到只有 Q4_0 的模型,说明该模型较老或未更新转换版本。
4B 模型各量化版本对比
| 格式 | 文件大小 | 质量 | 推荐场景 |
|---|---|---|---|
| F16 | ~8GB | 无损失 | 微调 / 评测 |
| Q8_0 | ~4.3GB | 极小损失 | 内存充足 |
| Q6_K | ~3.4GB | 很小损失 | 追求高质量 |
| Q4_K_M | ~2.4GB | 均衡 | 日常使用首选 |
| Q4_K_S | ~2.2GB | 略低于 M | 内存略紧 |
| Q3_K_M | ~1.7GB | 明显下降 | 内存紧张 |
| Q2_K | ~1.3GB | 较大损失 | 极限省内存 |
本机配置与模型选择(Apple M3 Max 36GB)
为什么 Apple Silicon 适合跑本地模型
Apple M3 Max 的 GPU 和 CPU 共享同一块统一内存(Unified Memory),36GB 全部可用于装载模型,不像 PC 独显有单独的 VRAM 限制。M3 Max 内存带宽约 400GB/s,推理速度流畅。
各参数量运行情况
系统自身占用约 6GB,模型可用约 30GB(Q4_K_M 约 0.56GB / 10亿参数):
| 模型参数 | Q4_K_M 大小 | 能否运行 | 速度感受 |
|---|---|---|---|
| 4B | ~2.5GB | ✅ 轻松 | 极快 |
| 7B | ~4GB | ✅ 轻松 | 很快 |
| 14B | ~8GB | ✅ 轻松 | 快 |
| 32B | ~18GB | ✅ 舒适 | 均衡推荐 |
| 40B | ~22GB | ✅ 可以 | 稍慢 |
| 70B | ~39GB | ❌ 超出 | 装不下 |
甜点区:32B Q4_K_M
- 占用约 18GB,剩余 12GB 供系统和上下文缓存使用
- 质量远超 7B/14B,是肉眼可见的提升
- 推荐模型:
Qwen3-32BQ4_K_M — 综合能力强Qwen2.5-32B-InstructQ4_K_M — 中文表现特别好Gemma3-27BQ4_K_M — 27B 更省内存,速度更快
关于 70B 的取舍
可以用更激进的量化勉强装入,但不推荐:
| 方案 | 大小 | 说明 |
|---|---|---|
| 70B Q2_K | ~26GB | 能跑,质量损失大 |
| 70B Q3_K_M | ~32GB | 勉强,质量尚可 |
原则:不建议用低质量量化换大参数。 32B Q4_K_M 的实际输出质量通常优于 70B Q2_K。
工具使用
LM Studio
- 内置模型搜索,直接搜索模型名即可下载 GGUF 文件
- 适合普通用户,无需命令行
llama.cpp
需要 GGUF 格式文件,支持命令行推理和服务器模式。
# 推理模式
./llama-cli -m ./models/model-Q4_K_M.gguf -p "你好" -n 512
# 服务器模式(提供 HTTP API)
./llama-server -m ./models/model-Q4_K_M.gguf --host 0.0.0.0 --port 8080
huggingface-cli 下载
pip install huggingface_hub
# 下载单个 GGUF 文件
huggingface-cli download <repo-id> <filename>.gguf --local-dir ./models
一句话总结
| 概念 | 类比 |
|---|---|
| 权重 | 模型学到的知识,存成几十亿个小数 |
| 量化 | 把小数四舍五入,文件变小但略有损失 |
| 分组(K-quants) | 重要的数字少压,不重要的多压 |
| Q4_K_M | 4位精度 + 分组策略,大小和质量最均衡 |
