大模型论文:CRAMMING TRAINING A LANGUAGE MODEL ON ASINGLE GPU IN ONE DAY(效率提升)-final

发布于:2025-04-12 ⋅ 阅读:(44) ⋅ 点赞:(0)

大模型论文:CRAMMING: TRAINING A LANGUAGE MODEL ON ASINGLE GPU IN ONE DAY(效率提升)

文章地址:https://arxiv.org/abs/2212.14034


摘要

近年来,语言建模的研究趋势集中在通过大规模扩展来提升性能,导致训练语言模型的成本变得高昂,使得大多数研究人员和从业者难以承担。在多数研究者关注如何突破极限计算能力的同时,我们提出了一个相反的问题:在只有一块消费级GPU、仅训练一天的情况下,我们能取得多大的进展?

我们研究了在这种受限环境下,从零开始使用掩码语言建模(Masked Language Modeling, MLM)训练的基于Transformer的语言模型,其在下游任务上的表现。除了重新分析几乎整个预训练流程以适配该场景,并提供一种在性能上接近BERT的修改版流程外,我们还探讨了为何缩小模型规模会如此困难,以及在这种资源受限场景中哪些修改真正提升了性能

我们提供的证据表明,即便在这种受限的设置下,模型性能依然遵循在大规模计算环境中观察到的扩展定律(scaling laws)。以扩展定律为视角,我们对一系列近期训练方法和架构改进进行了分类,并讨论了它们在有限计算资源场景下的优劣与实际可行性(或不可行性)


研究背景

  • 大规模训练基于Transformer架构的机器学习模型,已在自然语言处理的多个子领域带来了突破性进展,包括语言理解和自然语言生成,这类模型的关键特性是:这类系统可以稳定扩展——随着模型参数数量和训练数据量的增加,性能会持续提升。这种性能的提升遵循各种幂律关系,从而确立了一个主导范式:扩展规模是性能提升的关键

  • 较为优秀的语言模型如BERT模型,虽然已广泛应用,但训练所需计算资源依然非常庞大,让许多研究者和从业者感觉训练语言模型遥不可及

  • 提出一个反其道而行的研究目标:探索如何有效“缩小”语言模型的训练规模,并研究在这种条件下的取舍。核心问题是:

    “在只有一块消费级GPU、训练时间只有一天的条件下,一个普通研究者最多能实现什么样的下游性能?”

  • 为了回答这些问题,本文提出了一个名为 “Cramming”(临时抱佛脚) 的挑战:在考试前一天,学习一个完整的语言模型

  • 本文的研究从多个方面分析训练流程,研究在缩小规模条件下哪些修改会真正提升性能。即使在这样受限的环境中,本文发现性能表现仍然遵循大计算资源环境下的扩展规律(scaling laws)

  • 总结来说,本文的研究的核心思想:挑战当前“越大越强”的范式,探索在极度有限的资源下(1块消费级GPU + 1天时间)是否可能训练出接近BERT性能的语言模型。研究的关键价值在于:

    • 为资源有限的研究者提供方法和希望;

    • 挑战扩展定律在低资源场景下的适用性;

    • 提供技术路线以优化训练流程,使其适应低成本环境;

    • 促进更广泛的研究可能性,如安全性、公平性、可解释性等,不依赖大模型。

  • 先说结论,本文最终训练出一些模型,其在GLUE任务上能达到相当可观的性能,甚至在部分任务中接近或超过了BERT,而所需资源却大大减少——真正实现了“穷人版预训练”

