Skip to content

LLM Course 中文版路线图(Maxime Labonne)

本页是对 Maxime Labonne 开源项目 mlabonne/llm-course(GitHub 80k+ Star)的中文翻译与整理。原项目是一份广受欢迎的大模型学习路线图,配有大量 Colab Notebook 与精选资源。

📌 版权声明:原项目基于 Apache License 2.0 开源。本页为中文译本,遵循该许可证再分发,著作权归原作者 Maxime Labonne 所有。译文在忠实原意的基础上做了少量本地化,并补充了指向本站对应章节的链接,方便中文读者深入。原始英文版本请访问 mlabonne/llm-course

想要本站自己的转型路线,请看 大模型学习路线;想要更全的资源清单,看 学习资源汇总

整个课程分为三大部分:

  1. 🧩 LLM 基础(LLM Fundamentals):可选部分,覆盖数学、Python、神经网络等基础知识。
  2. 🧑‍🔬 LLM 科学家(The LLM Scientist):聚焦如何用最新技术训练出尽可能强的大模型。
  3. 👷 LLM 工程师(The LLM Engineer):聚焦如何构建并部署基于大模型的应用。

原作者基于本课程合著了《LLM Engineer's Handbook》,一本从设计到部署、端到端讲解大模型应用的实战书。课程永久免费。


📝 Notebooks(实战笔记本)

原作者整理的关于大模型的 Notebook 与文章合集。

工具类(Tools)

名称说明
🧐 LLM AutoEval用 RunPod 自动评测你的大模型
🥱 LazyMergekit一键用 MergeKit 轻松合并模型
🦎 LazyAxolotl一键在云端用 Axolotl 微调模型
⚡ AutoQuant一键将大模型量化为 GGUF / GPTQ / EXL2 / AWQ / HQQ 格式
🌳 Model Family Tree可视化合并模型的「家族树」
🚀 ZeroSpace用免费 ZeroGPU 自动创建 Gradio 聊天界面
✂️ AutoAbliteration用自定义数据集自动对模型做 abliteration(去审查)
🧼 AutoDedup用 Rensa 库自动对数据集去重

微调(Fine-tuning)

Notebook说明文章
用 Unsloth 微调 Llama 3.1在 Colab 中极致高效地做有监督微调Article
用 ORPO 微调 Llama 3用 ORPO 在单阶段内更便宜更快地微调Article
用 DPO 微调 Mistral-7b用 DPO 提升有监督微调模型的表现Article
用 QLoRA 微调 Mistral-7b在免费 Colab 中用 TRL 微调 Mistral-7b
用 Axolotl 微调 CodeLlamaSOTA 微调工具的端到端指南Article
用 QLoRA 微调 Llama 2在 Colab 中分步微调 Llama 2Article

量化(Quantization)

Notebook说明文章
量化入门用 8-bit 量化优化大模型Article
用 GPTQ 做 4-bit 量化量化开源大模型,使其能在消费级硬件运行Article
用 GGUF 与 llama.cpp 量化量化 Llama 2 并上传 GGUF 版本到 HF HubArticle
ExLlamaV2:最快的推理库量化并运行 EXL2 模型Article

其他(Other)

Notebook说明文章
用 MergeKit 合并大模型无需 GPU,轻松创建自己的模型Article
用 MergeKit 创建 MoE把多个专家合并成一个 frankenMoEArticle
用 abliteration 给模型去审查无需重训练的「去审查」微调Article
用知识图谱增强 ChatGPT用知识图谱补强 ChatGPT 的回答Article
大模型的解码策略从 beam search 到 nucleus sampling 的文本生成指南Article

🧩 第一部分:LLM 基础(LLM Fundamentals)

本部分介绍数学、Python 和神经网络的必备知识。可选——你不一定要从这里开始,按需查阅即可。

💡 本站对应:大模型必备数学基础大模型零基础入门

1. 机器学习数学基础

