skyzh/tiny-llm

learn LLM inference system on Apple Silicon for systems engineers: build a tiny vLLM + Qwen

解决的问题

大多数 LLM 课程将模型视为黑盒或专注于训练。tiny-llm 是一门面向系统工程师的实用实践课程,他们想了解 LLM 推理在底层是如何工作的——从加载模型到生成文本。它展示了完整的路径:将 token 转换为 logits、管理内存以及服务请求。该课程的设计使您可以阅读整个实现,并将公式与现实世界的问题(如内存流量、内核占用率、KV 缓存增长、批处理和请求调度)联系起来。

工作原理

该课程围绕 MLX(Apple 的机器学习框架)构建,并在 Apple 芯片上运行。它使用 MLX 数组和 MLX 扩展运行时,但刻意避免使用高级神经网络层。在每一章中,您自己实现算子——使用 Python、C++ 或 Metal——而不是调用优化的内置版本。MLX 仍然是参考:它检查您的正确性并为您提供性能基线。

学习路径为期四周:

  • 第 1 周:从矩阵乘法到文本。 您使用基本数组操作从头构建 Qwen3 模型,涵盖注意力、RoPE、GQA、RMSNorm、MLP、采样和自回归循环。
  • 第 2 周:更快的单请求。 您添加优化,如 KV 缓存、量化权重、SIMD 矩阵乘法、融合原语和分块预填充。
  • 第 3 周:迷你 vLLM。 您实现连续批处理、分块预填充、分页 KV 缓存和直接读取页面的 FlashAttention。
  • 第 4 周:编码代理。 您构建一个经过验证的代理,它可以检查工作区、进行批准的编辑、运行命令、检查点和恢复,并评估结果——全部通过有界循环完成。

配套书籍位于 skyzh.github.io/tiny-llm,仓库包含参考解决方案(tiny_llm_ref)和测试。

适用人群

已经理解编程和底层性能但想掌握 LLM 推理端到端工作原理的系统工程师。如果您拥有 Apple Silicon Mac 并且想学习而无需昂贵的 GPU 服务器,那么它非常适合。该课程假设您可以阅读代码并熟悉矩阵、内存和并发等概念——但不要求深入的 ML 背景。

亮点

  • 端到端理解: 您构建整个推理路径,而不仅仅是片段,并将数学与真实硬件行为联系起来。
  • 在 Apple 芯片上本地运行: 无需 GPU 集群;一台具有共享内存和 Metal 访问权限的机器即可。
  • 使用真实的现代模型(Qwen3-4B),具有分组查询注意力、QK 归一化、BF16 激活和 4 位权重。
  • 在实践中学习: 您自己用 Python、C++ 或 Metal 实现算子,以 MLX 作为参考。
  • 为期四周的结构化路径,从基本矩阵操作升级到迷你 vLLM 和编码代理。
  • 包含参考解决方案和测试,用于自我检查。
  • 通过 Discord 提供社区支持。

相关

  • 项目
  • 项目
  • 项目
  • 项目