受限情况下的算力限制

  • 使用的算力应该遵守的规则如下:

    • 模型训练完全从零开始:必须从零开始训练一个任意大小的Transformer语言模型,使用掩码语言建模(Masked Language Modeling),不允许使用任何已有的预训练模型。
    • 禁止使用现有预训练模型的任何部分:这适用于训练流程中的所有环节。
    • 允许使用原始文本进行训练(不包括下游数据):可以根据策略选择采样方式和时机加快训练速度,但不能依赖任何预训练模型来进行采样
    • 原始数据的下载与预处理不计入总计算预算:可以使用CPU来构建分词器、分词和数据过滤,但不能包含任何形式的表示学习(如词嵌入预训练),除非将其计入训练时间。
    • 训练必须在单张GPU上进行,持续24小时
    • 下游性能评估基于GLUE基准任务:在GLUE上的微调仅限于目标任务数据的短期训练(例如5个epoch以内),并且超参数必须全局设定,不能单独调参。微调所需的计算资源不计入总预算。
  • 本文采用两类设置来进行实验:

    • 传统的 RTX2080Ti(2018年发布);

    • 较新款的 RTX A4000 和 RTX A6000(分别为2020年发布的工作站级GPU)。

    • 每张卡片都搭配 4 核CPU 和 32GB 内存

  • 这些限制主要是为了重新检验BERT的原始训练设定在有限算力下是否依然有效

  • 此外,本文排除了如下做法:

    • 模型蒸馏(distillation)(如Turc et al., 2019;Jiao et al., 2020),因为它依赖于已有模型;
    • 数据过滤(Kalimoorthi et al., 2021;Golchin et al., 2022),因为这依赖于大模型提取的表示;
    • 使用已有预训练模型的表示信息或压缩形式
  • 本文也不使用BERT的原始训练数据集,希望通过更好的数据清洗与质量控制来挖掘改进空间

  • GPU选择理由

    • RTX2080Ti 是天然的选择,因为它在BERT发布前就已存在;
    • RTX A4000 是更现代的消费级卡;
    • RTX A6000 是最强的单机工作站GPU之一。
  • 对微调阶段的限制:尽可能模拟BERT的下游任务设置,但施加额外限制,以避免通过复杂调参等方式“刷分”:

    • 禁止多轮下游任务预训练(如MNLI先训练,再训练其他任务);
    • 禁止在每个任务上进行高强度的超参数调优(例如使用Devlin et al., 2019;Liu et al., 2019中描述的优化方法);
    • 目的是避免利用过度计算优化下游任务性能
  • 总结来讲:

    • 核心目标是模拟一个资源极为受限的研究者,在不依赖任何现成模型、只用一天时间和一块GPU的条件下,能否复现出接近BERT水平的模型
    • 通过这些限制,研究团队试图把“大模型时代”的训练理念倒过来思考,聚焦于算法、训练策略本身在低资源下的有效性。

现有优化研究

训练BERT要花多长时间?

这个问题本质上很难回答,因为训练时间高度依赖于硬件、软件、优化程度等多种因素。不过,可以通过“运行期间最大FLOPs预算”(即给定时间内可执行的低精度浮点运算次数)来估算训练所需上限。然而,即便是高度优化的模型,实际训练中也很难达到该理论峰值,但该预算代表了完成训练任务所需的“付费”资源总额。

例如,在TPU上训练BERT的早期尝试显示,需要约11天的计算量才能实现类似效果。尽管随着软件优化的发展,训练所需时间已大幅缩短,但训练BERT依然需要整套GPU服务器或TPU分片,资源成本非常高。


高效BERT研究方向

有一些工作试图在接近BERT设定的基础上优化计算开销,如:

  • SqueezeBERT(2020):使用8张Titan RTX显卡,训练4天;
  • Sellam等(2022):指出原始BERT训练非常“极端”,并将其训练时间加倍后作为更合理的比较基准;
  • Izsak等(2021):试图在24小时内重现BERT,但使用的是完整服务器、8张V100 GPU,并采用BERT-large架构,序列长度128,并通过调参实现了优化。

本论文将其作为对比基线设定,因为它的资源消耗大约是本研究的15倍


高效Transformer架构研究回顾

