从模型原理到 LLM 应用
目标与边界
这门课先回答“模型怎样从文本学会预测”,再回答“怎样把模型放进可靠的应用”。 从零指能够解释、实现和验证核心机制;张量计算与自动求导采用 PyTorch,必要时用小规模手算或标准库实验交叉验证。
模型主线的产物是一个能训练、评估、保存、恢复和生成文本的小型 decoder-only Transformer。 小模型用来理解机制,不预设它能达到通用聊天模型的质量。 应用阶段接入成熟的预训练或指令模型,并明确区分模型架构、权重、提示词、检索和外部工具的职责。
当前进度
- 已初始化:仓库规范、Python 3.12 环境入口、课程和笔记模板。
- 当前课程:第 0 课:建立可复现的实验环境,教材与脚手架已准备,等待学习者完成。
- 学习记录:note-00.md,尚未作答或结课。
- 下一课计划:张量与批量计算,理解维度、矩阵乘法和广播,届时引入 PyTorch。
- 下面各阶段是规划,不是已经实现的课程。后续课号、规模与节奏按实际学习反馈确定。
阶段与里程碑
| 阶段 | 要建立的能力 | 主要内容 | 可验证的里程碑 |
|---|---|---|---|
| 01 · 基础与实验环境 | 把数学表达变成可检查的计算 | Python 环境、张量形状、矩阵乘法、概率、损失、梯度与参数更新 | 手算小例子与代码一致;一次参数更新能解释方向与结果 |
| 02 · 最小语言模型 | 从文本得到下一个 token 的预测 | 字符编码、上下文与目标错位、计数基线、embedding、神经网络和训练循环 | 训练一个小模型,在独立验证集上和简单基线比较并生成文本 |
| 03 · Transformer | 让预测有选择地使用上下文 | 自注意力、因果遮罩、多头、位置信息、残差、归一化与前馈层 | 组装并训练小型 GPT;检查未来信息不泄漏,观察上下文如何影响预测 |
| 04 · 训练与推理 | 让实验可恢复、可比较、可测量 | 数据切分、子词分词、优化与过拟合、checkpoint、采样、KV cache、设备与精度 | 保存后恢复训练;缓存与非缓存推理在误差内一致,并测量速度与内存 |
| 05 · 预训练模型、微调与评估 | 理解从基础模型到可用助手的变化 | 模型与权重加载、聊天模板、监督微调、LoRA、任务评估;偏好优化作为拓展 | 在小任务上比较提示词与微调的效果,记录成本、失败样例与数据边界 |
| 06 · 检索增强应用 | 让回答使用可追溯的外部资料 | 模型调用、本地服务或 API、结构化输出、embedding、切分、检索、重排与引用 | 构建一个有引用的文档问答,分别测量检索命中和回答质量,支持证据不足时拒答 |
| 07 · 工具调用与 Agent | 让模型在受控流程中完成多步任务 | 工具 schema、参数校验、执行循环、状态、失败重试、停止条件与轨迹评估 | 用少量工具完成可验收任务;能定位错误步骤、限制循环和重放失败案例 |
怎么安排每一课
每章围绕完整能力组织:输入是什么,内部发生了什么变化,输出如何被检查,失败时怎样归因。 典型课时 60–120 分钟,环境课和小实验可缩短;超过这个负担再拆分。 数学、Python 语法与框架用法在首次需要时补齐,不将大段先修学习变成主线阻塞。
一课通常只要求一次预测、一个贯穿实验和一到两个解释。 导师提供数据读取、日志和命令入口等配套设施,学习者聚焦新增机制。 阶段结束时把局部机制串回模型或应用的完整流程,避免只会实现互不相连的辅助函数。
运行规模与验证
前期使用 CPU 和微型数据验证正确性。加速器用于后续提速:Apple Silicon 可以评估 MPS, 有 NVIDIA GPU 时可以评估 CUDA;实际支持情况在引入 PyTorch 时检查。 较大的预训练模型和微调实验根据实际内存选择尺寸,保留小样本与小步数的可运行路径。
模型阶段至少区分训练损失、验证损失和生成样例。应用阶段分别记录任务成功率、检索质量、延迟与调用成本。 一个看起来不错的回答不能替代固定评估集;模型或数据配置变化后重新比较。
训练实验记录版本、设备、种子、数据切分和关键超参数。固定种子只控制相应随机过程, 不同硬件、库版本和并行计算仍可能产生差异。
后续专题
分布式训练、大规模数据流水线、量化、推理调度、偏好优化和多模态作为主线之后的拓展。 课程站点已建立,直接从 docs/ 和 notes/ 生成,支持搜索、课程阅读和学习记录回顾。
资料分工见 参考资料。