这一篇在前篇的基础上继续把“数据能用、可审计、能复现”的工程链条往前推:将怎么采样配比 和 如何训得又稳又快的过程讲清楚。
七、 权重配比与混合采样
7.1 目的:
决定各来源/语言/领域/长度的采样比例,做到 “主域稳定 + 长尾覆盖”。
7.2 “三步走”策略:
-
分类:按
lang / domain / length_bucket / quality_score等建类别桶。 -
配比:设定各类别占比,例如
主域 70% + 泛化域 20% + 长尾 10%。 -
比重调配:引入温度采样 T 来动态调整长尾被选中的机会。通过温度T来调整初始占比(权重)。当设置温度 > 1 时会增加长尾机会,当温度 < 1时,会增加主域的权重。
-
抽样:按类别权重抽样,对近重复块施加惩罚权重,对关注的类别增加权重。
7.3 案例:
中文电商问答占 80%,英文通用问答占 10%,冷门知识文档 10%;在中文桶里,再按长度短/中/长 的原始配比 [ 0.7, 0.2, 0.1 ] :
当温度T=1.2 → 约 [0.645 , 0.227 , 0.128](长尾从 0.10→0.128)
当温度T=0.7 → 约 [0.814 , 0.136 , 0.050](主域从 0.70→0.814)
7.4 名词解释:
-
温度采样(Temperature):对概率分布加温/降温,控制长尾被抽到的概率。
-
主域/长尾:主域=你的核心业务领域;长尾=低频但必要的边角场景。
八、 训练样本构建
在第一至第七章节中做完数据“清洗、脱敏、去重、合规过滤、分块”等操作后,下一步就将数据按照目标来构成训练样本。
模型训练语料处理完成后,就可以按照所需的目的来进行模型的训练,常见模型预训练的目的是可以分为三个,第一,为了让模型学会自然语言的表示。第二、让模型学会理解上下文内容,预测词义。第三、根据理解的内容,进行内容生成。
8.1 Causal LM(自回归,decoder-only):
- 用途:按顺序预测下一个 token。
- 概念:将多条短样本拼接到同一长度窗口,使用EOS样本分隔符隔离样本。
- Sequence packing(序列打包):当处理很短的句子,需要补齐固定长度,所以要加入填充,但是就会浪费内存,占空间。
- 屏障loss损失: 使用
<EOT>标记样本边界,推理用<EOS>停止。
8.2 遮挡式训练
目的:通过双向学习的方式,帮助模型训练理解能力、抗噪音能力,对于语篇的生成和编辑能力。
8.2.1 MLM(字/词遮挡式, encoder-only):
- 概念:只随机抽取部分字/词进行遮挡,让模型进行预测被遮挡的词/字的语义、作用。
- 用途:理解上下文、补充语义。
- 做法:
-
随机调15%(假设的量)的token 当考点,对这些token 80%进行遮挡,10%换成随机词,10%保持不变。
-
让这些被挑中的位置让模型去预测原词并记损失(其他位置不统计)。
-
每次训练都会重新抽位置,同一条句子被抽成不同的填空题去做。
-
- 被随机抽中的词会进行遮挡,被填上[mask]
- 基于BERT模型的编码器实现,强理解,不擅长生成。
8.2.2 T5(句/段遮挡式,encoder-decoder):
- 概念:基于transFormer的预训练,T5是去遮挡一段句子,或者是百分比的片段,通过让模型学会“看上下文补缺口”,对其编辑/改写/补全。
- 用途:编辑/补全缺失的内容,重在生成。
8.4 名词解释
-
MLM/T5:遮挡式目标,填补被遮的片段。
-
Sequence Packing:把多个短样本拼成一个长窗口以减少 padding。
-
<EOT>:分隔样本符号,区别文本源,从而控制损失函数的计算范围。
总结
以上我们把如何配比采样、以及 如何稳妥训练样本及目标 拆开说清楚了。
如果你觉得本文对你有帮助,欢迎点赞 、收藏 、关注我获取更多与大模型干货!
也欢迎留言区交流你的理解和问题!
1325

被折叠的 条评论
为什么被折叠?