近年来,大量研究聚焦于优化Transformer架构,包括:

  • T5结构修改与评估
  • 1.75天TPU资源评估:结果显示大部分修改并未带来显著性能提升;
  • Tay等人的扩展研究:在各种尺度下发现,大多数架构修改无法超越原始Transformer;
  • Scao等人:评估在大规模训练前准备的小改动(布局、嵌入、数据源等);
  • 极大规模训练如GPT-3和PaLM的架构:这类研究对改动也相当保守。

然而,这些工作大多依赖极大的计算资源,不适用于本文关注的受限场景。


扩展规律(Scaling Laws)

Kaplan的研究揭示了一个核心规律:Transformer模型的性能主要由参数数量决定。他们发现,在相同的计算预算下,可以推导出一个“最优模型尺寸”,但:

  • 模型越大,单位计算的效率越低;
  • 模型越大,训练越快;
  • 所以存在权衡点:大模型虽成本高,但进步也快。

这些规律对大型模型适用性良好,但在小规模条件下并不总能复现同样的趋势。即使如此,其总体逻辑依然具备参考价值


总结
  1. BERT训练成本极高:哪怕使用TPU/GPU,优化软件后训练成本仍是“天价级”。
  2. 原始BERT训练被认为是异常的,后续有研究提出更合理的训练时间与设置。
  3. 本研究对比对象(Izsak et al., 2021)消耗资源是本论文的15倍,体现本文研究的节俭性。
  4. 绝大多数架构优化在小规模训练中收效甚微,大多数提升集中在大模型、高资源场景。
  5. 扩展规律仍然适用:即使在小模型上不能完美复现,但其优化策略依旧可借鉴。

实验探索(Investigations)

本文在有限算力条件下,基于BERT模型的原始设置,测试和实现了大量结构、训练方法和数据改进策略

一、实验设置


实现细节(Implementation Details)
  • 实现框架: 所有实验都基于 PyTorch。为了避免“软件抽奖”带来的不公平比较,我们不使用特化实现,而是尽量依赖通用组件,仅启用 PyTorch 自动融合操作
  • 注意力机制优化: 结构选择完毕后,才重新启用 Dao等人(2022)提出的高效 attention kernel。
  • 精度策略: 使用 Micikevicius 等人(2018)提出的自动混合精度(AMP)策略,包括16-bit、32-bit 和 bfloat16 精度。

初始数据集设置

本文复刻BERT的设置,使用英文维基百科和 BookCorpus 数据

  • 数据预处理: 全部转换为小写,去除重音符号和非ASCII字符;
  • 分词方式: 使用 WordPiece,词表大小 215 = 32768 2 15 = 32768 215=327682^{15} = 32768 215=32768215=32768。较小词表表现较差,过大词表表现不稳定;
  • 序列设置: 所有数据被打包为128长度的随机片段,并用[SEP]分隔;不使用[CLS]
  • 训练配置: 单轮训练,使用 RTX2080Ti,每个模型的micro batch size 在64到96之间;
  • 结果: 满足了本文目标任务的训练和注意力计算效率。

二、 架构修改(Modifying the Architecture)

缩小模型的有效方式
  • 缩小模型容量是减小训练成本的关键。训练效率在每个模型大小范围内变化不大,但模型越小学习越慢(每步下降少),但可以跑更多步。
  • 这使得本文可以基于“每一步所需计算时间”来选择架构,而不是单纯追求大模型。

扩展规律在小规模下仍然成立
  • 虽然许多架构改进(如T5优化)对大模型有效,但在本文这种“极度资源受限”环境中,Kaplan等人提出的扩展规律依然适用
  • 不论 Transformer 类型如何,每个 token 的训练效率几乎只取决于模型规模,而不是架构细节
🔍 发现:
  • 即使使用不同结构(如funnel-transformer、递归结构、深层窄网络等),也无法突破 scaling law 限制
  • 因此,本文聚焦在“提升每步效率”的小优化上。

三、模块级优化分析

