对本书的赞誉xi
对本书中文版的赞誉xiii
译者序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“Attention Is All You Need”13
1.2.6表示模型:仅编码器模型16
1.2.7生成模型:仅解码器模型18
1.2.8生成式AI元年20
1.3“LLM”定义的演变22
1.4LLM的训练范式22
1.5LLM的应用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.1LLM的分词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.4LLM之外的词嵌入53
2.4.1使用预训练词嵌入53
2.4.2word2vec算法与对比训练54
2.5推荐系统中的嵌入57
2.5.1基于嵌入的歌曲推荐57
2.5.2训练歌曲嵌入模型58
2.6小结60
第3章LLM的内部机制61
3.1Transformer模型概述62
3.1.1已训练TransformerLLM的输入和输出62
3.1.2前向传播的组成64
3.1.3从概率分布中选择单个词元(采样/解码)66
3.1.4并行词元处理和上下文长度68
3.1.5通过缓存键值加速生成过程70
3.1.6Transformer块的内部结构71
3.2Transformer架构的最新改进79
3.2.1更高效的注意力机制79
3.2.2Transformer块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.1ArXiv文章:计算与语言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.1BERTopic:一个模块化主题建模框架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.2LangChain中的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.3RAG211
8.3.1从搜索到RAG212
8.3.2示例:使用LLMAPI进行基于知识的生成213
8.3.3示例:使用本地模型的RAG213
8.3.4高级RAG技术215
8.3.5RAG效果评估217
8.4小结218
第9章多模态LLM219
9.1视觉Transformer220
9.2多模态嵌入模型222
9.2.1CLIP:构建跨模态桥梁224
9.2.2CLIP的跨模态嵌入生成机制224
9.2.3OpenCLIP226
9.3让文本生成模型具备多模态能力231
9.3.1BLIP-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.3SBERT251
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.1TSDAE272
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.1SetFit:少样本场景下的高效微调方案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.1LLM训练三步走:预训练、监督微调和偏好调优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.3LoRA配置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