LLM 模型预训练
1. 预训练任务
常用的预训练任务主要分为三类:语言建模(Language Modeling,LM),去噪自编码(Denoisiting Autoencoding,DAE),混合去噪器(Mixture-of-Denosisers,MoD).
-
语言建模:语言建模任务是目前绝大部分大语言模型广泛采用的预训练任务。给定一个词元序列𝒖 = {𝑢1, . . . , 𝑢𝑇 },语言建模任务的目标定义为词元的预测任务:基于序列中当前位置之前的词元序列𝒖<𝑡,采用自回归的方式对于目标词元𝑢𝑖 进行预测。 L l m ( u ) = ∑ t = 1 T l o g P ( u t ∣ u < t L_{lm}(u)=\sum_{t=1}^T log P(u_t|u_{<t} Llm(u)=t=1∑TlogP(ut∣u<t
从本质上看,基于语言建模的预训练还可以看做是一种多任务学习过程。比如预测情感词语、数量词语、打分词语时 其实针对是情感分析任务、数学算术任务、分类任务等。因此,基于大规模文本语料的预训练任务能够潜在地学习到解决众多任务的相关知识与能力。
语言建模有一些变种,最重要的是 前缀语言建模,这个专门为前缀解码架构设计的。在训练阶段,每个文本序列𝒖 会根据随机选择的位置𝑘 (1 ≤ 𝑘 ≤ 𝑇) 切分为前缀𝒖prefix = {𝑢1, · · · , 𝑢𝑘 } 和后缀𝒖suffix = {𝑢𝑘+1, · · · , 𝑢𝑇 } 两个部分。与标准语言建模任务不同,在前缀解码器中,仅后缀中的词元损失会被计入总损失。 L p r e f i x ( u ) = l o g P ( u s u f f i x ∣ u p r e f i x ) = ∑ t = k + 1 T l o g P ( u t ∣ u < t ) L_{prefix}(u) = log P(u_{suffix}| u_{prefix}) = \sum_{t=k+1}^T log P(u_t|u_{<t}) Lprefix(u)=logP(u