摘要
我们发现,通过一种简单的数据增强方法,可以显著提升语言模型的微调效果。NEFTune 在训练过程中向嵌入向量添加噪声。在使用 Alpaca 对 LLaMA-2-7B 进行标准微调时,其在 AlpacaEval 上的表现为 29.79%,而使用带噪嵌入后则上升至 64.69%。NEFTune 在多个现代指令数据集上也优于强基线:使用 Evol-Instruct 微调的模型提升了 10%,使用 ShareGPT 提升了 8%,使用 OpenPlatypus 同样提升了 8%。即使是如 LLaMA-2-Chat 这类经过 RLHF 进一步优化的强大模型,也能从 NEFTune 的进一步训练中受益。
1 引言
大型语言模型(LLM)遵循详细指令的能力,是其实用性的核心。生成式语言模型通常在原始网页数据上预训练,随后在一小部分经过精心筛选的指令数据上进行微调。指令微调是驯服 LLM 能力的关键,而模型的实用性在很大程度上取决于我们如何最大化地利用这些有限的指令数据集。
本文提出,在微调的前向传播过程中,向训练数据的嵌入向量添加随机噪声。我们展示了这一简单技巧能够显著提升指令微调的效果,且无需额外计算或数据成本。Noisy Embedding Instruction Fine Tuning(NEFTune)虽然方法简单,但对下游对话质量有着显著影响。当一个原始 LLM(如 LLaMA-2-7B)在带噪嵌入下进行微调,其在 AlpacaEval 上的表现从 29.8% 提升至 64.7%(见图 1)——实现了约 35 个百分点的惊人提升(Touvron et al., 2023b;Dubois et al.,