@Modular: MAX-LLM 书籍让从零开始构建 LLM 变得更加简单。新的笔记本格式让你可以运行 GPT-2 …
摘要
MAX-LLM 书籍现在提供交互式 Jupyter 笔记本,逐步指导用户使用 MAX 框架从零开始构建完整的 GPT-2 实现,使用户能够探索张量形状、运行组件并生成文本。
查看缓存全文
缓存时间: 2026/05/14 22:44
MAX-LLM 这本指南现在让从头构建 LLM 变得更简单了。新的 notebook 格式允许你交互式地运行 GPT-2 组件、检查真实的张量形状,并使用预训练权重生成文本。想先浏览一下?预渲染版本展示了所有输出,无需运行任何单元格:https://github.com/modular/max-llm-book/blob/main/notebooks/tutorial.ipynb…
modular/max-llm-book
来源:https://github.com/modular/max-llm-book
使用 MAX 从头构建一个 LLM
一个关于如何使用 MAX 框架完整实现 GPT-2 的引导教程。
每个章节都会带你浏览 gpt2_arch/gpt2.py 中的代码,解释其作用与原因——从模型配置到使用 max serve 提供服务,一应俱全。
你将学到
- Transformer 架构:GPT-2 的每个组件,通过可运行的代码逐一讲解
- MAX Python API:MAX 的
experimental.nn如何构建和编译神经网络 - 推理模式:权重加载、惰性初始化、模型编译以及自回归生成
快速开始
前提条件
- Pixi (https://pixi.sh/) 包管理器
- 对神经网络有基本了解
- 需要满足 MAX 系统要求 (https://docs.modular.com/max/packages#system-requirements)
安装
bash git clone https://github.com/modular/max-llm-book cd max-llm-book pixi install
运行模型
通过 OpenAI 兼容的 HTTP 端点提供 GPT-2 服务:
bash pixi run serve
然后查询它:
bash curl -X POST http://localhost:8000/v1/completions \ -H "Content-Type: application/json" \ -d '{"model":"gpt2","prompt":"In the beginning","max_tokens":30,"temperature":0}'
运行 notebook
交互式探索 GPT-2 的每个组件——真实的张量形状、激活可视化,以及从预训练权重实时生成文本:
bash pixi run notebook
这将打开包含 notebooks/tutorial.ipynb 的 JupyterLab。第 1–8 节使用随机权重立即运行;第 9–12 节从 Hugging Face 下载预训练的 GPT-2 检查点(约 500 MB)并编译模型用于推理。
阅读指南
bash pixi run book
或者在线阅读 llm.modular.com (https://llm.modular.com/)。
指南涵盖的内容
教程按章节逐步讲解 gpt2_arch/:
| 章节 | 主题 | 你将学到 |
|---|---|---|
| — | 运行模型 | 在深入代码之前先用 pixi run serve 提供 GPT-2 服务 |
| 1 | 模型配置 | 架构超参数与 Hugging Face 兼容性 |
| 2 | 前馈网络 | 带有 GELU 激活的两层 MLP |
| 3 | 因果掩码 | 阻止注意力查看未来 token |
| 4 | 多头注意力 | 12 个头上的并行注意力 |
| 5 | 层归一化 | 用于稳定激活的 pre-norm 模式 |
| 6 | Transformer 块 | 残差连接与组件连线 |
| 7 | 堆叠 Transformer 块 | 嵌入层与 12 层模型体 |
| 8 | 语言模型头 | 将隐藏状态投影到词汇表 logits |
| 9 | 权重适配 | 协调 HuggingFace 检查点与 MAX 的权重布局 |
| 10 | KV 缓存配置 | 暴露注意力维度以供缓存预分配 |
| 11 | 流水线模型 | 在 max serve 内部加载、编译并执行模型 |
| 12 | 架构注册 | 向 max serve 声明包,并将所有部分连接起来 |
项目结构
text max-llm-book/ ├── book/ # mdBook 教程文档 │ └── src/ │ ├── introduction.md │ ├── serve_first.md │ ├── step_01.md ... step_12.md │ └── SUMMARY.md ├── gpt2_arch/ # GPT-2 模型 + 用于 `max serve` 的自定义架构包 │ ├── gpt2.py # 模型定义(从 GPT2Config 到 MaxGPT2LMHeadModel) │ ├── model.py # 供 max serve 使用的 PipelineModel 封装 │ ├── weight_adapters.py# HuggingFace → MAX 权重转换 │ ├── model_config.py # KV 缓存维度配置 │ └── arch.py # 架构注册入口点 ├── notebooks/ # 交互式 Jupyter notebook 配套 │ └── tutorial.ipynb ├── tests/ # gpt2_arch/ 的测试 ├── pixi.toml # 项目依赖与任务 └── README.md # 本文件
学习资源
- MAX 文档:docs.modular.com (https://docs.modular.com/)
- Hugging Face GPT-2:huggingface.co/gpt2 (https://huggingface.co/gpt2)
- Attention Is All You Need: arxiv.org/abs/1706.03762 (https://arxiv.org/abs/1706.03762)
- Language Models are Unsupervised Multitask Learners(GPT-2 论文): openai.com (https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)
贡献
发现问题或想改进教程?欢迎贡献:
- 提交 issue 报告 bug 或不清晰的说明
- 对代码示例或可视化提出改进建议
- 通过 pull request 提交修复或补充内容
相似文章
@DanKornas: 每个层都有自己的笔记本,从零开始构建LLM就更容易了。EveryonesLLM是一个基于Google Colab的教程…
EveryonesLLM是一个开源的基于Google Colab的教程仓库,用于从零开始构建nanoGPT风格的LLM,包含逐步章节,涵盖数据加载、嵌入、注意力机制、训练和指令调优。
@_rohit_tiwari_:用PyTorch从头构建类似GPT的LLM > 将LLM架构拆分为简单部分 > 对初学者友好 > Fu…
一个对初学者友好的动手GitHub仓库,将类似GPT的LLM架构拆分为简单部分,包含10个Jupyter笔记本,涵盖分词、注意力机制、Transformer块以及用PyTorch实现的微型GPT。
rasbt/LLMs-from-scratch
该仓库提供开源代码,用于从零开始构建、预训练和微调一个类似GPT的大型语言模型,是Sebastian Raschka同名书籍的官方代码配套。
@oliviscusAI:OpenAI 联合创始人刚刚发布了他的个人指南,教你从头训练大语言模型。它叫 llm.c。无需繁琐设置。只…
OpenAI 联合创始人 Andrej Karpathy 发布了 llm.c,这是一份开源指南,教你如何从头训练大语言模型。代码简洁,可在任何硬件上运行,包括 CPU 和 MacBook,并且比标准方法快 7%。
@techNmak: 从零构建LLMs 发现来自Vizuara的宝藏,一个43讲的系列课程,真正兑现了承诺:构建…
Vizuara的43讲系列课程教你如何从零构建LLMs,涵盖Transformer架构、GPT内部原理、分词(BPE)和注意力机制,并提供完整的Python实现。