在掌握机器学习之前,理解支撑这些算法的核心数学概念很重要。

  • 线性代数:理解众多算法(尤其是深度学习)的关键。核心概念包括向量、矩阵、行列式、特征值与特征向量、向量空间、线性变换。
  • 微积分:很多机器学习算法涉及连续函数的优化,需要理解导数、积分、极限与级数。多元微积分和梯度概念也很重要。
  • 概率与统计:理解模型如何从数据中学习并做出预测的关键。核心概念包括概率论、随机变量、概率分布、期望、方差、协方差、相关性、假设检验、置信区间、最大似然估计、贝叶斯推断。

📚 资源:

2. 机器学习的 Python

Python 凭借其可读性、一致性和强大的数据科学生态,尤其适合机器学习。

  • Python 基础:需要掌握基本语法、数据类型、错误处理和面向对象编程。
  • 数据科学库:熟悉 NumPy(数值运算)、Pandas(数据处理与分析)、Matplotlib 与 Seaborn(数据可视化)。
  • 数据预处理:特征缩放与归一化、缺失值处理、异常值检测、类别特征编码、划分训练/验证/测试集。
  • 机器学习库:熟练使用 Scikit-learn。理解如何实现线性回归、逻辑回归、决策树、随机森林、K 近邻(K-NN)、K-means 聚类等算法。PCA、t-SNE 等降维技术对高维数据可视化也很有帮助。

📚 资源:

3. 神经网络

神经网络是众多机器学习模型(尤其是深度学习)的基础。要有效使用它们,必须全面理解其设计与机制。

  • 基础:理解神经网络结构,如层、权重、偏置、激活函数(sigmoid、tanh、ReLU 等)。
  • 训练与优化:熟悉反向传播和各类损失函数(均方误差 MSE、交叉熵)。理解梯度下降、随机梯度下降、RMSprop、Adam 等优化算法。
  • 过拟合:理解过拟合(训练集表现好但泛化差),学习各种正则化手段(dropout、L1/L2 正则、早停、数据增强)来预防。
  • 实现多层感知机(MLP):用 PyTorch 构建一个 MLP(全连接网络)。

📚 资源:

4. 自然语言处理(NLP)

NLP 是连接人类语言与机器理解的人工智能分支,在翻译、情感分析、聊天机器人等众多应用中扮演关键角色。

  • 文本预处理:学习分词、词干提取(stemming)、词形还原(lemmatization)、停用词去除等预处理步骤。
  • 特征提取技术:将文本转换为机器学习算法可理解的格式。核心方法包括词袋(BoW)、TF-IDF、n-gram。
  • 词嵌入(Word Embeddings):让语义相近的词拥有相近表示。核心方法包括 Word2Vec、GloVe、FastText。
  • 循环神经网络(RNN):理解处理序列数据的 RNN,以及能学习长期依赖的两个变体 LSTM 与 GRU。

📚 资源:


🧑‍🔬 第二部分:LLM 科学家(The LLM Scientist)

本部分聚焦如何用最新技术训练出尽可能强的大模型。

💡 本站对应:Transformer 架构详解预训练目标与数据微调范式(SFT/PEFT)RLHF / DPO 对齐模型评估与幻觉

1. LLM 架构

不需要对 Transformer 架构有极深的了解,但理解现代大模型的主要步骤很重要:通过分词把文本转成数字、经过含注意力机制的多层处理、最后用各种采样策略生成新文本。

  • 架构总览:理解从编码器-解码器 Transformer 演进到 GPT 这类仅解码器架构的过程——它们是现代大模型的基础。重点关注模型在高层次上如何处理和生成文本。
  • 分词(Tokenization):学习分词原理——文本如何转换为大模型可处理的数值表示。探索不同分词策略及其对性能与输出质量的影响。
  • 注意力机制:掌握注意力机制(尤其是自注意力及其变体)的核心概念,理解它如何让大模型处理长程依赖并保持上下文。
  • 采样技术:探索各种文本生成方法及其权衡。对比确定性方法(greedy、beam search)与概率方法(temperature、nucleus sampling)。

📚 参考:

2. 预训练模型

