【大语言模型】LLM学习路径-从入门到精通

发布时间 2023-11-21 08:23:38作者: LeonYi

简述

根据如下两本书:
1)大规模语言模型:从理论到实践 -- 张奇、桂韬、郑锐、黄萱菁
2)ChatGPT原理与实战

按更合理的顺序总结了学习路径,实际可按需学习,后续每个目录将给出相应学习资料和资源(参见Github仓库链接)。

学习目录

第1章 技术发展与需求分析

1.1 市场需求分析
1.1.1、初识大型语言模型LLM
1.1.2、需求和就业市场分析(职位与技术需求分析)
1.1.3、商业落地分析(2C、2B应用场景)
1.1.4、目标与学习计划制定
1.2 技术发展分析
1.2.1 LLM的发展历程与趋势
1.2.2 开源LLM生态
1.1 大规模语言模型基本概念
1.2 大规模语言模型发展历程
1.3 大规模语言模型构建流程

第2章 ChatGPT背景与原理

2.1 ChatGPT的背景知识
2.1.1 ChatGPT发展趋势
2.1.2 ChatGPT的能力
2.2 ChatGPT的工作原理
2.2.1 预训练与提示学习阶段
2.2.2 结果评价与奖励建模阶段
2.2.3 强化学习与自我进化阶段
2.3 算法细节
2.3.1 标注数据
2.3.2 建模思路
2.3.3 存在问题
2.4 成本分析
2.4.1 训练、微调和推理部署

第3章 预训练语言模型

3.1 Transformer原理详解
3.1.1 Transformer结构
2.1.1 嵌入表示层
2.1.2 注意力层
2.1.3 前馈层
2.1.4 残差连接与层归一化
2.1.5 编码器和解码器结构
3.1.2 Transformer代码分析
3.1.3 Transformer实战
3.2 生成式预训练语言模型GPT系列分析
GPT-1:Improving Language Understanding by Generative Pre-Training
GPT-2: Language Models are Unsupervised Multitask Learners
GPT-3:Language Models are Few-Shot Learners
GPT-3衍生模型CodeX: Evaluating Large Language Models Trained on Code
GPT-4:GPT-4 Technical Report(openai.com)
3.2.1 无监督预训练
3.2.2 有监督下游任务微调
3.3 GPT实战
3.3.1 基于Transformers库训练GPT2语言模型
3.3.2 基于GPT-2模型微调的文本摘要实战
3.3.2.1 数据预处理模块
3.3.2.2 GPT-2模型模块
3.3.2.3 模型训练和推理模块
3.2.4 动手用Numpy实现GPT
3.2.5 NanoGPT项目详解
3.2.6 MiniGPT项目详解
3.2.7 动手用C++实现GPT
3.4 基于Encoder结构的模型
3.4.1 BERT
3.4.2 RoBERTa
3.4.3 ALBERT
3.4.4 UniLM
3.5 BERT模型实战
3.5.1 基于HuggingFace的BERT预训练践
3.5.2 动手用Torch实现BERT预训练训练
3.5.3 BERT文本分类实战
3.5.4 BERT-CRF实体识别实战
3.5.5 BERT+指针网络(UIE)信息抽取实战
3.6 基于夸夸闲聊数据的UniLM模型实战
3.6.1 数据预处理
3.6.2 UniLM模型
3.6.3 模型训练与推理

第4章 提示学习与大型语言模型

4.1 提示学习PromptLearning
4.1.1 什么是提示学习
4.1.2 提示模板设计
4.1.3 答案空间映射设计
4.1.4 多提示学习方法
4.2 上下文学习
4.2.1 什么是上下文学习
4.2.2 预训练阶段提升上下文
4.2.3 推理阶段优化上下文
4.3 指令数据构建
4.3.1 手动构建指令
4.3.2 自动生成指令
4.3.3 开源指令数据集
4.3.4 基于提示的文本情感分析实战
4.3.1 数据预处理
4.43.2 模型结构与训练模块

第5章 开源大型语言模型

5.1 Llama1
5.1.1 Llama1的模型结构
5.1.2 注意力外推优化(Rope)
5.1.3 Llama1源码解析
5.1.4 Llama1-6B微调
5.2 Llama2源码
5.2.1 Llama2的模型结构
5.2.2 Llama2的优化
5.2.3 Llama2源码解析
5.2.4 Llama2-6B微调
5.3 ChatGLM3
5.2.1 ChatGLM3简介
5.2.2 ChatGLM3-6B微调
5.4 CodeLlama
5.2.1 CodeLlama简介
5.2.2 CodeLlama微调

第6章 LLM微调

6.1 全量指令微调
6.2 高效模型微调PEFT简介
6.3 LORA系列
6.3.1 LoRA(Low Rank Adapter)
6.3.2 QLoRA
6.3.3 AdaLoRa
6.3.4 SLoRA
6.4 P-Tuning系列
6.4.1 P-Tuning V1
6.4.2 P-Tuning V2
6.5 基于LLM微调的信息抽取实战
6.5.1 ChatGLM项目简介
6.5.2 数据预处理模块
6.5.3 Freeze微调模块
6.5.4 LoRA微调模块
6.5.5 P-Tuning v2微调模块
6.6 Deepspeed-Chat SFT 实践
6.6.1 代码结构
6.6.2 数据预处理
6.6.3 自定义模型
6.6.4 模型训练
6.6.5 模型推理