Attention Block:

  • 禁用所有 QKV 偏置项 → 提升前后向速度;
  • 不改变 attention head 数量,最终保留12个;
  • 替换 softmax、QKV 结构等无显著效果;
  • 实验 FLASH attention和傅里叶 attention也未提升性能;
  • rotary embedding、pre-norm 方式效果稳定,但改动影响小。

Feedforward Block:

  • 关闭线性层 bias提升效率;
  • 激活函数保留 GELU,尝试 GLU 有轻微改进;
  • 保持 FFN 参数不变,即使用 gating 也不增加维度。

Embedding:

  • 使用带缩放的正弦位置编码,优于learned或未缩放版本;
  • 解耦输入输出embedding无效;
  • 添加embedding block末端的LayerNorm。

Layer Structure:

  • 使用 pre-norm + layernorm表现稳定;
  • 替换为 RMSNorm 或 DropLayer 无明显增益;
  • pre-norm 的主要作用是支持更大学习率和更短的 warmup。

Head Block:

  • 可移除非线性 head,无性能下降;
  • 可去掉 decoder bias;
  • 支持稀疏预测机制节省显存;
  • 增加终结 LayerNorm 稳定训练。

实验总结:

本节揭示了一种 在资源受限条件下“最大化训练效率”的架构选择原则

  • 不要乱改结构,只要用最标准的架构,精简细节,性能就很好
  • 几乎所有突破 scaling law 的尝试都失败
  • 有效的方法是:调整细节,加速单步计算,保持模型规模不变

四、修改训练设置(Modifying the Training Setup)

本节探讨在“临时抱佛脚(Cramming)”场景下,标准BERT训练超参数如何影响性能,并对其进行优化。


训练目标(Objective)
  • 使用掩码语言建模(MLM),遮蔽率为15%,遵循Devlin等人(2019)原设定(10%保持原词,10%随机替换,80%掩码)。
  • 增大遮蔽率(如40%,Wettig et al., 2022)无效;
  • 移除20%的保留策略无影响;
  • 尝试其他损失函数(如MSE、L1)也无益处(Hui & Belkin, 2021)。

优化器(Choice of Optimizer)
  • 使用 Adam优化器,设置如下:

    • weight_decay = 0.01
    • β1 = 0.9, β2 = 0.98
    • ε = 1e-12
  • 加入梯度裁剪(clip value = 0.5);

  • 更换为一阶或高阶自适应优化器(如Shazeer & Stern, 2018)无效果(Liu et al., 2020a;Yadav, 2020);

  • 超参数轻微调整效果不明显,Adam表现最稳。


学习率调度(Learning Rate Schedule)
  • 采用 One-Cycle Schedule,峰值学习率 1e-3
  • 遵循Izsak等(2021)建议,按预算缩放学习率;
  • 尽管学习率曲线影响有限,但One-Cycle对预训练损失表现最好。

批大小调度(Batch Size Schedule)
  • 由于单GPU限制,采用micro-batch(如96),每16/42次前向传播后累计一次梯度;
  • RTX2080Ti 最终batch size为1536(最小loss)或4032(最好下游任务);
  • A4000/A6000卡对应128/256的micro-batch,累积至4096;
  • 增加训练早期的平均batch size有助于训练进度,效果优于adaptive策略。

禁用Dropout(Dropping Dropout)

  • 原始BERT模型使用Dropout防止过拟合;
  • 但在“只训练一轮”的cramming场景中,过拟合几乎不存在
  • 因此预训练时关闭Dropout,可提升梯度更新频率;
  • 只在下游微调阶段重新启用Dropout(0.1)
  • Token Drop与Length Curricula无效。

五、数据集优化(Optimizing the Dataset)

虽然架构优化受限于 scaling laws,但更高质量数据依然能显著提升性能


数据来源选择
  • 实验四种数据源:
    1. bookcorpus-wikipedia(基础);
    2. The Pile;
    3. Common Crawl 派生集;
    4. MNLI 专项处理数据;
  • 最终发现:The Pile 表现最佳(尤其在MNLI任务中);
  • 对C4数据进一步处理提升效果,包括:
    • 去重无效;
    • 压缩性过滤有效:过滤HTML、代码等“难压缩内容”;
    • 仅保留 字符数 < t × token数 的序列(如t = 0.3),提升下游性能。