预训练计算密集且昂贵。虽然不是本课程重点,但理解模型如何预训练(尤其是数据与参数层面)很重要。爱好者也能用 <1B 的小模型小规模做预训练。

  • 数据准备:预训练需要海量数据集(如 Llama 3.1 训练了 15 万亿 token),需要精心整理、清洗、去重和分词。现代预训练流水线会用复杂的过滤来去除低质或问题内容。
  • 分布式训练:组合不同并行策略——数据并行(DP)、流水线并行(PP)、张量并行(TP),需要在 GPU 集群间做优化的网络通信与内存管理。
  • 训练优化:使用带 warmup 的自适应学习率、梯度裁剪、归一化来防止爆炸;混合精度训练提升内存效率;现代优化器(AdamW、Lion)配合调好的超参。
  • 监控:用仪表盘跟踪关键指标(loss、梯度、GPU 状态),为分布式训练问题做定向日志,做性能 profiling 找出计算与通信瓶颈。

📚 参考:

  • FineWeb by Penedo 等:复现大规模预训练数据集(15T)的文章,含高质量子集 FineWeb-Edu。
  • RedPajama v2 by Weber 等:另一个大规模预训练数据集,含大量有趣的质量过滤器。
  • nanotron by Hugging Face:极简大模型训练代码库,用于训练 SmolLM2。
  • 并行训练 by Chenyan Xiong:优化与并行技术总览。
  • 分布式训练 by Duan 等:分布式架构上高效训练大模型的综述。
  • OLMo 2 by AI2:含模型、数据、训练与评估代码的开源语言模型。
  • LLM360:含训练与数据准备代码、数据、指标、模型的开源大模型框架。

3. 后训练数据集

后训练数据集有精确的结构:指令+答案(有监督微调),或指令+被选/被拒答案(偏好对齐)。对话式结构比预训练用的原始文本稀缺得多,因此常需处理种子数据并精炼,以提升样本的准确性、多样性与复杂度。更多示例见原作者的 💾 LLM Datasets 仓库。

  • 存储与对话模板:因为是对话结构,后训练数据集常以 ShareGPT 或 OpenAI/HF 等特定格式存储,再映射到 ChatML、Alpaca 等对话模板生成最终训练样本。
  • 合成数据生成:用 GPT-4o 等前沿模型基于种子数据创建指令-回答对,灵活可扩展。关键在于设计多样的种子任务和有效的系统提示。
  • 数据增强:用已验证输出(单元测试或求解器)、拒绝采样的多答案、Auto-Evol、思维链、Branch-Solve-Merge、人物设定(personas)等技术增强样本。
  • 质量过滤:传统手段包括规则过滤、去重(MinHash 或嵌入近似去重)、n-gram 去污染。奖励模型与裁判 LLM 提供细粒度、可定制的质量控制。

📚 参考:

  • Synthetic Data Generator by Argilla:在 HF Space 里用自然语言构建数据集,对初学者友好。
  • LLM Datasets by Maxime Labonne:精选的后训练数据集与工具清单。
  • NeMo-Curator by Nvidia:预训练与后训练数据的准备与整理框架。
  • Distilabel by Argilla:合成数据生成框架,含 UltraFeedback 等论文复现。
  • Semhash by MinishLab:用蒸馏嵌入模型做近似去重与去污染的极简库。
  • Chat Template by Hugging Face:HF 关于对话模板的文档。

4. 有监督微调(SFT)

SFT 把基座模型变成能回答问题、遵循指令的有用助手。这个过程中模型学会组织答案、重新激活预训练学到的部分知识。注入全新知识是可能的但很表面:无法用它学会一门全新语言。始终把数据质量放在参数优化之上

  • 训练技术:全量微调更新所有参数但算力消耗大。参数高效微调(PEFT)如 LoRA、QLoRA 通过只训练少量适配器参数、冻结基座权重来降低显存。QLoRA 把 4-bit 量化与 LoRA 结合进一步降显存。这些都已在主流框架 TRLUnslothAxolotl 中实现。
  • 训练参数:关键参数包括带调度器的学习率、batch size、梯度累积、epoch 数、优化器(如 8-bit AdamW)、权重衰减、warmup 步数。LoRA 还引入三个参数:秩 rank(通常 16-128)、alpha(rank 的 1-2 倍)、目标模块。
  • 分布式训练:用 DeepSpeed 或 FSDP 跨多 GPU 扩展。DeepSpeed 提供三个 ZeRO 优化阶段,通过状态分片逐级提升内存效率。两者都支持梯度检查点。
  • 监控:跟踪 loss 曲线、学习率调度、梯度范数等,警惕 loss 突刺、梯度爆炸、性能退化等常见问题。

