大模型学习路线
建议先从主流的 Llama 开始,然后选用中文的 Qwen/Baichuan/ChatGLM。先快速上手体验 Prompt 工程,然后再学习其架构,跑微调脚本。
如果要深入学习,建议再按以下步骤,从更基础的 GPT 和 BERT 学起,因为底层是相通的。而且实际落地到一个系统中,通常是大模型结合小模型(大模型在做判别性的任务上,比 BERT 优势不是特别大)。
可以参考如下方案,按需学习。
一、简述
按个人偏好总结了学习目标与路径,后续将陆续整理相应学习资料,并输出学习笔记。
学习思路
快速应用 Transformer 等轮子来微调和使用 LLM,同时深入学习 NLP 预训练模型原理和推理部署(因为偏底层的东西变化不大)。
学习目标
- 熟悉主流 LLM(Llama, ChatGLM, Qwen)的技术架构和技术细节;有实际应用 RAG、PEFT 和 SFT 的项目经验。
- 较强的 NLP 基础,熟悉 BERT、GPT、Transformer、T5 等预训练语言模型的实现,有对话系统相关研发经验。
- 掌握 TensorRT-LLM、vLLM 等主流推理加速框架,熟悉模型量化、FlashAttention 等推理加速技术方案,对分布式训练 DeepSpeed 框架有实战经验。
- 熟悉 Pytorch,具备扎实的深度学习和机器学习基础,基本掌握 C/C++、Cuda 和计算机系统原理。
参考项目
- LangChain 文档问答实践
- MiniGPT 项目详解
- NanoGPT 项目详解
- HuggingFace PEFT 库详解
参考书籍
- 《深度学习入门:基于 Python 的理论与实践》
- 《深度学习进阶:自然语言处理》
- Dive In Deep Learning (动手学深度学习)
- 《神经网络与深度学习》
- 《机器学习方法》
参考课程
- 面向开发者的 LLM 入门课程(吴恩达课程 - 中文版)
- 普林斯顿-COS 597G (Fall 2022): Understanding Large Language Models
- 斯坦福-CS324 - Large Language Models
教程
- Huggingface Transformers 官方课程
- Transformers 快速入门(快速调包 BERT 系列)
学习方式
- 力求快速应用(先调包,再深入学习)
- 在实践中动手学习,力求搞懂每个关键点
- 【原理学习】+【代码实践】 + 【输出总结】
基础知识
视频课程
- 吴恩达机器学习入门
- 李沐讲 AI
- 台大李宏毅 - 机器学习
- 斯坦福 NLP cs224n
书籍
- 深度学习入门:基于 Python 的理论与实践,numpy 实现 MLP、卷积的训练
- 《深度学习进阶:自然语言处理》:numpy 实现 Transformers、word2vec、RNN 的训练
- Dive In Deep Learning(动手学深度学习)
- 《神经网络与深度学习》
- 《机器学习方法》:李航的 NLP 相关的机器学习 + 深度学习知识(按需选学)
强化学习
- 强化学习教程 - 蘑菇书 EasyRL(李宏毅强化学习 + 强化学习纲要)
- 动手学强化学习
博客
学习纲要
1. Zero Shot / Few Shot 快速开箱即用
- Prompt 调优: 包括上下文学习 (In-Context Learning, ICL) 和思维链 (Chain of Thought, COT)。
- RAG (Retrieval Augmented Generation): 基于文档分块、向量索引和 LLM 生成,如 Langchain 文档问答。
2. 领域数据 - 指令微调 LLM
- PEFT (Parameter-Efficient Fine-Tuning): 参数高效的微调,适合用于纠正模型输出格式。常见技术包括 LoRA、QLoRA、SLORA、P-Tuning v2。
- SFT (Supervised Fintuning): 全参数监督微调,使用 prompt 指令样本全量微调 LLM(可以注入新的领域知识)。需要控制样本配比(领域数据 + 通用数据)。
3. 对齐
- 对齐人类偏好 (RLHF): 包含 RewardModel 奖励模型(排序标注,判断答案价值)和 RL (PPO,更新 SFT 模型)。
- 专注基于强化学习的大语言模型对齐,有前景的方向是 SuperhumanAI AutoALign。
4. 预训练
- 小模型预训练 (GPT2, TinyLlama),不考虑训练参数规模较大的语言模型。
5. 训练推理优化
- 模型量化、推理加速、蒸馏。
- 推理框架(vLLM、TensorRT-LLM、Llama.cpp)。
二、学习目录
第 1 章 技术与需求分析
- 1.1 技术分析: LLM 的发展历程与趋势,开源 LLM 生态(Llama 系列,Mistral/Mixtral-8X7B-MOE,ChatGLM/Baichuan/Qwen)。
- 1.2 市场需求分析: 需求和就业市场分析(预训练、对齐、微调、应用、推理加速),商业落地分析 (2C、2B 应用场景)。
第 2 章 ChatGPT 背景与原理
- 2.1 ChatGPT 的工作原理: 预训练与提示学习阶段,结果评价与奖励建模阶段,强化学习阶段。
- 2.2 算法细节: 标注数据,建模思路。
第 3 章 预训练语言模型
- 3.1 Transformer: 论文《Attention Is All Your Need》,解析与图解,Torch 代码详解和训练实战。
- 3.2 GPT: GPT-1 到 GPT-4 论文及解析,60 行代码实现 GPT 推理 (PicoGPT),MiniGPT/NanoGPT 项目详解,GPT2 微调实战。
- 3.3 BERT: 原理与可视化,BERT 结构和预训练代码实现,文本分类、NER、信息抽取、相似性检索 (SimCSE-BERT),衍生系列 (RoBERTa/ALBERT/DistillBERT)。
- 3.4 T5 系列: T5-Pegasus 对话摘要微调,PromptClue 关键词抽取微调。
- 3.5 UniLM: 模型介绍,基于夸夸闲聊数据的 UniLM 模型实战。
第 4 章 提示学习与大型语言模型
- 4.1 提示学习 PromptLearning: 提示学习介绍,提示模板设计,答案空间映射设计。
- 4.2 上下文学习 ContextLearning: 上下文学习介绍,预训练阶段提升上下文,推理阶段优化上下文。
- 4.3 指令数据构建: 手动和自动构建指令,开源指令数据集,基于提示的文本情感分析实战。
第 5 章 开源大型语言模型
- 5.1 Mistral: Mistral 7B Tutorial,MOE 模型结构源码解析,微调。
- 5.2 Llama: Llama1/2 源码深入解析,优化与微调实战。
- 5.3 ChatGLM: 简介,ChatGLM-6B/2/3 微调保姆级教程。
第 6 章 LLM 微调
- 6.1 全量指令微调 SFT: 全量参数微调策略。
- 6.2 高效微调 PEFT:
- LoRA 系列: LoRA, ChatGLM-6B/2/3 微调,QLoRA (4 比特量化), AdaLoRa, SLoRA。
- 其他: P-Tuning V2 介绍与实战。
- 实战: HuggingFace PEFT 库详解,Deepspeed-Chat SFT 实践。
第 7 章 大型语言模型预训练
- 7.1 预训练模型中的分词器: BPE, WordPiece, Unigram, SentencePiece 详解,MinBPE 实战。
- 7.2 分布式训练: 并行策略,集群架构,Megatron-LM/DeepSpeed 详解,基于 DeepSpeed 的 GLM/LLaMA 分布式训练实践。
- 7.3 MOE 混合专家模型: 基础概念,Mixstral-8X7B-MOE 介绍及相关论文。
第 8 章 LLM 应用
- 8.1 推理规划: 思维链提示 (CoT),由少至多提示 (Least-to-Most Prompting)。
- 8.2 综合应用框架: LangChain 框架核心模块,知识库问答实践。
- 8.3 智能代理 AI Agent: 智能代理介绍,LLM Powered Autonomous Agents,应用实例。
第 9 章 LLM 加速
- 9.1 注意力优化: FlashAttention 系列,PagedAttention,BigBird 块稀疏注意力。
- 9.2 CPU 推理加速: Llama.cpp/ChatGLM.cpp 应用与代码详解。
- 9.3 推理优化框架: vLLM 推理框架实践,TensorRT-LLM 应用与代码详解。
- 9.4 训练加速: 相关优化技术。
第 10 章 强化学习
- 10.1 强化学习概述: 基础概念。
- 10.2 强化学习环境: 环境搭建。
- 10.3 强化学习算法: Q-learning, DQN, Policy Gradient, Actor-Critic 算法。
第 11 章 PPO 算法与 RLHF 理论实战
- 11.1 近端策略优化算法 PPO: 论文解读,广义优势估计,算法原理剖析,N 步实现细节,正向情感倾向性实战。
- 11.2 基于人类反馈的强化学习 RLHF: InstructGPT 模型分析,RLHF 流程与内部剖析,数据收集与模型训练,MOSS-RLHF 实践,奖励模型训练与 PPO 微调。
第 12 章 类 ChatGPT 实战
- 12.1 任务设计: 整体架构设计。
- 12.2 数据准备: 基于文档生成问题任务的类,SFT/RM/RL 阶段数据处理。
第 13 章 语言模型训练数据
- 13.1 数据来源: 通用数据,专业数据。
- 13.2 数据处理: 低质过滤,冗余去除,隐私消除。
- 13.3 数据影响分析: 数据规模、质量、多样性影响。
- 13.4 开源数据集合: Pile, ROOTS, RefinedWeb, SlimPajama。
第 14 章 大语言模型评估
- 14.1 模型评估概述: 评估的重要性。
- 14.2 大语言模型评估体系: 知识与能力,伦理与安全,垂直领域评估。
- 14.3 大语言模型评估方法: 评估指标与方法。
- 14.4 大语言模型评估实践: 基础模型评估,SFT/RL 模型评估。
第 15 章 多模态大模型
第 16 章 大模型原生应用
- 16.1 落地调研: 提供大模型基础服务(ChatGPT、Gemini、文心一言等),ToC/ToB 场景,开源模型增量预训练、微调及行业落地。规模化、自动化人的工作,替代人工,批量化生成或服务。
- 16.2 应用分析: 具体案例分析。
一些思考
在企业里面做 7B、13B 量级的微调,主要就是在搞数据、样本,技术壁垒不高。预训练壁垒高,因为需要烧钱堆经验。
在这个日新月异的时代,如何紧跟行业主流发展,并具备不可替代性是个难题:
- 稀缺(不可替代性)
- 稳定(业务和表层技术天天变,但底层的理论变化不大)
- 需求持续(最好是类似衣食住行的刚需,否则技术过时/热度褪去/不达预期,泡沫崩溃)
- 不能越老越吃香(放到绝大多数行业都适用:不能经验积累,持续长期创造价值)
- 壁垒(技术、业务、资本上有垄断)
尽量往底层和工程化上靠,学习相对不变的技术(理论上变化很难),迁移到稳定或有前景的行业,不断提升自己的学习效率:
- 计算机系统知识(训练、推理、开发,模型推理部署工程化)
- 数学(深入学习并实践)
大模型技术正在重塑软件开发的范式,掌握底层原理与工程化能力将成为未来核心竞争力。