《图解大模型:生成式AI原理与实战》封面

内容简介

本书全程图解式讲解,通过大量全彩插图拆解概念,让读者真正告别学习大模型的枯燥和复杂。

全书分为三部分,依次介绍语言模型的原理、应用及优化。第一部分 理解语言模型(第1~3章),解析语言模型的核心概念,包括词元、嵌入向量及Transformer架构,帮助读者建立基础认知。第二部分 使用预训练语言模型(第4~9章),介绍如何使用大模型进行文本分类、聚类、语义搜索、文本生成及多模态扩展,提升模型的应用能力。第三部分 训练和微调语言模型(第10~12章),探讨大模型的训练与微调方法,包括嵌入模型的构建、分类任务的优化及生成式模型的微调,以适应特定需求。

本书适合对大模型感兴趣的开发者、研究人员和行业从业者。读者无须深度学习基础,只要会用Python,就可以通过本书深入理解大模型的原理并上手大模型应用开发。书中示例还可以一键在线运行,让学习过程更轻松。

作者简介

Jay Alammar

Cohere总监兼工程研究员,知名大模型技术博客Language Models & Co作者,DeepLearning.AI和Udacity热门机器学习和自然语言处理课程作者。

Jay的图解系列文章“The Illustrated Transformer”“The Illustrated DeepSeek-R1”全网疯传,累积了几百万专业读者。

Maarten Grootendorst

IKNL(荷兰综合癌症中心)高级临床数据科学家,知名大模型技术博客博主,BERTopic等开源大模型软件包作者(下载量超百万),DeepLearning.AI和Udacity热门机器学习和自然语言处理课程作者。

目录

