比较 RoBERTa、Llama 2 和 Mistral 在灾难推文分类中的 LoRA 应用

本研究使用低秩适应(LoRA)比较了 RoBERTa、Llama 2 和 Mistral 7B 在灾难推文分类任务上的性能。结果表明,较小的 RoBERTa 模型在准确率(F1 分数)和效率方面均优于较大的 7B 参数模型,这表明对于简单的短序列二分类任务,巨大的 LLMs 可能不是必需的。

比较性能结果

在三个测试模型中,RoBERTa 实现了最高的 F1 分数和最低的资源消耗。Llama 2 的表现优于 Mistral 7B,但两者相比 RoBERTa 都显著较慢且更耗内存。

模型 F1 分数 训练时间 内存消耗 可训练参数比例
RoBERTa 0.8077 538 秒 GPU1: 9.1 Gb / GPU2: 8.3 Gb 0.64%
Llama 2 0.7638 2052 秒 GPU1: 35 Gb / GPU2: 33.9 Gb 0.12%
Mistral 7B 0.7364 2030 秒 GPU1: 29.6 Gb / GPU2: 29.5 Gb 0.024%

技术实施与方法论

评估了三种不同的架构,以确定模型规模和类型对分类性能的影响:

  • RoBERTa (Large): 一个仅含编码器的 Transformer 模型,参数量为 355M,用作基线。
  • Llama 2 (7B): 一个具有 SwiGLU 激活和旋转位置嵌入的自回归解码器模型。
  • Mistral 7B (v0.1): 一个利用滑动窗口注意力和分组查询注意力的解码器模型,以优化推理并处理更长的序列。

LoRA 微调

低秩适应(LoRA)通过学习低秩更新矩阵来减少可训练参数的数量,同时保持预训练权重冻结。这种参数高效微调(PEFT)方法被应用于编码器和解码器架构。

对于解码器模型(Llama 2 和 Mistral 7B),LoRA 特别针对 q_projv_proj 模块。由此产生的可训练参数百分比极低:Mistral 7B 为 0.024%,Llama 2 为 0.12%。

数据集与预处理

模型在 mehdiiraqui/twitter_disaster 数据集上进行训练。为确保公平比较,所有模型的最大序列长度 (MAX_LEN) 被设置为 512,受 RoBERTa 的限制。

由于数据集中正负类别的分布不均衡,实现了自定义的 WeightedCELossTrainer。该训练器重写了 compute_loss 方法以应用加权交叉熵损失,使用计算得到的权重(正类:1.1637,负类:0.8767)以防止模型偏向多数类。

硬件与训练配置

训练在单个节点上进行,配备一块 A6000 GPU(48GB 内存)。

由于 Mistral 7B 和 Llama 2 的模型大小,需要半精度训练 (fp16=True) 才能将模型放入 GPU 内存,而 RoBERTa 则未使用半精度进行训练。两个 7B 模型均使用了梯度检查点来进一步管理内存使用。

关键要点

  • 模型规模 vs. 任务复杂度: 对于涉及短序列的简单预测任务,像 RoBERTa 这样的小型基础模型仍然具有高竞争力,并且通常优于更大的 LLMs。
  • 效率提升: RoBERTa 的训练速度大约是 7B 模型的 3.8 倍,同时内存消耗显著降低。
  • LoRA 的多功能性: 该研究证实 LoRA 在编码器仅和解码器仅的 Transformer 架构上的序列分类任务中是有效的。

Sources