跨语种预训练语言模型
XLM
个人理解:在Bert基础上,XLM = 跨语言 + 预训练优化
1. 语料准备
- 所有语种共用一个词表,由Byte Pair Encoding (BPE) 创建
- 为了平衡语料,优化了语料句子采样:
q
i
=
p
i
α
∑
j
=
1
N
p
j
α
q_i = \frac{p^\alpha_i}{\sum_{j=1}^{N}p^\alpha_j}
qi=∑j=1Npjαpiα with
p
i
=
n
i
∑
k
=
1
N
n
k
p_i = \frac{n_i}{\sum_{k=1}^{N}n_k}
pi=∑k=1Nnkni
其中 n i n_i ni是每个语言的句子数量, p i p_i pi是这个语言句子数占据总句子数的比例, α \alpha α是调节引子,一般设置0-1之间,q是放缩后的采样比例
2. 预训练
(1)Causal Language Modeling (CLM)
- 单语种,无监督,给定句中历史词预测当前词概率 P ( w t ∣ w 1 , w 2 . . . w t − 1 , θ ) P(w_t|w_1, w_2...w_{t-1}, \theta) P(wt∣w1,w2...wt−1,θ)
(2)Masked Language Modeling (MLM)
- 单语种,无监督
- 替换类似于Bert,随机采样15%的token,80%用[MASK],10%随机替换,10%不变
- 但是输入文本流由多个句子组成而非句子对
- 为了平衡token出现频次,对高频词二次采样:多项式分布采样,权重与 invert frequencies 的平方根成反比
(3)Translation Language Modeling (TLM)
- 双语平行语料
- token mask在两个语言句子中都进行
- 将平行语料句子拼起来共同预测缺失token
XLM-R
个人理解:XLM-R = XLM + RoBERTa
curse of multilinguality:
- 固定模型Capacity,语言种类越多,跨语言性能在低资源语言上会越好;但到了某个点后,单语和跨语言基准测试的总体性能下降
- 能通过提高模型Capacity缓解,但与目标更有限的计算预算来提高性能冲突
1.语料准备
- 用 CommonCrawl 数据进行训练(比XLM用的Wiki数据量更大)
- 用Sentence Piece Model(SPM)生成词表
- 采用与XLM同方法的采样均衡高、低资源语料( α = 0.3 \alpha=0.3 α=0.3)
2. MLM
- 聚焦无监督跨语言,只用MLM进行预训练
- 取消了XLM中Language Embedding
3. Scaling to 100 language
- 基于100中语言预训练,并将一些语言用更常用的语种替代
- 在消融实验中,保证所有语种集合都覆盖合适的范围,都包含高资源与低资源语言
4. Scaling the Amount of Training Data
- 高资源语言转储1次,低资源12次增加dataset size
- 语种的数据量太少无法进行无监督表示学习,通常训练BERT模型的最小文本数据:几百MiB