Wink Pings

在 Mac 上手写一个 mini vLLM:tiny-llm 把推理优化拆成四周作业

一个超过 4,800 星的开源课程,用 Qwen3、MLX、C++ 和 Metal 在 Apple Silicon 上搭推理引擎。从 KV cache 写到 continuous batching,再到带工具调用的 coding agent。入门路径 8GB Mac 能跑 Qwen3-0.6B。

GitHub 上有个叫 tiny-llm 的开源课程。它要求你亲手用 MLX、C++ 和 Metal 在 Apple Silicon 上搭一个 mini vLLM 风格的推理引擎,模型围绕 Qwen3。

tiny-llm 课程

Tech with Mak 在推文里介绍了它,评论区有人提醒,项目作者是 @iskyzh。仓库已经超过 4,800 星。课程分四周:第一周从矩阵运算开始,把 attention、RoPE、GQA、RMSNorm、MLP、采样和自回归循环写出来,先得到一个能生成文本的模型。第二周开始修性能:加 KV cache,保留 packed 4-bit 权重,写 SIMD 矩阵运算,再碰 fused RMSNorm、RoPE、SwiGLU 和 tiled prefill attention。第三周进入服务层:continuous batching、chunked prefill、paged KV,以及直接从非连续 cache page 读取的 attention。第四周做一个小的 coding agent harness,包含受验证的工具调用、checkpoint、上下文管理和评估。

这个课的价值在路径。它把推理工程里最硬的部分拆成要自己动手修的 checkpoint:每一步有练习、参考实现、测试和测量。课程给的是内存流量、kernel 占用、KV cache 增长、批处理和请求调度怎么互相拉扯,不是一段优化后快了多少的结论。有网友在回复里说,手写 KV cache 是最容易记住的一课:decode 受内存带宽限制,速度来自不重复计算,随后缓存本身又变成吃显存的东西。这个观察比背概念有用。

环境门槛也值得说清楚。课程基于 Apple Silicon 的 MLX 和 Metal,不需要 NVIDIA GPU。入门路径支持在 8GB Mac 上跑 Qwen3-0.6B。仓库说明里提到 Qwen3-4B,用来暴露真实的权重带宽、attention 和 cache 成本,同时还能在本地迭代。Windows 不是这套课程的目标环境。想跟下来,先去书里做环境配置,再跑仓库给的安装检查。

需要提醒的是,部分后期 checkpoint 还在开发和 review 中。它不是一个看完就能宣布自己复刻了 vLLM 的速成班。更像一份有测试和测量兜底的施工图:你按周把推理引擎的零件装上去,哪里慢,哪里错,哪里该量化,自己查。

仓库:https://github.com/skyzh/tiny-llm
课程书:https://skyzh.github.io/tiny-llm/

发布时间: 2026-10-30 20:42