一句话:先用目标领域的文本让模型熟悉行话(DAPT),再用目标任务的训练文本让模型熟悉题型(TAPT),最后用标注数据教它答题。少量贴近任务的文本也能带来收益。
- 原文:arXiv PDF · ACL Anthology
- 论文:Gururangan 等,Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks,ACL 2020。 阅读日期:2026-10-15。阅读顺序:先读第 1 节;对照原文 PDF 第 1、3、7 页的 Fig 1、Fig 2、Fig 3 读本文第 2 节;用第 4 节对照论文表 5、用第 3.3 节对照表 8;最后用第 6 节练习复述。
1. 先把故事讲明白
想象有个人读过百科、新闻和小说,英文很好。你现在让他判断一篇生物医学论文中的两种物质有什么关系。生物医学的表达习惯、实验术语需要额外熟悉;具体这道题的材料又有自己的写法。
这篇论文问了两个问题:
- 已经用海量通用文本训练过的语言模型,再读一遍目标领域的大量无标注文本,有没有用?
- 再读一遍目标任务的训练文本,有没有额外收益?资源受限时,怎样从领域语料中挑选更贴近任务的文本?
作者以 RoBERTa-base 为起点,在生物医学、计算机科学、新闻、评论四个领域的八个英文分类任务上做对比。这里的“继续预训练”仍然是在做掩码词预测;最终分类才使用标注答案。全文的结论来自这个实验设置(原文 §2–5)
先翻译五个词:
- 模型 / 训练:模型是一套可调整的参数;训练是用文本反复调整这些参数,让它做题更准。
- 领域 / 任务:领域是文本的大范围,例如“所有外卖商品文案”;任务是范围更窄的一道题,例如“判断商品主类目”。
- 无标注 / 有标注:只有“香辣牛肉饭”这段输入是无标注文本;再给出“主类目=盖饭”的正确答案,就有了分类标注。
- 掩码词预测:把“香辣[遮住]饭”中的一个词遮住,训练模型从上下文猜回原词。答案直接来自原始句子,无需人工给每句写分类标签。
- F1:综合衡量预测得准不准、应该找出的样本有没有找全。macro-F1 先算各类再平均;micro-F1 汇总各类的预测再计算。下文比较同一任务在各组实验中的 F1。
2. 沿着 Fig 1 → Fig 2 → Fig 3 读论文
三张图串起作者的思路:任务数据只占领域的一小块(Fig 1)→ 各领域与通用语料的用词重合度不同(Fig 2)→ 当领域语料太大、任务语料太少时,挑一些贴近任务的领域句子(Fig 3)。前两张图解释问题,第三张图画出数据筛选方法;分类成绩分别记录在表 5 和表 8。
2.1 Fig 1:为什么“读过通用文本”可能还不够?(原文 PDF 第 1 页)
先看橙色 original LM domain:这是 RoBERTa
已读过的文本分布。蓝色 target domain
是接下来要处理的专业领域,例如生物医学论文。两块颜色有交集,说明原始预训练材料可能覆盖过部分相关表达;蓝色伸出橙色的部分示意目标领域还包含其他表达。这张图展示数据分布的相对位置;具体用词差异在
Fig 2 中测量。
再看蓝色里的灰色区域:浅灰代表领域中与任务相关的更大文本分布,深灰和
task 标记代表我们实际能拿到的任务文本。图注说 “Task data is
comprised of an observable task distribution”,并用
usually non-randomly sampled
描述取样方式:任务训练数据往往按题目要求筛选,覆盖目标领域中的一部分文本。比如
CHEMPROT
使用特定来源的生物医学摘要,生物医学论文的范围远大于这批摘要。(原文 Fig
1、§4)
这就引出两个语料选择:读更广的领域文本叫 DAPT;读贴近当前任务的训练文本叫 TAPT。这里的“分布”说的是文本的来源和写法。两种方法的分类成绩在表 5 中比较。
简化版本:通用模型可能读过一些专业文本。当前任务的训练材料覆盖该领域中的一小块,通常经过筛选。作者于是比较读整个领域(DAPT)和读这道题的训练文本(TAPT)。
2.2 Fig 2:原始语料和目标领域到底有多像?(原文 PDF 第 3 页)
Fig 1 的橙蓝重叠表示作者对数据分布的设想。到 Fig
2,作者用词表重合度量一量差异:从各语料抽样,去掉
the、and 这类停用词,找出各自最常出现的 1
万个单词(top 10K unigrams),再数两份词表共同包含多少词。纵横轴上的
PT 是与 RoBERTa
原始预训练来源相似的代理语料样本;作者用它近似原始预训练语料,因为后者没有完整公开。(原文
§3.1、Fig 2)
读图时沿 PT 那一行看:与 News 重合
54.1%(约 5410 个共同词),与 Reviews 重合
34.5%,与 BioMed 重合 27.3%,与 CS
重合
19.2%。这几个数说明计算机科学论文的常见用词与通用文本样本差得更多。对角线都是
100%,因为同一份词表跟自己比较;News × Reviews = 40.0%,说明领域之间也有交集。(原文
Fig 2)
作者据此提出预期:“the more dissimilar the domain, the higher the
potential for DAPT”。这里的 potential
指潜在收益。图中测量的是两份高频词表有多少共同词;随后表 5 用分类 F1
检验适配收益:CS 任务 ACL-ARC 从 63.0 升到 75.4;新闻任务 AGNEWS 从 93.9
到 93.9。两种测量回答不同的问题。
简化版本:作者用高频词表估计通用语料与目标领域有多接近:News 重合 54.1%,CS 重合 19.2%。据此提出适配 CS 可能更有收益,再用表 5 的分类 F1 检验。
2.3 Fig 3:怎样从大领域里挑出更贴题的句子?(原文 PDF 第 7 页)
前两张图说明了领域文本和任务文本范围不同。到了
§5.2,作者讨论一个实际限制:手里的任务文本太少,读完整个领域又太贵。Fig
3 画的是折中办法
automated data selection(自动筛选训练文本)。左上角的
ChemProt 表示任务句子,Biomedical Sentences
表示领域句子。两类文本先交给轻量语言模型 VAMPIRE
编成向量,落在同一个
embedding space(向量空间);作者从去重的领域语料中取了 100
万句来训练 VAMPIRE 并提供候选。(原文 Fig 3、§5.2)
图中的红点是任务句子,蓝点是领域句子。以每个红点为查询,按向量的余弦相似度从蓝点里找最近的
k nearest neighbors;三个虚线圈标作
k=50/150/500,分别表示选择 50、150 或 500
个近邻。图左侧一红一蓝两句原文,示意某个任务句子及其相近的领域候选。这样挑出的句子,加上原有任务训练文本,一起用于
RoBERTa 的掩码词继续预训练,作者称为 kNN-TAPT。VAMPIRE
和 kNN 用于离线筛选训练数据;筛选完成后,RoBERTa
继续预训练,再训练分类模型。(原文 Fig 3、§5.2)
读表 8,先看每行是怎样得到模型的。各行分别从通用 RoBERTa-base 出发,按行名做相应的继续预训练,然后都用该列任务的标注训练集训练分类模型。行与行之间相互独立,DAPT 一行没有继承上方的 TAPT 或 500NN-TAPT。论文另在表 5 报告了先 DAPT 再 TAPT 的组合结果。(原文 §3–5;表 5、表 8)
以表 8 中间的 RCT-500 列为例,四条路线最后都用同样的 500 条带标签的任务样本训练分类模型:
- RoBERTa,79.3:拿通用模型直接学习这 500 条样本的类别答案。
- TAPT,79.8:先让通用模型用这 500 条样本的原始文本练习预测被遮住的词,再学习这 500 条样本的类别答案。
- 500NN-TAPT,81.7:从生物医学领域语料的 100 万句候选中,为任务文本挑选向量近邻;用“任务文本 + 挑出的领域句子”练习预测被遮住的词,再学习相同的 500 条样本的类别答案。
- DAPT,82.5:先让通用模型用第 3 节的生物医学领域语料练习预测被遮住的词,再学习相同的 500 条样本的类别答案。这条路线没有专门用 RCT-500 的文本做 TAPT。(原文表 8;§5.1–5.2)
RCT-500 的 500 指最终用于分类训练的 500
条标注样本;500NN-TAPT 的 500
指为每条任务文本寻找的近邻数量。论文表 9 进一步记录了 RCT-500
这两组继续预训练的语料规模:500NN-TAPT 实际使用约 18.5
万份去重后的文本、24MB;DAPT 使用约 2500
万份文本、47GB。此前笔记写的“完整 DAPT”,指的就是第 3
节在整份生物医学领域语料上继续预训练的做法,后文统一称
DAPT(整份领域语料)。两组的区别是用于遮词续训的文本范围;最终分类训练都使用
RCT-500 的 500 条标注样本。(原文表 1、表 9)
CHEMPROT 和 RCT-500 的 DAPT 使用生物医学领域语料;ACL-ARC 的 DAPT
使用计算机科学领域语料。表 8 中 RAND-TAPT
是随机选句的对照。RCT-500 在表 8 中的 DAPT 为 82.5;表 5 中使用完整 RCT
训练集时的 DAPT 为 87.6,两张表的分类训练样本量不同。(原文表 5、表
8;§5.1–5.2)
简化版本:面对数量庞大的领域文本与较少的任务文本,作者用任务句子检索向量近邻,将挑出的领域句子加入 TAPT 训练。表 8 汇报这种做法的分类成绩。
2.4 作者怎样比较这些训练方法?(原文 §3.2、§4.1;表 5)
作者从已经预训练好的 RoBERTa-base 出发。拿新闻分类任务 AGNEWS 举例:训练集里有新闻文本,也有每篇新闻所属的类别。最终要做的事,是让模型读一篇新闻,预测它属于哪个类别。训练分类模型时,作者把模型预测的类别与训练集给出的正确类别比较,更新 RoBERTa 和分类层的参数。四组实验都会用任务训练集中的文本和类别答案完成这一步,再在测试集上比较结果。四组实验在分类训练前采用不同的继续预训练方式。
作者先做一个参照:直接拿原版 RoBERTa,在 AGNEWS 的新闻及类别答案上训练分类模型。原文称它为 baseline(基线),即后面各组用来比较的起点。直接训练得到的测试成绩是表 5 的第一列;其余三列分别对应另外加入 DAPT、TAPT、DAPT + TAPT 后的测试成绩。(原文 §3.2 的 Baseline)
接着作者单独试 DAPT(domain-adaptive pretraining):先让原版 RoBERTa 读大量新闻领域文本,用遮住部分词再预测的方式继续预训练。这一步使用新闻文本;随后拿 AGNEWS 训练集里的新闻和类别答案训练分类模型,检查领域适配给分类成绩带来什么变化。(原文 §3)
随后单独试 TAPT(task-adaptive pretraining):同样从原版 RoBERTa 出发,先用 AGNEWS 任务训练集的新闻文本做遮词预测,之后再用这些新闻和类别答案训练分类模型。前后使用同一批训练新闻:第一步学习预测被遮住的词,第二步使用类别答案学习新闻分类。(原文 §4)
最后,作者让 RoBERTa 先做 DAPT、再做 TAPT,然后用 AGNEWS 训练集的新闻和类别答案训练分类模型。这就是表 5 的 DAPT + TAPT。表 5 将以上四组在同一道任务上的分类成绩摆在一起:从直接训练分类模型,到额外读领域文本、读任务文本、按顺序都读。这里的“继续预训练”都在练习猜被遮住的词;“训练分类模型”才用新闻类别答案。其他七道分类题也按各自的领域语料、任务训练文本和类别答案做相应比较。(原文 §4.1;表 5)
3. 逐段拆解方法
3.1 DAPT:先补“领域常识”(原文 §3;表 1、图 2、表 3)
- 输入:RoBERTa-base + 某个领域的无标注文本。作者分别用生物医学论文、计算机科学论文、新闻、亚马逊评论。四个语料规模依次为 47GB、48GB、39GB、11GB。
- 操作:继续训练掩码语言模型,每个领域训练 12.5K 步,得到四个独立的领域版模型;再分别用该领域各任务的文本和类别答案训练分类模型。
- 输出:相对于直接微调通用模型,领域继续预训练在七个任务上提高分类 F1,AGNEWS 持平。完整数值见第 4 节。
看表 3 的 CHEMPROT 一行,最终始终做同一个任务:判断化学物质与蛋白质的关系;分类训练集和测试集也保持相同。直接训练 RoBERTa 得到 81.9;先用生物医学论文继续预训练,再做 CHEMPROT,得到 84.2(DAPT);先用亚马逊评论继续预训练,再做 CHEMPROT,得到 79.4(表中 ¬DAPT)。§3.3 所说的“其他领域”指继续预训练所读的语料换了来源。作者借此检验继续预训练的收益与语料领域的关系。表 3 里,计算机科学的两个任务在使用其他领域语料后略高于通用基线;具体结果逐行读取。(原文表 3、§3.3)
论文用高频词重合度粗看距离:通用预训练语料的代理样本与新闻的词重合度为 54.1%,与计算机科学文本为 19.2%。表 5 中,计算机科学任务 ACL-ARC 在 DAPT 后的 F1 提升 12.4 点;新闻任务 AGNEWS 保持 93.9。这两个例子呼应了作者对领域距离的猜想。(原文图 2、表 5)
3.2 TAPT:再补“这道题的语感”(原文 §4;表 5、表 6)
- 输入:RoBERTa-base,或者已经完成 DAPT 的模型;外加目标任务训练集的原始文本。
- 操作:对同一批任务文本继续做掩码词预测,训练 100 轮;各轮随机遮住不同的词,遮盖概率 15%。随后正常进行分类监督微调。
- 为什么值得试:任务文本贴近当前任务,所需语料比 DAPT 少;训练时可直接使用已有的任务训练文本。
- 训练顺序:论文评测了 DAPT 后做 TAPT。作者推测反向顺序可能遗忘任务相关信息;本篇的实验结果来自“领域 → 任务”的顺序。(原文 §4.1)
同一领域的不同任务也有各自的数据写法。论文把一项任务上的 TAPT 模型拿去做另一项任务的分类,常有掉分。例如表 6 中,ACL-ARC 的任务内 TAPT 为 67.4,换用 SCIERC 的任务文本先训练后变成 64.1。任务内适配与跨任务使用需要分别评测。
3.3 任务文本不够时,找相似文本(原文 §5;图 3、表 7–9)
作者测试两种扩充 TAPT 文本的办法:
- Curated-TAPT:数据集制作者手里若有更多与任务同源的无标注文本,可以一起拿来继续预训练。论文在 RCT-500、HYPERPARTISAN、IMDB 三个设置做了这项实验。RCT-500 的 F1 从普通 TAPT 的 79.8 提至 83.4;HYPERPARTISAN 单独使用 Curated-TAPT 为 89.9,普通 TAPT 为 90.4。各任务的结果列在表 7。(原文表 7)
- kNN-TAPT:从领域语料抽取 100 万句,用轻量模型 VAMPIRE 将领域句子与任务句子映射成向量;每个任务句子按余弦相似度找 50/150/500 个近邻;用“任务文本 + 挑出的句子”继续预训练 RoBERTa。作者还设置随机选句对照。kNN 在这一步用于离线筛选训练数据;最终分类使用续训后的 RoBERTa。(原文 §5.2、表 8)
ACL-ARC 上,普通 TAPT 67.4,500 近邻 TAPT 75.5,DAPT(整份领域语料)75.4;这些数值接近。自动挑选语料的实验覆盖三个低资源设置,表 8 汇报了五次随机实验的均值和波动。(原文表 8)
4. 先看数字,再讲结论
下表来自论文表 5,测试集五次随机种子的平均 F1。CHEMPROT、RCT 用 micro-F1;其他任务用 macro-F1。数值差用 F1 点表达,例如 63.0 → 75.4 是提高 12.4 点。
| 领域 / 任务 | 直接微调 | DAPT | TAPT | DAPT → TAPT | 能看出的事实 |
|---|---|---|---|---|---|
| 生医 / CHEMPROT | 81.9 | 84.2 | 82.6 | 84.4 | 领域文本更有用 |
| 生医 / RCT | 87.2 | 87.6 | 87.7 | 87.8 | 差距都很小 |
| 计算机 / ACL-ARC | 63.0 | 75.4 | 67.4 | 75.6 | DAPT +12.4 点 |
| 计算机 / SCIERC | 77.3 | 80.8 | 79.3 | 81.3 | 组合最好 |
| 新闻 / HYPERPARTISAN | 86.6 | 88.2 | 90.4 | 90.0 | 单独 TAPT 数值更高;方差大 |
| 新闻 / AGNEWS | 93.9 | 93.9 | 94.5 | 94.6 | DAPT 没提高,TAPT 提高 |
| 评论 / HELPFULNESS | 65.1 | 66.5 | 68.5 | 68.7 | 任务文本收益较大 |
| 评论 / IMDB | 95.0 | 95.4 | 95.5 | 95.6 | 已很高,增量较小 |
表 5 的结果:八个任务中,DAPT 对七个有正向提升、对 AGNEWS 持平;TAPT 对八个都高于通用基线;“DAPT → TAPT”对八个都高于通用基线。HYPERPARTISAN 的组合结果为 90.0,单独 TAPT 为 90.4;论文指出两者差异落在该任务的实验标准差范围内。
两个指标:表 1 中,新闻语料的掩码预测损失从 1.08 升到 1.16,衡量模型预测被遮住词语的情况;表 5 中,新闻任务 HYPERPARTISAN 的分类 F1 从 86.6 升到 88.2,衡量分类结果。作者最终用分类 F1 判断下游任务收益。
资源账:论文表 9 以 RCT-500 为例。TAPT 用 500 份文档、约 0.2K 步、80KB 语料,F1 为 79.8;DAPT 用领域语料 47GB、12.5K 步,F1 为 82.5;Curated-TAPT 用 27MB 语料、8.8K 步,F1 为 83.4。表中列出了适配训练的步骤与语料存储;kNN 的候选句编码和检索索引还会带来额外开销。DAPT 得到的领域模型可以供同领域多个任务共用,再为各任务做 TAPT。(原文 §5.3)
5. 真正能带走的判断
- 领域语料提供补充:当文本表达与原始训练语料差异明显,继续读相关领域文本值得试;ACL-ARC 的 63.0 → 75.4 是本文最直观的例子。
- 贴近任务的数据有独立价值:TAPT 数据规模较小,也能让八项任务的结果高于直接微调;做过 DAPT 后,再做 TAPT 通常仍有帮助。
- 语料相关性影响收益:表 3 中其他领域语料通常低于目标领域语料;表 6 中任务内 TAPT 通常高于跨任务 TAPT。
- 有钱有数据的路线:领域语料 DAPT → 任务训练文本 TAPT → 监督微调;领域模型供多个任务使用。
- 预算有限的路线:先试 TAPT;若还有领域语料,尝试用近邻挑选任务相关文本;若已有同源无标注任务语料,优先对照 Curated-TAPT。
论文边界:主实验是 2020 年的 RoBERTa-base、英文文本、八个分类任务;kNN 增强仅在三个低资源设置验证。生物医学和计算机科学领域语料使用了部分受版权约束的内部 S2ORC 数据,按论文配置完全复现有数据门槛。(原文 §3 注 1、§5.2)
给当前外卖 / embedding 工作的假设:可以把“更多外卖 SKU/查询文本”当领域候选,把“某个任务训练切分中的输入文本”当任务候选,再比较原模型、领域续训、任务续训、领域后任务续训,以及相似文本筛选。实际训练目标需符合当前模型,例如检索的对比学习目标;评测改用 Recall@K、NDCG 或类目准确率。这是待验证的外卖业务实验设计。先固定数据切分,使用训练侧文本做任务适配,再用独立测试集评估收益。
6. 复述与自测
60 秒版本:
“Fig 1 展示通用预训练语料、目标领域和任务训练文本的范围;Fig 2 用高频词表量出一些差异:通用语料样本与新闻重合 54.1%,与计算机科学论文重合 19.2%。作者让 RoBERTa 分别读领域文本(DAPT)和任务文本(TAPT),再训练分类模型。Fig 3 则把任务句子当查询,从领域语料里挑近邻来扩充 TAPT。表 5 中,TAPT 在八个任务上都高于直接训练分类模型,DAPT 在 AGNEWS 上持平;表 8 给出选句后的分类成绩。这些实验针对英文文本分类。”
5 分钟讲法:
- 指着 Fig 1
的橙色(
original LM domain)、蓝色(target domain)、灰色(task distribution)讲:任务训练集是领域中的局部,且通常经过非随机筛选。 - 指着 Fig 2 的
PT行读 54.1%(新闻)和 19.2%(计算机科学):这两格记录前 1 万个高频单词的重合率;PT是预训练来源的代理样本。 - 根据 §2.4 讲清四组实验:都用类别答案训练分类模型,额外加入 DAPT、TAPT 或连续加入两者。
- 指着 Fig 3 的红点、蓝点和三个 k 圈:任务句子查找相近的领域句子,用来扩充 TAPT 训练语料;kNN 承担离线选句的工作。
- 用表 5 的 ACL-ARC 63.0 → DAPT 75.4、AGNEWS 93.9 → DAPT 93.9,以及表 8 的 CHEMPROT 82.6 → 50NN-TAPT 83.3,呈现不同任务的结果。
- 用表 3 的其他领域语料对照收尾:语料相关性影响结果;检索或 embedding 可沿这条思路另做实验。
讲完可以展开:
- 领域和任务的距离:通用语料覆盖广,特定领域与任务仍有各自的文本分布;四领域八任务的实验比较了继续预训练的收益。
- TAPT 的训练信号:遮住训练文本的部分词、让模型预测;随后使用任务标签训练分类模型。
- 模型如何沿实验路线更新:组合路线按 DAPT → TAPT 更新同一个 RoBERTa,再训练分类模型;单独路线从原版 RoBERTa 出发。
- kNN-TAPT 的位置:离线挑选领域句子用于续训,最后使用训练好的分类模型推理。
- 组合路线的数值差异:表 5 中 HYPERPARTISAN 的单独 TAPT 为 90.4,组合为 90.0;论文同时报告五次实验的波动。
自测:合上文档,能回答就算会讲:
- Fig 1 为什么把任务数据画成目标领域里的一小块?橙色和蓝色重叠表示什么?
- Fig 2 的
PT × CS = 19.2%如何计算?其中PT代表什么语料? - Fig 3 的红点、蓝点、
k=50/150/500和 VAMPIRE 各对应什么?kNN 参与哪一个训练阶段? - DAPT 和 TAPT 分别读哪一类文本?四组实验在哪一步使用分类标签?
- 作者怎样用其他领域语料建立对照?表 5 中组合与单独 TAPT 的成绩在哪个任务上最接近?
答案可在第 2、3、4 节直接找到。把第 6 节的 60 秒版本脱稿讲出来,再用第 4 节任意两行数字支撑,就能向别人复述这篇论文的核心论证。
7. 回原文核对
| 想确认什么 | 原文位置 |
|---|---|
| 领域、任务的直觉 | 图 1;§1–2 |
| 四份领域语料、语言模型损失 | 表 1;§3.2 |
| 领域词重合度 | 图 2;§3.1 |
| 用近邻筛选领域语料来扩充 TAPT | 图 3;§5.2;表 8 |
| DAPT 与其他领域语料对照 | 表 3;§3.3 |
| 全部八个任务的主结果 | 表 5;§4.1 |
| 同领域任务之间 TAPT 的迁移 | 表 6;§4.1 |
| 人工同源语料、近邻筛选、资源消耗 | 表 7、8、9;§5 |
文中保留论文的关键英文术语,并用中文解释其作用;具体数字和例外以论文相应图表为准。
- 本文作者: hongbo
- 本文链接: https://hbyecoding.github.io/2026/10/27/dont-stop-pretraining-2004-10964/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!