其他数据策略优化
  • 基于词频对token序列排序(高频优先),提升训练稳定性;
  • 扩大batch size至4096 对C4效果好,对bookcorpus-wikipedia 效果一般;
  • 减少数据分布扰动,提升了训练稳定性。

词表大小(Vocabulary Size)
  • 原始词表大小:32768;

  • 理论上,词表越大:

    • 唯一词越多,训练难度增加;
    • 可压缩性变好(压进固定token budget中);
  • 实验发现:GLUE任务上,词表越大表现越好;

    • MNLI 任务在32768后趋于饱和;
    • 实验显示词表与表现正相关,故保留32768大小

总结与解读:

本节展示了 如何在“24小时+单GPU”的极端受限条件下,通过训练设置与数据预处理策略榨干性能

  • 关闭Dropout、优化batch调度、选择稳定优化器 是关键;
  • 数据优化是提升的主路径,包括:
    • 压缩性过滤;
    • token排序;
    • 更大batch size;
  • 词表不要随便减小,越大越好(直到饱和);
  • 再次确认:scaling law 固若金汤,改变结构没用,换数据最值钱

实验结果展示

实验展示一:Transformer架构与MLM损失

在这里插入图片描述

这张图展示了不同Transformer架构MLM损失的关系,左边是全局视图,右边是放大后专注于10^87 × 10^9之间的训练步骤。

分析与发现:
  1. 不同架构的训练曲线:
    各种架构(如BERT-base、Funnel、DeepNarrow等)都在相同的计算预算下进行训练,从图中可以看到:
    • 架构形状的变化对损失的影响较小,只有少数架构(如Funnel)在开始时损失下降较快。
    • 损失随训练时间的变化表现出明显的线性下降,表明尽管架构不同,核心的训练过程在较大程度上是相似的。
    • 缩小模型规模的效果: 较小模型的损失下降速度较慢,而大规模架构(如24层、FFN每4层)虽然速度较快,但最终的效果差异较小。
  2. 结论:
    • 结果表明,即使在架构上进行不同调整(如使用6层、8层、16层、24层等),大部分的训练效果在初期都表现出相似的下降模式,而模型规模的变化才是影响性能的关键因素。

实验展示二:学习率调度

在这里插入图片描述

该图展示了不同学习率调度策略对MLM损失(左)和步长(右)的影响。

分析与发现:
  1. 学习率调度的影响:
    • **One-Cycle学习率调度(紫色线)**表现出最佳的终期表现,表明这种快速的学习率调整方法能更有效地在训练后期收敛。
    • **其他学习率调度(如Triangular、Cosine Decay等)**对损失的影响较小,但One-Cycle显著改善了训练的稳定性和收敛速度。
  2. 结论:
    • One-Cycle调度能够快速加速训练,减少学习率的变化,进而提高训练的有效性。

实验三:数据集变体对下游任务的影响

在这里插入图片描述

这张表格展示了不同数据集格式批大小的组合在MNLI任务上的表现。

分析与发现:
  1. 数据集变体:
    • Bookcorpus-Wikipedia数据集上,去重和过滤操作显著提高了模型在MNLI任务上的表现,尤其是过滤后的数据集(如t=0.3)带来了较好的结果。
    • C4-Subset(去重和过滤)显著提高了训练效果,尤其是在过滤后,模型能从干净、低噪声的数据中获得更好的一致性。
  2. 批大小与表现的关系:
    • 在同一数据集上,增加**批大小(至4032或8064)**对训练稳定性和准确性有显著影响,尤其是在下游任务上。
  3. 结论:
    • 使用去重和过滤后的数据集,并结合更大的批大小(如4032或8064),能够提高模型在下游任务(如MNLI)上的准确性。