📚 参考:

5. 偏好对齐(Preference Alignment)

偏好对齐是后训练流水线的第二阶段,旨在让生成答案对齐人类偏好。它最初用于调整语气、降低毒性与幻觉,如今也越来越多地用于提升性能与有用性。与 SFT 不同,偏好对齐算法很多,这里聚焦三个最重要的:DPO、GRPO、PPO。

  • 拒绝采样:对每个提示,用训练中的模型生成多个回答并打分,推断出被选/被拒答案。这能创造 on-policy 数据(两个回答都来自被训练模型),提升对齐稳定性。
  • 直接偏好优化(DPO):直接优化策略,使被选回答的似然高于被拒回答。无需奖励建模,比 RL 更省算力,但质量略逊。非常适合做聊天模型。
  • 奖励模型:用人类反馈训练奖励模型来预测人类偏好等指标。可借助 TRLverlOpenRLHF 做可扩展训练。
  • 强化学习GRPOPPO 等 RL 技术迭代更新策略以最大化奖励,同时不偏离初始行为太远。它们可用奖励模型或奖励函数打分,计算昂贵且需仔细调超参(学习率、batch size、clip range)。非常适合做推理模型

📚 参考:

6. 评估(Evaluation)

可靠地评估大模型复杂但关键,它指引数据生成与训练,提供改进方向的宝贵反馈。但要牢记古德哈特定律:「当一个指标成为目标,它就不再是好指标。」

  • 自动化基准:用精选数据集和指标(如 MMLU)在特定任务上评测模型。对具体任务有效,但难以衡量抽象与创造能力,也容易受数据污染影响。
  • 人类评估:由人类对模型提问并打分,从「凭感觉(vibe check)」到带明确规范的系统化标注,再到大规模社区投票(arena)。更适合主观任务,对事实准确性的可靠性较低。
  • 基于模型的评估:用裁判模型和奖励模型评估输出。与人类偏好高度相关,但存在偏向自身输出、打分不一致的问题。
  • 反馈信号:分析错误模式以定位具体弱点,如遵循复杂指令的局限、缺乏特定知识、易受对抗提示攻击等,可通过更好的数据生成与训练参数改进。

📚 参考:

7. 量化(Quantization)

量化是把模型的参数和激活转换为更低精度的过程。例如 16-bit 存储的权重可转为 4-bit 表示。这一技术对降低大模型的算力与内存成本越来越重要。

  • 基础技术:了解不同精度(FP32、FP16、INT8 等),掌握 absmax 与 zero-point 的朴素量化。
  • GGUF 与 llama.cpp:最初为 CPU 设计的 llama.cpp 与 GGUF 格式,已成为在消费级硬件运行大模型最流行的工具,支持在单文件中存储特殊 token、词表和元数据。
  • GPTQ 与 AWQGPTQ/EXL2AWQ 引入逐层校准,在极低位宽下仍保持性能,通过动态缩放、选择性跳过或重定中心最重的参数来减少灾难性离群值。
  • SmoothQuant 与 ZeroQuant:量化友好的变换(SmoothQuant)和基于编译器的优化(ZeroQuant)在量化前缓解离群值,并通过算子融合与数据流优化降低硬件开销。

📚 参考:

