摘要#
随着深度学习技术的不断发展,模型的设计范式已经从早期的特征工程驱动,逐步演进为以大规模预训练和统一架构为核心的现代神经网络体系。本章将围绕这一演进路径,系统介绍从上下文表示学习到Transformer架构,再到BERT与GPT系列大模型的完整技术链路,并进一步延伸到ChatGPT与提示词工程等当前主流应用范式。通过本章学习,读者将能够从整体上理解现代自然语言处理与大模型技术的发展脉络,并掌握其核心结构与关键思想。
本章首先介绍 ELMo 网络,分析其通过双向语言模型实现上下文动态表示的设计思想,并引出预训练表示在迁移学习中的重要作用。在此基础上,将重点讲解 Transformer 架构的核心机制,包括自注意力机制、多头注意力机制以及输入编码方式,使读者理解“注意力替代循环结构”的关键转变。随后,本章将进一步拆解 Transformer 的完整结构实现,包括编码器与解码器的组成方式,并通过对联生成等任务展示其在序列建模中的实际应用能力。
在更高层次的模型演进中,本章将系统讲解 BERT 模型及其预训练机制,分析其双向编码结构在文本理解任务中的优势,并通过从零实现 BERT 的过程帮助读者掌握其工程细节。在应用层面,将分别介绍 BERT 在文本分类、问答系统、命名实体识别等任务中的典型用法,使读者理解预训练模型在不同 NLP 任务中的统一范式。随后,本章将进一步介绍 GPT-1、GPT-2 与 GPT-3 模型的发展过程,分析其从自回归语言模型到大规模生成模型的演进逻辑,并结合中文预训练模型实践展示其应用方式。
在大模型对齐与交互层面,本章将重点介绍 InstructGPT 与 ChatGPT,分析基于人类反馈强化学习(RLHF)的训练机制及其对模型对齐能力的提升作用。同时,将进一步讲解提示词工程的核心方法,包括少样本提示、情境化提示以及任务定制化策略,使读者理解如何通过输入设计提升模型输出质量。最后,本章将介绍百川大模型的使用与实现细节,并结合 GPT-4 与 GPTs 的应用场景,展示现代大模型生态的整体结构与发展方向。通过本章学习,读者将从技术原理到实际应用全面掌握现代神经网络与大模型体系,为进入真实工业级AI应用开发打下坚实基础。
本章内容
10.1 ELMo网络
在5.4节内容中,我们初次接触到了预训练(Pre-trained)模型这个概念。预训练模型的主要思想是模型通过在大规模数据集上学习得到通用特征的抽取能力,然后再将其迁移到其他任务中以加速新任务的学习和提高模型性能。预训练模型最早大规模应用于 …
10.2 Transformer网络
Transformer 原理详解,讲解自注意力、多头注意力与位置编码,以及它为何能替代传统 RNN。
10.3 Transformer结构
在10.2节内容中我们详细介绍了自注意力机制的动机和原理,在介绍下来的这节内容中我们将继续介绍Transformer的整个网络结构,以及多头注意力机制的实现。
10.4 Transformer实现
在前面两节内容中我们分别详细介绍了Transformer模型的原理与多头注意力机制的实现过程,接下来,我们将会一步一步地来详细介绍如何通过 PyTorch框架实现Transformer的整体网络结构, 包括嵌入层、编码器和解码器等等。下面, …
10.5 Transformer对联模型
经过前面几节内容的介绍,相信各位读者对于Transformer的基本原理以及实现过程已经有了一个较为清晰地认识。在接下来的这节内容中我们将通过搭建一个完整的对联生成模型来再次理解Transformer模型的整个工作流程,包括数据的预处理、数 …
10.6 BERT网络
在本节内容中,我们首先介绍了BERT模型所提出的动机以及传统语言模型的弊端;然后介绍了BERT模型的基本原理,包括网络结构和输入层的构造;最后详细介绍了用于对BERT进行预训练的MLM和NSP任务。
10.7 从零实现BERT
经过10.6节内容的介绍,我们对于BERT模型的整体结构已经有了一定的了解。根据图10-26可知,从本质上来说BERT就是由Transformer中的编码器构建而来,同时在输入层部分额外加入了一个句子编码来区分输入的不同部分。在本节内容中, …
10.8 BERT文本分类模型
经过前面两节内容的介绍,我们对于BERT模型的原理及其实现过程已经有了比较清晰的理解。同时,由于BERT是一个强大的预训练模型,因此我们可以直接基于谷歌发布的预训练参数将模型迁移到各个下游任务中进行微调学习。在这节内容中,我们将开始介绍第1 …
10.9 BERT问题选择模型
经过10.8节内容介绍之后,我们对于如何在下游任务中使用BERT预训练模型已经有了一定的认识。在本节内容中我们将会介绍如何利用BERT模型来完成推理问答选择任务,同时给模型输入一个问题和若干选项的答案,最后需要模型从给定的选项中选择一个最符 …
10.10 BERT问题回答模型
经过前面几节内容的介绍,我们已经清楚了BERT模型的基本原理以及如何基于BERT预训练模型来完成文本分类和问答选择这些下游微调任务。在接下来的这节内容中,我们将会继续介绍基于BERT预训练模型的第3个下游任务微调场景,问题回答任务。所谓问题 …
10.11 BERT命名体识别模型
在本节内容中,我们首先介绍了命名体识别模型的背景以及整个任务的构建原理;然后详细介绍了命名体识别任务数据预处理的构建流程;最后一步一步介绍了如何基于BERT预训练模型来实现命名体识别模型的构建。
10.12 BERT从零训练
在前面几节内容中我们已经介绍了几种常见的基于BERT预训练模型的下游任务,在接下来的这节内容中我们将会介绍如何从零实现整个NSP和MLM任务并从头训练BERT模型。通常来说,我们既可以通过MLM和NSP这两个任务来从头训练一个BERT模型, …
10.13 GPT-1模型
经过10.2节和10.6节内容的介绍,我们对基于多头注意力机制的网络模型已经有了深刻的认识。根据10.6节内容可知,BERT模型本质上只是一个基于Transformer编码器的网络结构,它通过多层多头注意力机制来对输入序列进行编码并完成后续 …
10.14 GPT-2与GPT-3模型
GPT-2 与 GPT-3 对比,介绍模型结构、训练数据规模和能力差异,理解两代 GPT 的演进方向。
10.15 基于GPT-2的中文预训练模型
在前面几节内容中我们陆续介绍了GPT-1到GPT-3的原理和动机,从网络结构上来看三者并没有本质上的差异,都是以Transformer中解码器为基础构建而来。在本节内容中,我们将以一个开源的中文GPT-2中文预训练模型为例,来详细介绍 …
10.16 InstructGPT与ChatGPT
在前面几节内容中我们陆续介绍了GPT-1到GPT-3这3个模型的思想和原理。尽管随着模型规模的变大模型的效果也在稳步增长,但是却一直面临着一个重大的问题,那就是模型生成内容的安全性。在接下来的这节内容中我们将会分别介绍一种基于用户指令和对话 …
10.17 ChatGPT与提示词工程
在本节内容中,我们首先介绍了什么是ChatGPT中的提示词,我们为什么需要使用提示词以及提示词的构成;然后介绍了简单此提词的使用方式,包括文本生成、文本分类和文本翻译等场景;接着介绍了如何使用小样本提示来让ChatGPT完成一些无法详尽描述 …
10.18 百川大模型使用
在本节内容中,我们首先介绍了百川大模型的基本信息以及如何使用百川大模型对应的线上服务;然后介绍了Baichuan2这个项目的基本信息以及如何安装模型运行的环境;进一步,我们介绍了Baichuan2模型的整体网络结构和如何使用 …
10.19 百川大模型实现
在10.18节内容中我们详细介绍了Baichuan2模型的推理使用方法以及如何根据我们自己的需要来对基座模型进行微调。在本节内容中我们将进一步详细介绍Baichuan2模型的内部实现细节。由于百川大模型是基于Transformers框架所实 …
10.20 GPT-4与GPTs使用
GPT-4 与 GPTs 使用教程,介绍能力特点、典型场景和上手示例,帮助快速理解如何实际使用。