《大语言模型 原理与工程实践》第4-6章的阅读心得 预训练、有监督微调和RLHF
[复制链接]
作为一名数据挖掘从业者和AI爱好者,阅读《大语言模型:原理与工程实践》这本书的第4-6章,让我对大语言模型的核心技术有了更深入的理解。这三章分别聚焦于预训练、有监督微调和强化学习人类反馈(RLHF),构成了大语言模型从"能力获取"到"任务适配"再到"价值对齐"的完整训练链路。
-
预训练:大语言模型的基础能力构建
预训练是大语言模型获得基础语言能力的关键阶段。第4章详细介绍了预训练的核心要素,包括模型架构、训练目标和数据配比策略。
1.1 模型架构
大语言模型普遍采用Transformer架构,但在具体实现上各有特色。以GPT系列为例,它采用了纯解码器结构,这种设计使得模型在生成任务上表现出色。相比之下,T5等模型采用了编码器-解码器结构,在某些任务上可能更具优势。
值得注意的是,随着模型规模的增大,一些看似微小的架构调整可能会产生显著影响。例如,GPT-3引入了交替密集和稀疏自注意力层,这种设计在保持模型表达能力的同时,大大降低了计算复杂度。
1.2 训练目标
大语言模型的预训练目标通常是最大化序列的似然概率。具体来说,对于输入序列x = (x1, x2, ..., xT),模型的目标是最小化以下损失函数:
$$
L(\theta) = -\sum_{t=1}^T \log p_\theta(x_t|x_{<t})
$$
其中,θ表示模型参数,pθ(x_t|x{<t})表示在给定前面所有token的条件下,模型预测下一个token的概率。
这个看似简单的目标函数,实际上蕴含了深刻的语言学洞见。通过预测下一个token,模型被迫学习语言的语法规则、语义关系和上下文依赖,从而获得了强大的语言理解和生成能力。
1.3 数据配比策略
预训练数据的质量和多样性直接影响模型的性能。
这里不得不提到scaling laws、它主要研究多种因素对大模型Loss的影响,我拓展了解到相关的公式如下:
这里x可以指代为模型大小、预训练数据大小、训练步数、计算量等变量。
数据混合的比例以定量可预测的方式影响模型损失
为了发现数据混合规律,需要解决如下两个挑战:
(i)多变量:对于K个数据域的数据混合定律,混合比例有K−1个自由度,相应地,在目标函数中有K–1个变量。变量的增加使函数形式的识别变得复杂。
(ii)非单调性:损失和任何域的比例之间的单调关系表明,不平衡的混合可以实现最小损失,这与实践相矛盾。因此,与现有的损失随相关因素的规模单调递减的比例律不同,数据混合定律应该适应非单调性功能。
俗话说,“garbage in,garbage out"。笔者基于个人实践经验,选取配比最高的三类数据以此分别是互联网数据(60%以上)、质量较高或者垂直领域数据、代码数据。选取互联网数据是为获取广泛的知识和信息,提升泛化能力。选取质量较高或者垂直领域数据为的是提升模型在特定领域的性能,增加模式的知识深度。选取代码数据则是辅助模型理解与生成代码,并且培养模型逻辑思维和结构化思考能力。
其实本书3.4节就提到高质量语言数据面临预计将在2026年左右耗尽的难题,即陷入所谓的“数据荒”。面对数据稀缺的挑战,采取创新策略显得尤为重要。我进一步拓展了解了几种策略,旨在拓宽数据来源,增强数据多样性,进而提升模型训练的有效性和广度。
(1)数据增强
通过先进技术手段扩展数据集,包含两个核心方向:数据生成与数据变换。数据生成借助如生成对抗网络(GANs)、变分自编码器(VAEs)等前沿技术,模拟并生成新数据样本,这些样本基于现有数据特性但又有所差异,巧妙扩大了数据规模。另一方面,数据变换则通过对现有数据施加多样化操作,如图像的几何变换、色彩调整或文本的词序调整、同义词代换等,以非重复性变化增强数据集的多样性。
(2)跨领域数据迁移与共享
数据迁移学习策略,是将从大数据源领域学到的丰富知识和核心特征,迁移到数据量有限的目标任务中,实现“知识转移”。具体实施时,先在大规模通用数据集上预训练模型,随后针对目标小数据集进行微调,充分利用预训练模型提取的普遍特征,有效增强模型在小数据集上的表现。此外,数据复用机制也在跨任务和跨领域间发挥重要作用,即在确保任务相关性的前提下,将已收集的数据资源在多个相关任务中共享,如自然语言处理领域中,文本分类数据对情感分析任务的辅助作用。
(3)多模态数据整合
整合多种类型的数据模态,包括文本、图像、音频、视频等,是提升模型综合分析能力的关键途径。多模态数据的互补性和互证实质上丰富了模型可学习的信息层次,不仅提高了模型的泛化能力,还增强了其对复杂环境的适应性和鲁棒性。
(4)AI驱动的合成数据应用
利用人工智能技术合成数据,为数据稀缺问题提供了一个创新解答。通过生成高质量的合成数据,可以有效弥补真实数据的不足,尤其适用于那些难以采集或成本昂贵的数据集。自动驾驶就是一个典型例子,通过在虚拟环境中利用合成数据训练,大大降低了对昂贵且风险较高的真实道路测试的依赖。
-
有监督微调:任务适配的关键
第5章详细讨论了有监督微调技术,这是让大语言模型适应特定任务的关键步骤。
2.1 微调方法
(1)全参数微调:虽然效果最好,但计算资源需求巨大。
(2)适配器微调:在Transformer层之间插入小型可训练模块。
(3)前缀微调:在输入序列前添加可训练的前缀向量。
(4)提示微调:通过优化连续的提示向量来适应下游任务。
(5)低秩适配(LoRA,Low-Rank Adaptation)。LoRA通过在原始权重矩阵W上添加低秩更新来实现参数高效的微调:
$$
W = W_0 + BA
$$
其中,W0是冻结的预训练权重,B∈R^{d×r}和A∈R^{r×k}是低秩矩阵(r << min(d,k))。这种方法不仅大大减少了可训练参数的数量,还保持了较高的模型性能。
2.2 微调策略
书中还讨论了几种先进的微调策略:
(1)混合微调:在多个任务上同时进行微调,有助于提高模型的泛化能力。
(2)基于上下文学习的推理:利用模型的In-Context Learning能力,通过提供少量示例来引导模型完成任务。
(3)基于思维链的推理:通过显式地引导模型进行step-by-step的推理,提高其解决复杂问题的能力。
这些策略的核心思想是充分利用大语言模型的泛化能力和快速学习能力,使其能够更好地适应各种下游任务。
-
RLHF:价值对齐的新范式
第6章介绍的RLHF技术,是确保大语言模型输出符合人类价值观的关键。RLHF的核心是构建一个能够模拟人类偏好的奖励模型,并利用这个模型来指导语言模型的优化。
3.1 奖励模型
奖励模型的训练目标是最大化人类偏好的对数似然:
$$
L_{RM} = -\frac{1}{N}\sum_{i=1}^N \log \frac{e^{r_\theta(x_i, y_i^w)}}{e^{r_\theta(x_i, y_i^w)} + e^{r_\theta(x_i, y_i^l)}}
$$
其中,r_θ(x,y)是奖励模型对输入x和输出y的评分,y^w和y^l分别表示人类偏好的"胜者"和"败者"回复。
3.2 RLHF算法
RLHF采用PPO(近端策略优化)算法来优化语言模型。其目标函数为:
$$
L_{PPO}(\theta) = \mathbb{E}_{(x,y)\sim \pi_{\theta_{old}}}[\min( r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t )]
$$
其中,r_t(θ) = πθ(y_t|x,y{<t}) / π{θold}(y_t|x,y_{<t})是重要性采样比率,A_t是优势函数。
这个目标函数的设计精妙之处在于:它既鼓励模型产生更高奖励的输出,又通过clip操作限制了策略更新的幅度,从而保证了训练的稳定性。
实现RLHF面临诸多挑战,如数据瓶颈、硬件瓶颈、方法瓶颈等。一些可能有用的缓解这些问题的技巧,如使用对比损失、引入KL惩罚项等可以被引入到训练过程中。而这些技巧的应用,体现了大语言模型训练中理论与工程的完美结合。
大语言模型的训练是一个多阶段、多目标的复杂过程。预训练赋予模型基础语言能力,微调使其适应特定任务,而RLHF则确保其输出符合人类价值观。这三个阶段环环相扣,共同构建了一个强大而又可控的AI系统。
我们也要清醒地认识到,当前的技术还远未完善。如何更好地利用大规模无标注数据、如何提高模型的可解释性和可控性、如何在保护隐私的前提下利用更多数据等,都是值得我们深入探索的方向。
大语言模型的发展,不仅是技术的进步,更是人类认知边界的不断拓展。正如物理学家理查德·费曼所说:"如果你认为你理解了量子力学,那你可能并没有真正理解它。"同样,对于大语言模型,我们目前的理解可能还只是冰山一角。但正是这种未知,激发了我们探索的热情。每一次深入学习,每一次实践尝试,都是向着更深层次理解迈出的一步。
在这个AI快速发展的时代,保持持续学习的态度至关重要。让我们怀着对知识的渴望,对技术的好奇,在这场改变人类社会的技术革命的征程中勇攀高峰。
在接下来的15天内,我将进一步开展本次的阅读计划的第三部分——认真阅读本书的第7-8章节。
|