2022 年 11 月,ChatGPT 的问世展示了大模型的强大潜能,对人工智能领域有重大意义,并对自然语言处理研究产生了深远影响,引发了大模型研究的热潮。
距 ChatGPT 问世不到一年,截至 2023 年 10 月,国产大模型玩家就有近 200 家,国内 AI 大模型如雨后春笋般涌现,一时间形成了百家争鸣、百花齐放的发展态势。
'大模型'当之无愧地承包了 2023 年科技圈全年的亮点!
那么,对 IT 圈的科技从业者来说,应该做什么?
拥抱技术变革,理解产业市场,找到适合自己的位置。
大模型市场可以分为通用大模型和垂直大模型两大类。
大模型的代表 ChatGPT 是通用大模型,也是许多国内厂家对标的大模型,以技术攻克为目的。国内的文心一言就属于这一类。
垂直大模型,聚焦解决垂直领域问题,是在通用大模型的基础上训练行业专用模型,应用到金融、医疗、教育、养老、交通等垂直行业,使大模型领域化、商业化,做到实际应用落地。
为了使更多的自然语言处理研究人员和对大语言模型感兴趣的读者能够快速了解大模型的理论基础,并开展大模型实践,相关专家团队结合在自然语言处理领域的研究经验,以及分布式系统和并行计算的教学经验,在大模型实践和理论研究的过程中,历时 8 个月完成《大规模语言模型:从理论到实践》一书的撰写。希望这本书能够帮助读者快速入门大模型的研究和应用,并解决相关技术问题。
本书主要内容
本书围绕大语言模型构建的四个主要阶段——预训练、有监督微调、奖励建模和强化学习展开,详细介绍各阶段使用的算法、数据、难点及实践经验。
预训练阶段需要利用包含数千亿甚至数万亿单词的训练数据,并借助由数千块高性能 GPU 和高速网络组成的超级计算机,花费数十天完成深度神经网络参数的训练。这一阶段的难点在于如何构建训练数据,以及如何高效地进行分布式训练。
有监督微调阶段利用少量高质量的数据集,其中包含用户输入的提示词和对应的理想输出结果。提示词可以是问题、闲聊对话、任务指令等多种形式和任务。这个阶段是从语言模型向对话模型转变的关键,其核心难点在于如何构建训练数据,包括训练数据内部多个任务之间的关系、训练数据与预训练之间的关系及训练数据的规模。
奖励建模阶段的目标是构建一个文本质量对比模型,用于对有监督微调模型对于同一个提示词给出的多个不同输出结果进行质量排序。这一阶段的难点在于如何限定奖励模型的应用范围及如何构建训练数据。
强化学习阶段,根据数十万提示词,利用前一阶段训练的奖励模型,对有监督微调模型对用户提示词补全结果的质量进行评估,与语言模型建模目标综合得到更好的效果。这一阶段的难点在于解决强化学习方法稳定性不高、超参数众多及模型收敛困难等问题。
除了大语言模型的构建,本书还介绍了大语言模型的应用和评估方法,主要内容包括如何将大语言模型与外部工具和知识源进行连接、如何利用大语言模型进行自动规划,完成复杂任务,以及针对大语言模型的各类评估方法。
本书目录
第 1 章 绪论 1.1 大语言模型的基本概念 1.2 大语言模型的发展历程 1.3 大语言模型的构建流程 1.4 本书的内容安排
第 2 章 大语言模型基础 2.1 Transformer 结构 2.1.1 嵌入表示层 2.1.2 注意力层 2.1.3 前馈层 2.1.4 残差连接与层归一化 2.1.5 编码器和解码器结构 2.2 生成式预训练语言模型 GPT 2.2.1 无监督预训练 2.2.2 有监督下游任务微调 2.2.3 基于 HuggingFace 的预训练语言模型实践 2.3 大语言模型的结构 2.3.1 LLaMA 的模型结构 2.3.2 注意力机制优化 2.4 实践思考
第 3 章 大语言模型预训练数据 3.1 数据来源 3.1.1 通用数据 3.1.2 专业数据 3.2 数据处理 3.2.1 质量过滤 3.2.2 冗余去除 3.2.3 隐私消除 3.2.4 词元切分 3.3 数据影响分析 3.3.1 数据规模 3.3.2 数据质量 3.3.3 数据多样性 3.4 开源数据集 3.4.1 Pile 3.4.2 ROOTS 3.4.3 RefinedWeb 3.4.4 SlimPajama 3.5 实践思考
第 4 章 分布式训练 4.1 分布式训练概述 4.2 分布式训练的并行策略 4.2.1 数据并行 4.2.2 模型并行 4.2.3 混合并行 4.2.4 计算设备内存优化 4.3 分布式训练的集群架构 4.3.1 高性能计算集群的典型硬件组成 4.3.2 参数服务器架构 4.3.3 去中心化架构 4.4 DeepSpeed 实践 4.4.1 基础概念 4.4.2 LLaMA 分布式训练实践 4.5 实践思考
第 5 章 有监督微调 5.1 提示学习和语境学习 5.1.1 提示学习 5.1.2 语境学习 5.2 高效模型微调 5.2.1 LoRA 5.2.2 LoRA 的变体 5.3 模型上下文窗口扩展 5.3.1 具有外推能力的位置编码 5.3.2 插值法 5.4 指令数据的构建 5.4.1 手动构建指令 5.4.2 自动构建指令 5.4.3 开源指令数据集 5.5 DeepSpeed-Chat SFT 实践 5.5.1 代码结构 5.5.2 数据预处理 5.5.3 自定义模型 5.5.4 模型训练 5.5.5 模型推理 5.6 实践思考
第 6 章 强化学习 6.1 基于人类反馈的强化学习 6.1.1 强化学习概述 6.1.2 强化学习与有监督学习的区别 6.1.3 基于人类反馈的强化学习流程 6.2 奖励模型 6.2.1 数据收集 6.2.2 模型训练 6.2.3 开源数据 6.3 近端策略优化 6.3.1 策略梯度 6.3.2 广义优势估计 6.3.3 近端策略优化算法 6.4 MOSS-RLHF 实践 6.4.1 奖励模型训练 6.4.2 PPO 微调 6.5 实践思考


