LESSON 6.4 · 工程 · 130 分钟
llama.cpp:本地推理的工程解剖
llama.cpp:本地推理的工程解剖:理解GGUF、mmap、CPU/GPU offload、sampling,完成“在 Mac 上部署并 benchmark”。属于「让模型快而可靠地说话」学习阶段。
学完你应该能够
- 能不用术语堆砌,解释「llama.cpp:本地推理的工程解剖」解决了什么问题。
- 能围绕 GGUF、mmap、CPU/GPU offload 画出变量与因果关系。
- 能完成「在 Mac 上部署并 benchmark」,并用证据而不是感觉判断结果。
核心概念
GGUF
GGUF用更少比特近似权重或激活。速度收益取决于硬件 kernel,质量损失取决于离群值、分组与校准;文件变小不等于端到端一定更快。
mmap
mmap需要在固定质量与负载下比较延迟、吞吐、显存和成本,单独的速度数字没有决策意义。 把它放进前后依赖中:输入从哪里来,输出会改变谁。
CPU/GPU offload
CPU/GPU offload需要在固定质量与负载下比较延迟、吞吐、显存和成本,单独的速度数字没有决策意义。 写出至少一个不变量、shape 约束或成立条件。
sampling
sampling需要在固定质量与负载下比较延迟、吞吐、显存和成本,单独的速度数字没有决策意义。 用反例说明忽略它时系统会怎样失败。
实践任务
在 Mac 上部署并 benchmark
- 预测:在运行代码前,写下你预期的输出、趋势或失败位置。
- 构建:定义约束与成功指标,只保留回答核心问题所需的最小组件。
- 验证:使用固定质量约束下测 p50/p95 延迟、吞吐、显存和成本;保存参数、随机种子与原始结果。
- 迁移:改变并发、序列长度或硬件后重新选择缓存与批处理策略,说明原结论是否仍成立。