人工智能(AI),尤其是生成式语言模型和生成式人工智能(AIGC)模型,正以惊人的速度改变着我们的世界。驾驭这股潮流的关键,莫过于探究自然语言处理(NLP)技术的深奥秘境。本书将带领读者踏上一段扣人心弦的探索之旅,让其亲身感受,并动手搭建语言模型。本书主要内容包括N-Gram,词袋模型(BoW),Word2Vec(W2V),神经概率语言模型(NPLM),循环神经网络(RNN),Seq2Seq(S2S),注意力机制,Transformer,从初代GPT到ChatGPT再到GPT-4等一系列突破性技术的诞生与演进。
本书将以生动活泼的笔触,将枯燥的技术细节化作轻松幽默的故事和缤纷多彩的图画,引领读者穿梭于不同技术的时空,见证自然语言处理技术的传承、演进与蜕变。在这场不断攀登技术新峰的奇妙之旅中,读者不仅能深入理解自然语言处理技术的核心原理,还能自己动手,从零开始搭建起一个又一个语言模型。
无论你是在校学生还是人工智能从业者,这本书都将成为一盏明灯,照亮你探索人工智能无限奥秘的道路。
目 录
序章 看似寻常最奇崛,成如容易却艰辛 001
GPT-4:点亮人工通用智能的火花 002
人工智能演进之路:神经网络两落三起 004
现代自然语言处理:从规则到统计 007
何为语言?信息又如何传播? 008
NLP是人类和计算机沟通的桥梁 009
NLP技术的演进史 010
大规模预训练语言模型:BERT与GPT争锋 012
语言模型的诞生和进化 012
统计语言模型的发展历程 014
基于Transformer架构的预训练模型 016
“预训练+微调大模型”的模式 018
以提示/指令模式直接使用大模型 019
从初代GPT到ChatGPT,再到GPT-4 021
GPT作为生成式模型的天然优势 022
ChatGPT背后的推手——OpenAI 023
从初代GPT到ChatGPT,再到GPT-4的进化史 024
第 1课 高楼万丈平地起:语言模型的雏形N-Gram和简单文本表示Bag-of-Words 026
1.1 N-Gram模型 026
1.2 “词”是什么,如何“分词” 030
1.3 创建一个Bigram字符预测模型 032
1.4 词袋模型 036
1.5 用词袋模型计算文本相似度 037
小结 042
思考 043
第 2课 问君文本何所似: 词的向量表示Word2Vec和Embedding 044
2.1 词向量 ≈ 词嵌入 045
2.2 Word2Vec:CBOW模型和Skip-Gram模型 047
2.3 Skip-Gram模型的代码实现 050
2.4 CBOW模型的代码实现 061
2.5 通过nn.Embedding来实现词嵌入 063
小结 067
思考 068
第3课 山重水复疑无路:神经概率语言模型和循环神经网络 069
3.1 NPLM的起源 070
3.2 NPLM的实现 072
3.3 循环神经网络的结构 079
3.4 循环神经网络实战 082
小结 086
思考 087
第4课 柳暗花明又一村:Seq2Seq编码器-解码器架构 088
4.1 Seq2Seq架构 089
4.2 构建简单Seq2Seq架构 092
小结 103
思考 103
第5课 见微知著开慧眼:引入注意力机制 104
5.1 点积注意力 105
5.2 缩放点积注意力 114
5.3 编码器-解码器注意力 116
5.4 注意力机制中的Q、K、V 122
5.5 自注意力 125
5.6 多头自注意力 126
5.7 注意力掩码 129
5.8 其他类型的注意力 131
小结 132
思考 132
第6课 层峦叠翠上青天:搭建GPT核心组件Transformer 133
6.1 Transformer架构剖析 133
6.1.1 编码器-解码器架构 135
6.1.2 各种注意力的应用 135
6.1.3 编码器的输入和位置编码 140
6.1.4 编码器的内部结构 141
6.1.5 编码器的输出和编码器-解码器的连接 142
6.1.6 解码器的输入和位置编码 143
6.1.7 解码器的内部结构 145
6.1.8 解码器的输出和Transformer的输出头 146
6.2 Transformer代码实现 148
6.3 完成翻译任务 176
6.3.1 数据准备 177
6.3.2 训练Transformer模型 179
6.3.3 测试Transformer模型 179
小结 181
思考 182
第7课 芳林新叶催陈叶:训练出你的简版生成式GPT 183
7.1 BERT与GPT争锋 184
7.2 GPT:生成式自回归模型 188
7.3 构建GPT模型并完成文本生成任务 191
7.3.1 搭建GPT模型(解码器) 192
7.3.2 构建文本生成任务的数据集 195
7.3.3 训练过程中的自回归 198
7.3.4 文本生成中的自回归(贪婪搜索) 200
7.4 使用WikiText2数据集训练Wiki-GPT模型 201
7.4.1 用WikiText2构建Dataset和DataLoader 202
7.4.2 用DataLoader提供的数据进行训练 206
7.4.3 用Evaluation Dataset评估训练过程 207
7.4.4 文本生成中的自回归(集束搜索) 209
小结 212
思考 213
第8课 流水后波推前波:ChatGPT基于人类反馈的强化学习 214
8.1 从GPT到ChatGPT 215
8.2 在Wiki-GPT基础上训练自己的简版ChatGPT 218
8.3 用Hugging Face预训练GPT微调ChatGPT 225
8.4 ChatGPT的RLHF实战 233
8.4.1 强化学习基础知识 235
8.4.2 简单RLHF实战 237
小结 243
思考 244
第9课 生生不息的循环:使用强大的GPT-4 API 245
9.1 强大的OpenAI API 245
9.2 使用GPT-4 API 249
小结 251
思考 252
后 记 莫等闲,白了少年头 253