这个项目能做什么
tiny-llm 是一门面向系统工程师的实操课程,旨在帮助他们端到端地理解 LLM 推理。它被定位为 CMU Needle 项目的 LLM 服务端对应物:学习者将构建一条路径,用于加载 Qwen3 模型、将 token 转换为 logits 并生成文本。
课程从数组和矩阵运算开始,然后随着运行模型的需要引入内核和服务机制。实现保持足够小巧,以便端到端阅读,将公式与内存流量、内核占用率、KV 缓存增长、批处理和请求调度联系起来。
它基于 MLX 数组和 MLX 扩展运行时构建,不使用高级神经网络层。当章节教授某个算子时,学习者需在 Python、C++ 或 Metal 中实现该算子,而不是调用相应的优化 MLX 操作。MLX 作为正确性基准和性能基线。
四周学习路径涵盖:
- 第 1 周:使用 mlx.core 数组操作构建 Qwen3 模型,包括注意力、RoPE、GQA、RMSNorm、MLP、采样和自回归循环。
- 第 2 周:通过 KV 缓存、容量缓存、打包 W4 权重、SIMD 矩阵预填充、融合原语和分块预填充来加速单请求处理。
- 第 3 周:构建一个迷你 vLLM,包含连续批处理、分块准入、分页 KV 缓存、直接分页注意力和分页 FlashAttention。
- 第 4 周:构建一个编码代理,包含验证过的代理循环、工作区检查、批准的编辑、验证命令、检查点与恢复、上下文压缩、检查与引导暂停、结果评估、分叉引导分支和受限工具证据。
该项目针对 Apple Silicon,因为它提供了一个实用的本地环境,具有统一内存空间和对 Metal 内核的直接访问。Qwen3-4B 足够大,能暴露真实的权重带宽、注意力和缓存成本,同时保持足够小以便本地迭代。
本书发布在 skyzh.github.io/tiny-llm。仓库包含一个用于学生实现的 tiny_llm 包和包含参考解决方案的 tiny_llm_ref。路线图表格跟踪每章的实现、测试、文档和编辑审计状态。
评论
0 评分人数达到10人后显示
登录后参与讨论。