系统化教学在 Mac/MacBook 等 Apple Silicon 设备上部署和优化大模型。社区热度最高,有完整的实战案例。
tiny-llm 是一门面向系统工程师的实践课程,帮助他们端到端地理解 LLM 推理。你可以把它看作 CMU 的 Needle 项目的 LLM 服务版本:构建加载 Qwen3 模型、把 token 转换为 logit 并生成文本的路径。
课程从数组和矩阵操作开始,然后根据模型运行的需要引入内核和服务机制。保持实现足够小,使其能端到端地阅读,这样就可以将方程与内存流量、内核占用率、KV 缓存增长、批处理和请求调度联系起来。
课程基于 MLX 数组和 MLX 扩展运行时,不使用高级神经网络层。当某一章讲解一个操作符时,你的解决方案在 Python、C++ 或 Metal 中实现该操作符,而不是调用相应的优化 MLX 操作。MLX 仍然是正确性参考和性能基准。
课程遵循一个为期四周的学习路径:
第 1 周:从矩阵乘法到文本 从数组操作构建可读的 Qwen3 模型:注意力机制、RoPE、GQA、RMSNorm、MLP、采样和自回归循环。
第 2 周:更接近 vLLM 添加 KV 缓存,建立同步的 MLX 基线,让性能分析选择下一个优化。路径从量化解码矩阵向量乘法移至融合模型内核、平铺预填充,以及在测量的 Qwen 形状需要时的分割 K。
第 3 周:构建迷你 vLLM 引入连续批处理和分块准入,然后将分页 KV 作为规范服务布局。解码注意力和 FlashAttention 学会直接读取页面,这样调度器就不需要在每一步重建稠密历史。
第 4 周:构建编程 Agent 使用多轮会话来激励缓存重用、上下文压缩、回退、中断和评估。
Apple silicon 提供了一个实用的本地环境,具有共享内存空间和对 Metal 内核的直接访问。学生可以在一台机器上检查完整的路径,而不必依赖昂贵的 CUDA GPU 设置。
Qwen3-4B 足够大,可以揭示真实的权重带宽、注意力和缓存成本,但又足够小,可以在本地迭代。它的分组查询注意力、QK 归一化、BF16 激活和 4 比特权重也使练习接近当前的模型服务工作。
该书发布在 skyzh.github.io/tiny-llm。从环境设置开始,或使用以下命令验证现有检出:
pdm install -v
pdm run check-installation
pdm run test-refsol -- -- -k week_1
tiny_llm 包是学生实现练习的地方。tiny_llm_ref 包含测试和基准附录使用的参考解决方案。详细的章节顺序和当前状态在书籍摘要中。
状态列追踪每章的代码、测试和文档是否已准备好。第 4 周仍是设计草案,还不是渲染的每日课程的一部分。
未涉及的其他主题包括量化或压缩的 KV 缓存、跨请求前缀缓存、微调和长上下文技术。
加入 skyzh 的 Discord 服务器,与 tiny-llm 社区一起学习。