目录
本书源码
第1章大模型时代
1.1大模型的发展历史
1.1.1注意力机制的发扬光大
1.1.2从GPT到InstructGPT
1.1.3ChatGPT惊艳登场
1.1.4全球首个AI程序员诞生
1.2大模型时代的新范式
第2章深入了解大模型(59min)
2.1Transformer横空出世
2.1.1词典生成
2.1.2词嵌入
2.1.3自注意力机制
2.1.4层归一化
2.1.5残差连接
2.1.6前馈模块
2.1.7Transformer的整体架构
2.1.8位置编码
2.1.9解码器的输入输出
2.1.10掩码机制
2.1.11交叉注意力
2.1.12线性分类头
2.2GPT
2.2.1GPT1
2.2.2GPT2
2.2.3GPT3
2.2.4GPT4
2.3OpenAI o1
2.4Llama
2.4.1Llama1
2.4.2Llama2
2.4.3Llama3
第3章运行第1个大模型
3.1HuggingFace介绍
3.2下载大模型
3.3运行大模型
3.4HuggingFace里的Tokenizer
3.5HuggingFace里的模型
3.5.1创建和保存模型
3.5.2控制大模型的输出
第4章大模型带来的技术挑战(127min)
4.1GPU的工作原理
4.1.1CPU和GPU的区别
4.1.2GPU的架构
4.1.3GPU里的存储
4.1.4Tensor Core
4.2大模型显存占用
4.3优化器
4.3.1指数加权平均
4.3.2SGD
4.3.3动量梯度下降
4.3.4RMSProp
4.3.5Adam
4.3.6AdamW
4.4混合精度训练
4.4.1混合精度训练原理
4.4.2在PyTorch里进行混合精度训练
4.5模型的量化技术
4.5.1量化技术的原理
4.5.2训练后动态量化
4.5.3训练后静态量化
4.5.4量化感知训练
4.5.5LLM.int8
4.5.6NF4量化
4.6梯度累加
4.7梯度检查点
4.8分布式训练
4.8.1分布式数据并行
4.8.2DeepSpeed ZeRO
4.8.3Accelerate
4.9参数高效微调
4.9.1提示词微调
4.9.2LoRA
4.10vLLM
4.10.1KV Cache
4.10.2Page Attention
4.10.3块共享
4.10.4代码示例
4.11FlashAttention
第5章大模型的预训练(15min)
5.1预训练的作用
5.2预训练的数据
5.3预训练的方法
5.4预训练Llama3.1
5.4.1最简训练代码
5.4.2数据清洗
5.4.3数据准备
5.4.4初始化模型
5.4.5模型预训练
第6章大模型的监督微调(13min)
6.1对话模板
6.2只关注回答
6.3噪声嵌入微调
6.4SFT Trainer
第7章大模型的强化学习(69min)
7.1强化学习基础
7.1.1强化学习里的基础概念
7.1.2策略梯度算法
7.1.3ActorCritic算法
7.1.4广义优势估计算法
7.2近端策略优化
7.3直接偏好优化
7.3.1KL散度
7.3.2BradleyTerry模型
7.3.3DPO的训练目标
7.4利用TRL库进行PPO训练
7.4.1奖励模型
7.4.2PPO模型
第8章大模型的评估
8.1困惑度
8.2人工评估
8.3可解析的测评集
8.3.1MMLU
8.3.2MMLUPRO
8.3.3IFEVAL
8.3.4BBH
8.3.5MATH
8.3.6GPQA
8.4利用大模型评估
第9章构建大模型应用
9.1提示词工程
9.1.1明确的任务指示
9.1.2提供上下文信息
9.1.3赋予大模型角色
9.1.4给模型思考时间
9.1.5给模型参考示例
9.2LangChain介绍
9.3第1个LangChain程序
9.4构建一个聊天机器人
9.5LangChain的进阶功能
9.5.1对输出进行解析
9.5.2为提示词增加样例
9.6检索增强生成
9.6.1RAG流程
9.6.2文档分片
9.6.3向量嵌入模型
9.6.4向量存储
9.6.5Retriever
9.6.6生成回答
9.7RAG进阶
9.7.1问题转化
9.7.2混合检索
9.7.3索引增强
9.7.4检索结果重排
9.8智能体
9.8.1创建第1个智能体
9.8.2给智能体定义工具
9.8.3智能体使用工具的原理
9.8.4给智能体增加记忆
9.8.5人与智能体合作
9.8.6多智能体协作