实验四:词汇表大小对模型性能的影响

在这里插入图片描述

这张图展示了词汇表大小GLUE ScoreMNLI任务准确率的影响,数据来自在Bookcorpus-Wikipedia数据集上训练的模型,采用了“临时抱佛脚(cramming)”训练模式。

分析与发现:
  1. 词汇表大小与MNLI准确率:
    • 词汇表增大(从5k到100k)时,MNLI准确率显著提高。
    • 在5k左右的词汇表时,MNLI的准确率低于0.79,随着词汇表的增大,准确率逐渐上升,最终趋于平稳,接近0.815。
    • 增加词汇表大小有助于提供更多的语言表达信息,使得模型能更好地理解和处理MNLI任务中的语义关系。
  2. 词汇表大小与GLUE Score:
    • GLUE Score的提升趋势也与MNLI准确率相似,但其表现略微不同。随着词汇表大小的增加,GLUE Score从0.73增加到接近0.77,呈现出相对平稳的增长曲线。
    • GLUE Score综合评估多个NLP任务,因此词汇表大小增加带来的好处不仅限于单一任务,它提高了模型的整体语言理解能力。
  3. 结论:
    • 词汇表越大,模型的整体性能越好,尤其在像MNLI这种对词汇量和语义理解要求较高的任务中表现尤为明显。
    • GLUE任务和MNLI任务均受益于较大的词汇表,更大的词汇表意味着更丰富的词汇和语义信息,可以更好地帮助模型进行语义推理和理解。

总结:

  1. Transformer架构:
    • 无论架构如何变化,模型规模是决定训练损失和性能的主要因素。
  2. 学习率调度:
    • One-Cycle调度能够显著提高训练效果,尤其是在训练后期。
  3. 数据集优化:
    • 数据集的去重与过滤能够大幅提升模型的训练质量,尤其是对于复杂任务(如MNLI)。
  4. 批大小:
    • 增大批大小(如4032或8064)显著提高了训练稳定性和最终的下游任务表现。

GLUE的微调性能

实验说明

  1. 数据集与基线
    • 排除了 WNLI 任务,采用了 GLUE 中的其他子任务。
    • 使用的是 MNLI 的“matched”集(m)
    • 所有模型均使用 BERT-base 的预训练检查点,在相同条件下进行微调。
  2. 训练设置
    • BERT-base:batch size 为 32,学习率为 2 × 1 0 − 5 2 \times 10^{-5} 2×105,训练 5 个 epoch。
    • crammed BERT(压缩版本):batch size 为 16,学习率为 4 × 1 0 − 5 4 \times 10^{-5} 4×105,采用 cosine decay。微调配置对已预训练的 BERT 没有显著改善。
  3. 表格说明
    • 表 3 与表 4 展示了不同训练方案下在各个 GLUE 子任务上的性能。
    • 引入了 Izsak2021 的训练配方(一天内完成训练),以及“crammed BERT”(压缩训练的 BERT)。
    • 发现压缩模型在大多数任务上表现仍然不错,尤其在 **大数据集(MNLI、QQP、QNLI、SST-2)**上。

性能比较

下表对比了不同模型和训练方法在各个 GLUE 子任务上的性能(GLUE-dev集):

在这里插入图片描述

训练设置 说明 GLUE 总分
BERT-base Fully trained 完整预训练 + 微调 80.9
BERT-base No Pretrain 无预训练,仅微调 45.5(差距极大)
单日训练对比:

在不同 GPU 上用一天训练,比较三种设置:

  1. BERT (normal protocol):用标准预训练流程但训练时间缩短。
  2. BERT (Izsak et al., 2021):按论文配方进行训练,适配 8 GPU 服务器。
  3. crammed BERT:单 GPU 压缩训练,性能优异。
最佳性能(A6000):
  • Crammed BERT:
    • MNLI: 83.9/84.1
    • SST-2: 92.2
    • GLUE 总分: 78.6