这里是一些没归入其他类别的值得关注的话题。有些是成熟技术(模型合并、多模态),有些更具实验性(可解释性、test-time compute),是大量研究论文的焦点。

  • 模型合并(Model merging):合并已训练模型已成为无需微调即可创建高性能模型的流行方式。流行库 mergekit 实现了 SLERP、DARETIES 等主流合并方法。
  • 多模态模型CLIPStable DiffusionLLaVA 等模型用统一嵌入空间处理多种输入(文本、图像、音频),解锁文生图等强大应用。
  • 可解释性(Interpretability):稀疏自编码器(SAE)等机制可解释性技术在揭示大模型内部工作机制上取得显著进展,并衍生出 abliteration 等无需训练就能修改模型行为的技术。
  • Test-time compute:用 RL 训练的推理模型可以通过在推理时扩大算力预算进一步提升,涉及多次调用、MCTS 或过程奖励模型(PRM)等专用模型。带精确打分的迭代步骤能显著提升复杂推理任务的表现。

📚 参考:


👷 第三部分:LLM 工程师(The LLM Engineer)

本部分聚焦如何构建可用于生产的大模型应用,重点是增强模型并部署它们。

💡 本站对应:LLM 应用开发实战RAG 基础与流程Agent 基础与框架推理优化与部署大模型安全与对齐

1. 运行大模型

由于硬件要求高,运行大模型可能很困难。根据场景,你可能只是通过 API(如 GPT-4)消费模型,或在本地运行。无论哪种,额外的提示与引导技术都能改进并约束输出。

  • LLM API:API 是部署大模型的便捷方式,分为私有大模型(OpenAIGoogleAnthropic 等)和开源大模型(OpenRouterHugging FaceTogether AI 等)。
  • 开源大模型Hugging Face Hub 是寻找大模型的好地方。可以直接在 HF Spaces 运行,或本地用 LM Studiollama.cppollama 运行。
  • 提示工程:常见技术包括 zero-shot、few-shot、思维链(CoT)、ReAct。大模型上效果更好,但也能适配到小模型。
  • 结构化输出:很多任务需要结构化输出(严格模板或 JSON)。Outlines 等库可引导生成遵循给定结构,部分 API 也原生支持基于 JSON schema 的结构化输出。

📚 参考:

2. 构建向量存储

构建向量存储是搭建 RAG 流水线的第一步。文档被加载、切分,相关片段用来生成向量表示(嵌入)并存储,供推理时使用。

  • 文档摄取:文档加载器能处理多种格式(PDF、JSON、HTML、Markdown 等),也能直接从数据库和 API(GitHub、Reddit、Google Drive 等)取数据。
  • 文档切分:文本切分器把文档拆成更小、语义完整的片段。相比按固定字符数切分,常常按标题或递归切分(带额外元数据)更好。
  • 嵌入模型:把文本转成向量表示。针对任务挑选合适模型能显著提升语义检索与 RAG 的效果。
  • 向量数据库ChromaPineconeMilvusFAISSAnnoy 等用于存储嵌入向量,基于向量相似度高效检索与查询「最相似」的数据。

📚 参考:

3. 检索增强生成(RAG)

RAG 让大模型从数据库检索上下文文档来提升答案准确性,是无需微调即可扩充模型知识的流行方式。

  • 编排器(Orchestrators)LangChainLlamaIndex 等框架用于连接大模型与工具、数据库。模型上下文协议(MCP)引入了跨厂商传递数据与上下文的新标准。
  • 检索器(Retrievers):CoRAG、HyDE 等查询重写与生成式检索器通过转换用户查询增强搜索。多向量与混合检索结合嵌入和关键词信号来提升召回与精度。
  • 记忆(Memory):为记住之前的指令与回答,ChatGPT 等会把历史加入上下文窗口。这个缓冲区可用摘要(如用更小的 LLM)、向量库 + RAG 等改进。
  • 评估:需同时评估文档检索(上下文精度与召回)和生成阶段(忠实度与答案相关性),可用 RagasDeepEval 简化。

📚 参考:

4. 进阶 RAG

真实应用可能需要复杂流水线,包括 SQL 或图数据库,以及自动选择相关工具和 API。这些进阶技术能改进基线方案并提供额外能力。

  • 查询构造:传统数据库中的结构化数据需要 SQL、Cypher、元数据等特定查询语言。可用查询构造把用户指令直接翻译成查询去访问数据。
  • 工具(Tools):Agent 通过自动选择最相关的工具来增强大模型。工具可以简单如用 Google 或 Wikipedia,也可复杂如 Python 解释器或 Jira。
  • 后处理:处理喂给大模型的输入的最后一步,用重排(re-ranking)、RAG-fusion、分类等提升检索文档的相关性与多样性。
  • 以编程方式优化 LLMDSPy 等框架让你基于自动评估以编程方式优化提示和权重。