译者序xv
中文版序xxi
前言xxiii
第一部分 理解语言模型
第1章 大语言模型简介3
1.1 什么是语言人工智能4
1.2 语言人工智能的近期发展史4
1.2.1 将语言表示为词袋模型5
1.2.2 用稠密向量嵌入获得更好的表示7
1.2.3 嵌入的类型9
1.2.4 使用注意力机制编解码上下文10
1.2.5 “AttentionIsAllYouNeed”13
1.2.6 表示模型:仅编码器模型16
1.2.7 生成模型:仅解码器模型18
1.2.8 生成式AI元年20
1.3 “LLM”定义的演变22
1.4 LLM的训练范式22
1.5 LLM的应用23
1.6 开发和使用负责任的LLM24
1.7 有限的资源就够了25
1.8 与LLM交互25
1.8.1 专有模型26
1.8.2 开源模型26
1.8.3 开源框架27
1.9 生成你的第一段文本28
1.10 小结30
第2章 词元和嵌入31
2.1 LLM的分词32
2.1.1 分词器如何处理语言模型的输入32
2.1.2 下载和运行LLM33
2.1.3 分词器如何分解文本36
2.1.4 词级、子词级、字符级与字节级分词37
2.1.5 比较训练好的LLM分词器39
2.1.6 分词器属性47
2.2 词元嵌入48
2.2.1 语言模型为其分词器的词表保存嵌入49
2.2.2 使用语言模型创建与上下文相关的词嵌入49
2.3 文本嵌入(用于句子和整篇文档)52
2.4 LLM之外的词嵌入53
2.4.1 使用预训练词嵌入53
2.4.2 word2vec算法与对比训练54
2.5 推荐系统中的嵌入57
2.5.1 基于嵌入的歌曲推荐57
2.5.2 训练歌曲嵌入模型58
2.6 小结60
第3章 LLM的内部机制61
3.1 Transformer模型概述62
3.1.1 已训练TransformerLLM的输入和输出62
3.1.2 前向传播的组成64
3.1.3 从概率分布中选择单个词元(采样/解码)66
3.1.4 并行词元处理和上下文长度68
3.1.5 通过缓存键值加速生成过程70
3.1.6 Transformer块的内部结构71
3.2 Transformer架构的最新改进79
3.2.1 更高效的注意力机制79
3.2.2 Transformer块83
3.2.3 位置嵌入:RoPE85
3.2.4 其他架构实验和改进87
3.3 小结87
第二部分 使用预训练语言模型
第4章 文本分类91
4.1 电影评论的情感分析92
4.2 使用表示模型进行文本分类93
4.3 模型选择94
4.4 使用特定任务模型96
4.5 利用嵌入向量的分类任务99
4.5.1 监督分类99
4.5.2 没有标注数据怎么办102
4.6 使用生成模型进行文本分类105
4.6.1 使用T5106
4.6.2 使用ChatGPT进行分类110
4.7 小结113
第5章 文本聚类和主题建模114
5.1 ArXiv文章:计算与语言115
5.2 文本聚类的通用流程116
5.2.1 嵌入文档116
5.2.2 嵌入向量降维117
5.2.3 对降维后的嵌入向量进行聚类119
5.2.4 检查生成的簇120
5.3 从文本聚类到主题建模122
5.3.1 BERTopic:一个模块化主题建模框架124
5.3.2 添加特殊的“乐高积木块”131
5.3.3 文本生成的“乐高积木块”135
5.4 小结138
第6章 提示工程140
6.1 使用文本生成模型140
6.1.1 选择文本生成模型140
6.1.2 加载文本生成模型141
6.1.3 控制模型输出143
6.2 提示工程简介145
6.2.1 提示词的基本要素145
6.2.2 基于指令的提示词147
6.3 高级提示工程149
6.3.1 提示词的潜在复杂性149
6.3.2 上下文学习:提供示例152
6.3.3 链式提示:分解问题153
6.4 使用生成模型进行推理155
6.4.1 思维链:先思考再回答156
6.4.2 自洽性:采样输出159
6.4.3 思维树:探索中间步骤160
6.5 输出验证161
6.5.1 提供示例162
6.5.2 语法:约束采样164
6.6 小结167
第7章 高级文本生成技术与工具168
7.1 模型输入/输出:基于LangChain加载量化模型169
7.2 链:扩展LLM的能力171
7.2.1 链式架构的关键节点:提示词模板172
7.2.2 多提示词链式架构174
7.3 记忆:构建LLM的对话回溯能力177
7.3.1 对话缓冲区178
7.3.2 窗口式对话缓冲区180
7.3.3 对话摘要181
7.4 智能体:构建LLM系统185
7.4.1 智能体的核心机制:递进式推理186
7.4.2 LangChain中的ReAct实现187
7.5 小结190
第8章 语义搜索与RAG191
8.1 语义搜索与RAG技术全景191
8.2 语言模型驱动的语义搜索实践193
8.2.1 稠密检索193
8.2.2 重排序204
8.2.3 检索评估指标体系207
8.3 RAG211
8.3.1 从搜索到RAG212
8.3.2 示例:使用LLMAPI进行基于知识的生成213
8.3.3 示例:使用本地模型的RAG213
8.3.4 高级RAG技术215
8.3.5 RAG效果评估217
8.4 小结218
第9章 多模态LLM219
9.1 视觉Transformer220
9.2 多模态嵌入模型222
9.2.1 CLIP:构建跨模态桥梁224
9.2.2 CLIP的跨模态嵌入生成机制224
9.2.3 OpenCLIP226
9.3 让文本生成模型具备多模态能力231
9.3.1 BLIP-2:跨越模态鸿沟231
9.3.2 多模态输入预处理235
9.3.3 用例1:图像描述237
9.3.4 用例2:基于聊天的多模态提示词240
9.4 小结242
第三部分 训练和微调语言模型
第10章 构建文本嵌入模型247
10.1 嵌入模型247
10.2 什么是对比学习249
10.3 SBERT251
10.4 构建嵌入模型253
10.4.1 生成对比样本253
10.4.2 训练模型254
10.4.3 深入评估257
10.4.4 损失函数258
10.5 微调嵌入模型265
10.5.1 监督学习265
10.5.2 增强型SBERT267
10.6 无监督学习271
10.6.1 TSDAE272
10.6.2 使用TSDAE进行领域适配275
10.7 小结276
第11章 为分类任务微调表示模型277
11.1 监督分类277
11.1.1 微调预训练的BERT模型279
11.1.2 冻结层281
11.2 少样本分类286
11.2.1 SetFit:少样本场景下的高效微调方案286
11.2.2 少样本分类的微调290
11.3 基于掩码语言建模的继续预训练292
11.4 命名实体识别297
11.4.1 数据准备298
11.4.2 命名实体识别的微调303
11.5 小结305
第12章 微调生成模型306
12.1 LLM训练三步走:预训练、监督微调和偏好调优306
12.2 监督微调308
12.2.1 全量微调308
12.2.2 参数高效微调309
12.3 使用QLoRA进行指令微调317
12.3.1 模板化指令数据317
12.3.2 模型量化318
12.3.3 LoRA配置319
12.3.4 训练配置320
12.3.5 训练321
12.3.6 合并权重322
12.4 评估生成模型322
12.4.1 词级指标323
12.4.2 基准测试323
12.4.3 排行榜324
12.4.4 自动评估325
12.4.5 人工评估325
12.5 偏好调优、对齐326
12.6 使用奖励模型实现偏好评估自动化327
12.6.1 奖励模型的输入和输出328
12.6.2 训练奖励模型329
12.6.3 训练无奖励模型332
12.7 使用DPO进行偏好调优333
12.7.1 对齐数据的模板化333
12.7.2 模型量化334
12.7.3 训练配置335
12.7.4 训练336
12.8 小结337
附录 图解DeepSeek-R1338
后记349
······

最后修改:2025 年 09 月 29 日