可以看到,在只用单 GPU 训练一天的条件下,压缩版本 BERT 的性能接近原始全训练 BERT 模型。


CoLA 表现异常分析

下表总结了 CoLA 与其他任务的对比结果:

在这里插入图片描述

模型 CoLA 不含 CoLA 的平均 GLUE 平均
BERT-base 56.5 84.0 80.9
Crammed (2080ti) 47.2 82.1 78.3
Crammed (A4000) 43.7 82.4 78.1
Crammed (A6000) 44.5 82.9 78.6
结论与解释:
  • CoLA(语言可接受性任务)性能显著下降
    • 两个主要可能原因:
      1. 全局超参数不适合 CoLA,这一任务对超参敏感。
      2. CoLA 需要更长文本记忆过程,模型需要更多时间理解语言可接受性,而压缩模型可能没有足够容量支持。
  • 与其他研究对比也发现类似问题:轻量级模型在 CoLA 上表现差,这似乎是一个广泛存在的现象。

总结:压缩模型能否替代完整训练的 BERT?

  • 压缩 BERT绝大多数 GLUE 任务上都能接近甚至达到完整训练模型的表现,尤其是像 SST-2、MNLI、QQP、QNLI
  • 唯一的明显弱点是 CoLA 任务,可能由于模型容量限制和训练时间不足。
  • 在资源有限的场景中(单 GPU、快速训练),压缩 BERT 提供了一个非常实用的替代方案。

消融实验

  • 下表总结了所有在本研究中讨论的变化,展示了架构、训练和数据调整的影响。每一组变化都会通过将所有修改恢复为原始BERT设置来进行消融实验。

    在这里插入图片描述

  • 结果:

    • 架构修改: 进行最小的架构调整(如PreNorm层结构)允许更激进的学习率调度,从而显著提高了训练效果。架构的修改对平均GLUE得分贡献了约2个百分点。
    • 训练修改: 适当的训练修改(如移除dropout,使用恒定批大小4096等)带来了约1个百分点的提升。
    • 数据修改: 数据集的更改(如数据去重和调整数据处理方式)也有一定的贡献,但较小。

表中总结了消融实验的详细数据,展示了不同修改对模型性能的影响。所有实验都遵循了前述的训练协议,分别比较了完全训练的BERT模型与crammed模型的不同修改。


表格结果分析:
  • crammed BERT的性能接近原始BERT(完全训练),尤其是在MNLISST-2等任务上表现良好,尽管在某些任务(如CoLA)上存在显著下降。
  • 数据修改和最小架构调整带来了显著的性能提升,尤其是在CoLA任务中,数据去重和过滤处理对改善性能具有直接影响。
  • 总结:
    • 主要贡献来自于架构的修改,然后是训练过程中的小修改,最后是数据预处理的影响。

训练更久会发生什么

在这一节,作者验证了如果给定更多计算预算,是否可以通过更长时间的训练进一步提升性能。实验使用了8个A6000 GPU训练模型,时间为48小时。

在这里插入图片描述

  • 结果:
    • 新训练的模型在MNLISST-2任务中表现出显著提高,甚至超越了原始的BERT模型。
    • 尽管MNLISST-2任务有明显进展,但在其他任务(如CoLA)上,模型表现并未进一步改善。
表格结果分析:
  • 训练48小时后:
    • 在更多计算资源下(48小时训练),crammed BERT的性能得到了显著提升,尤其是在MNLI和SST-2任务上。
    • roBERTa-base相比,crammed BERT在MNLI任务上表现出色,但在CoLA等任务中未能取得大幅改善。
  • 总结:
    • 增加计算资源的情况下,crammed模型的训练表现有所提高,但其在某些任务(如CoLA)中的局限性依然存在,表明这些模型仍需要更多的文本进行学习和泛化。
      总结:*
    • 主要贡献来自于架构的修改,然后是训练过程中的小修改,最后是数据预处理的影响。