📚 参考:

5. Agent(智能体)

LLM Agent 能基于对环境的推理采取行动,自主完成任务,通常通过工具或函数与外部系统交互。

  • Agent 基础:Agent 通过思考(内部推理决定下一步)、行动(执行任务,常与外部工具交互)、观察(分析反馈或结果以优化下一步)运作。
  • Agent 协议模型上下文协议(MCP) 是连接 Agent 与外部工具、数据源的行业标准(MCP server 与 client)。更近的 Agent2Agent(A2A) 尝试标准化 Agent 互操作的通用语言。
  • 厂商框架:各大云模型厂商有自己的 Agent 框架,如 OpenAI SDKGoogle ADKClaude Agent SDK
  • 其他框架LangGraph(工作流设计与可视化)、LlamaIndex(带 RAG 的数据增强 Agent)等可简化 Agent 开发。更具实验性的多 Agent 协作框架包括 CrewAI(基于角色的团队工作流)和 AutoGen(对话驱动的多 Agent 系统)。

📚 参考:

6. 推理优化

文本生成成本高,需要昂贵硬件。除量化外,还有多种技术可最大化吞吐、降低推理成本。

  • Flash Attention:优化注意力机制,把复杂度从二次降到线性,同时加速训练与推理。
  • KV 缓存:理解键值缓存,以及 Multi-Query Attention(MQA)Grouped-Query Attention(GQA) 带来的改进。
  • 投机解码(Speculative decoding):用小模型生成草稿,再由大模型审核,加速文本生成。EAGLE-3 是特别流行的方案。

📚 参考:

7. 部署大模型

大规模部署大模型是一项工程壮举,可能需要多个 GPU 集群。其他场景下,demo 和本地应用可以用低得多的复杂度实现。

  • 本地部署:隐私是开源大模型相对私有模型的重要优势。本地 LLM 服务器(LM StudioOllamaoobaboogakobold.cpp 等)利用这一优势驱动本地应用。
  • Demo 部署GradioStreamlit 等框架适合快速原型与分享 demo,也能轻松托管到 HF Spaces 等。
  • 服务器部署:大规模部署需要云(参考 SkyPilot)或本地基础设施,常用优化的文本生成框架如 TGIvLLM 等。
  • 边缘部署:受限环境中,MLC LLMmnn-llm 等高性能框架可在浏览器、Android、iOS 上部署大模型。

📚 参考:

8. 大模型安全

除了软件常见的安全问题,大模型因其训练和提示方式还有独特弱点。

  • 提示攻击(Prompt hacking):包括提示注入(附加指令劫持模型回答)、数据/提示泄露(套取原始数据或系统提示)、越狱(构造提示绕过安全机制)。
  • 后门(Backdoors):攻击可针对训练数据本身——投毒训练数据(如注入虚假信息)或植入后门(推理时改变模型行为的秘密触发器)。
  • 防御措施:保护大模型应用的最佳方式是针对这些漏洞做测试(如红队演练与 garak 等检查),并在生产中持续观测(如用 langfuse)。

📚 参考:


致谢(Acknowledgements)

本路线图由 Maxime Labonne 创作,灵感来自 Milan Milanović 与 Romano Roth 的 DevOps Roadmap。原作者特别感谢 Thomas Thelen、André Frade、Dino Dunn、Magdalena Kuhn、Odoverdose 以及所有为课程贡献教育资源的人。

免责声明(原作者):作者与此处列出的任何来源均无关联。


关于本页

本页为 mlabonne/llm-course(Apache-2.0)的中文译本,由 LLMGuide 整理。如发现翻译问题或链接失效,欢迎在 本站仓库 提 Issue / PR。原始英文与最新更新请以原项目为准。

基于 MIT 许可发布