第7章 大型语言模型预训练

7.1 大型预训练模型简介
7.2 预训练模型中的分词器
7.2.1 BPE详解
7.2.2 WordPiece
7.2.3 Unigram
7.2.4 SentencePiece详解
7.3 分布式训练
7.3.1 分布式训练概述
7.3.2 分布式训练并行策略
7.3.3 分布式训练的集群架构
7.3.4 分布式深度学习框架
Megatron-LM详解
DeepSpeed详解
Colossal-AI
7.4 基于DeepSpeed的大型语言模型的预训练实战
7.4.1 GLM项目简介
7.4.2 数据预处理模块
7.4.3 执行模型训练
7.5 DeepSpeed实践
7.5.1 基础概念
7.5.2 LLaMA 分布式训练实践

第8章 LLM应用

8.1 推理规划
8.1.1 思维链提示(Chain-of-Thought Prompting)
8.1.2 由少至多提示(Least-to-Most Prompting)
8.2 综合应用框架
8.2.1 LangChain 框架核心模块
8.2.2 知识库问答实践
8.3 智能代理AI Agent
8.3.1 智能代理的组成
8.3.2 智能代理的应用实例

第9章 LLM推理加速

9.1、注意力优化
9.1.1 FlashAttention系列
9.1.2 PagedAttention
9.2、CPU推理加速
9.2.1 Llama.c应用与代码详解
9.2.2 Llama.cpp应用与代码详解
9.2.3 ChatGLM.cpp应用与代码详解
9.3 推理优化框架
9.3.1 TensorRT-LLM应用与代码详解
9.3.2 FasterTransformer应用与代码详解
9.3.3 FastServe框架
9.3.4 vLLM推理框架实践
9.4 分布式推理

第10章 强化学习

10.1 基础
10.1.1 强化学习概述
10.1.2 强化学习与有监督学习的区别
10.2 强化学习环境
10.3 强化学习算法
10.3.1 Q-learning算法
10.3.2 SARSA算法
10.3.3 DQN算法
10.3.4 Policy Gradient算法
10.3.5 Actor-Critic算法

第11章 PPO算法与RLHF理论实战

11.1 近端策略优化算法PPO简介
PPO:Proximal Policy Optimization Algorithms.
11.1.1 策略梯度算法回顾
11.1.2 广义优势估计
11.1.3 PPO算法原理剖析
11.1.4 PPO算法对比与评价
11.2 基于人类反馈的强化学习RLHF框架
RLHF:Augmenting Reinforcement Learning with Human Feedback
11.2.1 RLHF的流程
11.2.2 RLHF内部剖析
11.2.3 RLHF价值分析
11.2.4 RLHF问题分析
11.2.5 数据收集与模型训练
11.2.6 开源数据
11.3 InstructGPT模型分析
InstructGPT:Training language models to follow instructions with human feedback
11.3.1 模型简介
11.3.2 数据收集
11.3.3 模型原理
11.3.4 模型讨论
11.4 基于PPO的正向情感倾向性
11.4.1 项目任务与数据集分析
11.4.2 数据预处理模块
11.4.3 模型训练模块
11.4.4 模型生成模块
11.4.5 模型评估模块
11.5 MOSS-RLHF 实践
11.5.1 奖励模型训练
11.5.2 PPO 微调

第12章 类ChatGPT实战

12.1 任务设计
12.2 数据准备
12.3 基于文档生成问题任务的类
12.3.1 SFT阶段
12.3.2 RM阶段
12.3.3 RL阶段

第13章 语言模型训练数据

13.1 数据来源
13.1.1 通用数据
13.1.2 专业数据
13.2 数据处理
13.2.1 低质过滤
13.2.2 冗余去除
13.2.3 隐私消除
13.2.4 词元切分
13.3 数据影响分析
13.3.1 数据规模影响
13.3.2 数据质量影响
13.3.3 数据多样性影响
13.4 开源数据集合
13.4.1 Pile
13.4.2 ROOTS
13.4.3 RefinedWeb
13.4.4 SlimPajama

第14章 大语言模型评估

14.1 模型评估概述
14.2 大语言模型评估体系
14.2.1 知识与能力
14.2.2 伦理与安全
14.2.3 垂直领域评估
14.3 大语言模型评估方法
14.3.1 评估指标
14.3.2 评估方法
14.4 大语言模型评估实践
14.4.1 基础模型评估
14.4.2 SFT/RL 模型评估

基础知识

  • 视频课程:b站李沐讲AI、台大李宏毅-机器学习、斯坦福cs224n
  • 书籍:Dive In DeepLearning、《神经网络与深度学习》、《机器学习方法》
  • 强化学习:参考李宏毅课程和动手学强化学习。