【转载】用于高效大语言模型对齐的RLHF潜在继任者,以及卷积神经网络的复兴

原文地址:A Potential Successor to RLHF for Efficient LLM Alignment and the Resurgence of CNNs,by Sebastian Raschka, on 2023-11-04

用于高效大语言模型对齐的RLHF潜在继任者,以及卷积神经网络的复兴

从视觉Transformer到创新的大语言模型微调技术,过去一个月AI社区研究氛围活跃,涌现了大量有意思的研究成果。

以下是本文将解读的核心研究亮点:

  • 在《规模化下卷积神经网络与视觉Transformer性能相当》(ConvNets Match Vision Transformers at Scale)一文中,Smith等人投入大量计算资源,对卷积神经网络(CNN)与视觉Transformer(ViT)展开了全面对比,挑战了ViT在图像分类任务中性能普遍优于CNN的认知。
  • Mistral 7B论文介绍了一款小巧却强大的语言模型:尽管参数量仅70亿、规模相对不大,但在各类基准测试中,它的表现超过了参数量更大的模型,比如130亿参数的Llama 2。这一惊艳的表现很大程度上可能得益于其独特的训练数据。
  • 《Zephyr:语言模型对齐的直接蒸馏》(Zephyr: Direct Distillation of LM Alignment)提出了全新的语言模型训练思路,展示了Zephyr 7B模型在对话基准与知识基准上的出色表现。该研究采用了蒸馏型直接偏好优化(DPO),其复杂度远低于人类反馈强化学习(RLHF)。
  • 在《NEFTune:噪声嵌入提升指令微调效果》(NEFTune: Noisy Embeddings Improve Instruction Finetuning)一文中,Jain、Chiang、Wen、Kirchenbauer等人提出了一种简单直接的方法来提升语言模型性能:向词元嵌入中注入均匀随机噪声。这项被称为NEFTune的技术被证实能显著提升对话任务的表现,且不会损害问答任务中的知识能力。

附言:关注月度研究亮点的读者可能会发现,我调整了AI研究论文亮点栏目的呈现形式:精选少数几篇论文进行更详细的摘要与探讨,同时补充了20余篇其他引起我兴趣的论文的极简摘要。希望大家喜欢这个新格式!

规模化下卷积神经网络与视觉Transformer性能相当

https://arxiv.org/abs/2310.16764 ,研究者投入了最高达11万TPU小时的计算预算,对ViT与CNN进行了公平的对比。

研究结果表明:当CNN的预训练计算预算与ViT的常用预训练预算相近时,CNN的性能可以与ViT持平。为此,他们在JFT数据集的40亿张标注图像上进行预训练,随后在ImageNet上对模型进行微调。

figure01
标注图出自:https://arxiv.org/abs/2310.16764

就我个人观察而言,微调ViT比微调CNN更容易获得不错的图像分类效果。比如小型ViT的相关内容见 https://magazine.sebastianraschka.com/p/accelerating-pytorch-model-training 。以我的教学经验来看,用预训练CNN要取得这么好的效果一直很难。现在回头看,这可能是因为ViT的预训练计算预算更充足。

推理性能

我希望论文能探讨推理性能这一方面。虽然微调后的CNN能追上微调后ViT的性能,但我很好奇,在论文所用的完全相同的模型下,二者在显存占用、推理速度上各有什么优势。

不过这个分析可能也有失公允,因为ViT架构相对CNN而言还很新,CNN已经经过了多年的深度优化。同时我也理解,这类研究超出了这篇论文的范围——如果同时考虑TPU和GPU,研究内容会相当庞杂。比如,TPU对ViT中常见的矩阵乘法优化更好,而GPU对卷积运算的优化更出色。

分类之外的场景

尽管这篇论文的核心结论——规模化下CNN能追上ViT的性能——非常有意思,但论文只聚焦于图像分类任务。一个很自然的问题是:这一结论是否也适用于目标检测和图像分割?这会是很有价值的后续研究方向。

论文参考信息
《规模化下卷积神经网络与视觉Transformer性能相当》,作者:Smith、Brock、Berrada、De(10月25日),https://arxiv.org/abs/2310.16764

Mistral 7B

https://arxiv.org/abs/2310.06825 介绍了一款70亿参数的新型“小”大语言模型。这篇论文的技术细节相对较少,但仍然值得在这里介绍,因为开源的Mistral 7B大语言模型是过去几周最热门的模型之一。此外,Mistral 7B基础模型也是下一节要介绍的Zephyr 7B的微调基底。

Mistral的表现超越其体量

Mistral 7B如此受欢迎的核心原因是:在绝大多数基准测试中,它的表现都优于参数量几乎是它两倍的130亿参数Llama 2模型。

figure02
标注图出自:https://arxiv.org/abs/2310.06825

它表现如此出色的具体原因尚不清楚,但很可能与训练数据有关。Llama 2和Mistral都没有公开训练数据,因此我们只能推测。

架构层面,该模型和Llama 2一样采用了分组查询注意力。Mistral架构一个有意思的新增设计是滑动窗口注意力,用于节省显存、提升计算吞吐量,从而加快训练速度。(滑动窗口注意力此前已在 https://arxiv.org/abs/1904.10509https://arxiv.org/abs/2004.05150 中被提出。)

滑动窗口注意力

Mistral采用的滑动窗口注意力机制,本质上是一个固定大小的注意力块:当前词元只能关注到前面特定数量的词元,而非所有之前的词元,如下图所示。

figure03
标注图出自:https://arxiv.org/abs/2310.06825

在70亿参数的Mistral中,注意力块的大小为4096个词元,研究者训练模型时支持的上下文长度最高可达10万词元。

举个具体的例子:在常规自注意力机制中,模型处理第50000个词元时,可以关注前面全部49999个词元;而在滑动窗口自注意力中,Mistral模型只能关注第45904到50000个词元(因为50000 – 4096 = 45904)。

不过需要注意的是,滑动窗口注意力主要是让模型能处理更长的序列,本身并不会提升基准测试的性能。(绝大多数基准测试要么是选择题,要么只需要短答案。)

换句话说,滑动窗口注意力主要用于提升计算效率。Mistral能超越更大的Llama 2模型,大概率不是因为滑动窗口注意力,而是在采用了滑动窗口注意力的前提下依然实现了反超。

论文参考信息
《Mistral 7B》,作者:Jian、Sablayrolles、Mensch、Bamford等人(10月10日),https://arxiv.org/abs/2310.06825

Zephyr:语言模型对齐的直接蒸馏

https://arxiv.org/abs/2310.16944 介绍了Zephyr 7B,它是目前最受关注的开源大语言模型之一,原因有两点:

  1. Zephyr 7B在对话基准和知识基准上,都超越了同体量模型,甚至超过了多个参数量更大的模型。
  2. 作者采用完全自动化的直接偏好优化(DPO)训练Zephyr,其复杂度远低于人类反馈强化学习(RLHF)。

Zephyr的性能表现

在介绍论文中的DPO与蒸馏流程之前,我们先来看看Zephyr的性能表现。

作者在基准测试中选取了各类代表性的大语言模型,涵盖了经蒸馏监督学习训练的70亿参数模型,到经RLHF训练的700亿参数模型。

https://arxiv.org/abs/2306.05685https://tatsu-lab.github.io/alpaca_eval/ 是用于评估大语言模型对话能力的基准。如下表所示,70亿参数的Zephyr模型在同体量模型中表现最优。更令人惊艳的是,在MT-Bench基准上,Zephyr的表现甚至超过了参数量是它10倍的700亿参数Llama 2对话模型。

figure04
标注图出自Zephyr论文,https://arxiv.org/abs/2310.16944

RLHF、DPO这类对齐技术通常聚焦于提升大语言模型的指令遵循能力,同时优化其有用性(对Llama 2而言还包括安全性)。但指令遵循能力的提升,有时会对大语言模型的知识能力产生负面影响。因此,作者在另一项基准测试中验证了Zephyr也具备顶尖的知识能力——测试采用Hugging Face开源大语言模型排行榜(https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard )中的选择题任务,结果如下表所示。

figure05
标注图出自Zephyr论文,https://arxiv.org/abs/2310.16944

蒸馏

与RLHF及其他近端策略优化方法不同,本文提出的dDPO方法不需要人工标注与采样——dDPO是一套完全自动化、端到端的微调流水线。

蒸馏过程是让更小的目标(学生)大语言模型向更大的现有大语言模型(教师)学习。在本研究中,作者在两个环节使用了大语言模型生成的数据:

  1. 创建用于监督微调的数据集(类似自指令方法);
  2. 对响应进行采样与排序,收集偏好数据用于对齐微调。

下一节我们将详细解析dDPO流程。

直接偏好优化

本研究中,研究者采用了蒸馏型直接偏好优化(dDPO)。在介绍蒸馏部分之前,我们先明确DPO的定义。DPO是RLHF的替代方案,它直接基于奖励训练模型,与RLHF的思路不同。(关于RLHF的更多细节,可以参考我的专题文章 https://magazine.sebastianraschka.com/p/llm-training-rlhf-and-its-alternatives

figure06
标注图出自《直接偏好优化:你的语言模型本质上就是奖励模型》论文(https://arxiv.org/abs/2305.18290

Zephyr采用DPO方法,并且完全基于大语言模型(通过GPT-4)生成的数据进行训练。这种完全不引入人工参与的方法能取得这么好的效果,非常令人惊叹。

figure07
Zephyr微调采用的三步dDPO流程,标注图出自Zephyr论文,https://arxiv.org/abs/2310.16944

局限性

这是一篇非常亮眼的论文,但我认为MT-Bench和AlpacaEval基准可能存在潜在偏差——这两个基准都使用GPT-4进行偏好评估。而dDPO流程中也用GPT-4做偏好排序,因此AlpacaEval和MT-Bench的结果很可能偏乐观。如果能看到针对Zephyr模型的人类偏好评估会很有意思(不过这类研究成本很高,我也理解作者为什么没有做)。

需要注意的是,这篇论文的核心目标是打造小型高效的大语言模型,使其性能超过经RLHF训练的更大模型(比如700亿参数的Llama 2对话模型)。但蒸馏方法大概率不足以培育出全新的顶尖大语言模型(比如GPT-4的继任者)。由于该方法的数据来自GPT-4,我推测GPT-4会成为该模型性能的天花板。

不过,(不做蒸馏的)DPO能否完全替代RLHF用于新模型的全流程开发,仍然值得期待。

总结

这篇论文还有很多有意思的洞见和消融实验,受文章篇幅所限我没有全部展开。比如读者可能会好奇:为什么dDPO是三步流程,第一步还要做监督微调?能不能跳过第一步,只用第2、3步的DPO训练模型?答案是:如果没有第一步的监督微调,模型的表现会非常差。

这是一篇极具价值的论文,我预计它会成为高效训练与对齐大语言模型的新一代参考方法。

论文参考信息
《Zephyr:语言模型对齐的直接蒸馏》,作者:Tunstall、Beeching、Lambert、Rajani等人(10月25日),https://arxiv.org/abs/2310.16944

NEFTune:噪声嵌入提升指令微调效果

我们通常通过优化基础模型、扩大数据集规模、提升数据质量来提升大语言模型的微调效果(下一期《Ahead of AI》会详细讨论这点)。而在 https://arxiv.org/abs/2310.05914 中,研究者尝试了另一种更简单的思路:向词元嵌入中注入均匀随机噪声。

有意思的是,向词元嵌入加入随机噪声后,模型在AlpacaEval上的性能大幅提升,如下图所示。

figure08
标注图出自:https://arxiv.org/abs/2310.05914

https://tatsu-lab.github.io/alpaca_eval/ 是一项基准测试,它通过GPT-4来判断基础模型和微调模型哪个的响应更好。这类自动化的大语言模型基准解读需要谨慎,因为哪怕是格式上的微小变化,都可能导致性能波动。此外,GPT-4的偏好分析也会受回复长度的影响(GPT-4通常更偏好更长的回复)。不过在本研究中,研究者通过人类评估者复现了实验结果,说明这一效果是真实存在的。

那NEFTune在Hugging Face OpenLLM排行榜这类选择题问答任务上表现如何?结果显示,常规微调和经NEFTune微调的模型性能持平,如下图所示,说明NEFTune训练不会造成知识能力的下降。

figure09
标注图出自:https://arxiv.org/abs/2310.05914

NEFTune对AlpacaEval这类对话任务性能的提升,很可能源于过拟合的减少。比如研究者发现,NEFTune会提高训练集损失,同时降低测试集损失。

上述实验都是在全量微调的条件下完成的。不过这种噪声注入方法也可以和目前最主流的微调技术搭配使用,比如LoRA和QLoRA。在QLoRA场景下,NEFTune也有正向效果,但幅度比全量微调更小,如下表所示。

figure10
标注表格出自:https://arxiv.org/abs/2310.05914

随机噪声注入可以看作一种简单的数据增强方式,而数据增强通常用于减少过拟合。如果能和其他减少大语言模型过拟合的技术做对比研究会很有意思,比如提高权重衰减率,或者提高适配器层的丢弃率。QLoRA通常采用0.05的丢弃率,而它的效果更弱,这一点也能支撑上述假设。

尽管我平时更偏好使用QLoRA做微调——因为相比全量微调,它能让我微调参数量大得多的模型——但我仍然觉得NEFTune技术非常有吸引力。注入随机噪声实现起来很简单,本质上只是微调大语言模型时多了一个配置项(通过超参数控制噪声的幅度)。

论文参考信息
《NEFTune:噪声嵌入提升指令微调效果》,作者:Jain、Chiang、Wen、Kirchenbauer等人(2023年10月9日),https://arxiv.org/abs/2310.05914

其他值得关注的研究论文

  • 《对齐天花板:人类反馈强化学习中的目标错配》,作者:Lambert、Calandra(10月31日),https://arxiv.org/abs/2311.00168
    本文探讨了过度使用人类反馈强化学习(RLHF)带来的问题:会导致模型因偏差的安全考量而回避用户请求、行为缺乏灵活性、回复风格单调,同时还对奖励模型的有效性、当前这类模型评估工具的准确性提出了质疑。

  • 《骨干网络之争:预训练模型在计算机视觉任务上的大规模对比》,作者:Goldblum、Souri、Ni、Shu等人(10月30日),https://arxiv.org/abs/2310.19909
    与《规模化下卷积神经网络与视觉Transformer性能相当》的结论一致,本文作者发现,在大规模数据集上以监督方式预训练的卷积神经网络,在很多任务上的表现仍然优于预训练的视觉Transformer。

  • 《FP8-LM:训练FP8大语言模型》,作者:Peng、Wu、Wei、Zhao等人(10月27日),https://arxiv.org/abs/2310.18313
    作者提出了一套全新的FP8自动混合精度框架用于大语言模型训练,与常规的BFloat16框架相比,显存占用降低42%,训练速度提升64%,同时不损失模型精度,也不需要调整超参数。

  • 《CodeFusion:面向代码生成的预训练扩散模型》,作者:Singh、Cambronero、Gulwani、Le等人(10月26日),https://arxiv.org/abs/2310.17680
    研究者提出了一个7500万参数的模型,在绝大多数代码基准上,性能都超过了1750亿参数的GPT-3模型,以及专门针对代码优化的155亿参数StarCoder模型。

  • 《检测大语言模型的预训练数据》,作者:Shi、Ajith、Xia、Huang等人(10月25日),https://arxiv.org/abs//2310.16789
    本文深入探讨了判断黑盒模型是否在特定文本(比如受版权保护的书籍)上训练过的难题,并提出了一种方法,虽不完美,但相比之前的技术提升了7.4%。

  • 《ALCUNA:当大语言模型遇见新知识》,作者:Yin、Huang、Wan(10月23日),https://arxiv.org/abs/2310.14820
    研究者针对“大语言模型处理新知识的能力”这一评估空白,提出了新的基准测试,结果显示大语言模型在结合新生成知识与已有内部知识进行推理时表现不佳。

  • 《对比偏好学习:无需强化学习的人类反馈学习》,作者:Hejna、Rafailov、Sikchi、Finn等人(10月20日),https://arxiv.org/abs/2310.13639
    本文提出了对比偏好学习(CPL):一种更简单的离策略算法,作为RLHF的替代方案。

  • 《长文本问答中检索增强的理解研究》,作者:Chen、Xu、Arora、Choi(10月18日),https://arxiv.org/abs/2310.12150
    本研究为检索增强对大语言生长文本生成的影响提供了新视角,总结了长文本生成的归因模式,以及归因错误的主要成因。

  • 《大语言模型能解释自身吗?大语言模型自解释现象研究》,作者:Huang、Mamidanna、Jangam、Zhou等人(10月17日),https://arxiv.org/abs/2310.11207
    研究结果表明:像ChatGPT这类经过人类对话指令微调、会输出带自解释的“有用”回复的大语言模型,生成的解释质量与传统模型可解释性技术相当,且生成成本更低。

  • 《BitNet:面向大语言模型的可扩展1比特Transformer》,作者:Wang、Ma、Dong、Huang等人(10月17日),https://arxiv.org/abs/2310.11453
    本研究提出了BitNet——一套面向大语言模型的可扩展、稳定的1比特Transformer架构,核心是用BitLinear层替代常规的nn.Linear层,支持从头训练1比特权重的模型;相比8比特量化方法和FP16 Transformer基线,它在保持竞争力性能的同时,显著降低了显存占用与能耗。

  • 《Llemma:开源数学大语言模型》,作者:Azerbayev、Schoelkopf、Paster、Dos Santos等人(10月16日),https://arxiv.org/abs/2310.10631
    本文介绍了数学大语言模型Llemma,它在MATH基准上的表现超过现有模型,还支持形式化定理证明(70亿与340亿参数版本、数据集、代码均已开源)。

  • 《LoftQ:感知LoRA微调的大语言模型量化方法》,作者:Li、Yu、Liang、He等人(10月12日),https://arxiv.org/abs/2310.08659
    LoftQ是一套全新的量化框架,将量化与预训练模型的LoRA微调相结合,通过提供合适的低秩初始化提升量化模型的泛化能力,有效缩小了全量微调与LoRA微调在下游任务上的性能差距。

  • 《大语言模型事实性综述:知识、检索与领域特性》,作者:Wang、Liu、Yue、Tang等人(10月11日),https://arxiv.org/abs/2310.07521
    本综述梳理了大语言模型输出事实错误的问题,评估了大语言模型事实性的评测方法(重点介绍核心指标与基准),并探讨了提升大语言模型事实性的领域专属策略。

  • 《RLHF对大语言模型泛化性与多样性的影响研究》,作者:Kirk、Mediratta、Nalmpantis、Luketina等人(10月10日),https://arxiv.org/abs/2310.06452
    这项针对RLHF微调各阶段的全面分析表明:尽管RLHF能带来更好的分布外(OOD)泛化能力(尤其是训练与测试分布差异较大时),但与监督微调相比,它会显著降低输出的多样性。

  • 《OpenWebMath:高质量数学网页开源数据集》,作者:Paster、Dos Santos、Azerbayev、Ba(10月10日),https://arxiv.org/abs/2310.06786
    本文介绍了OpenWebMath:一个源自Common Crawl、包含147亿词元的数学网页数据集。实验表明,在该数据集上训练的语言模型,性能远超在20倍以上通用语言数据上训练的模型,凸显了代码、数学这类高质量、专业化词元对提升大语言模型推理能力的重要性。

  • 《LongLLMLingua:通过提示压缩加速并优化长上下文场景下的大语言模型》,作者:Jiang、Wu、Luo、Li等人(10月10日),https://arxiv.org/abs/2310.06839
    LongLLMLingua是一种提示压缩方法,旨在提升大语言模型对关键信息的关注度,同时解决长上下文场景下成本高、延迟高、性能差三大挑战。

  • 《潜一致性模型:少步推理生成高分辨率图像》,作者:Luo、Tan、Huang、Li等人(10月6日),https://arxiv.org/abs/2310.04378
    作者基于一致性模型的理念提出了潜一致性模型(LCM),用于加速Stable Diffusion这类预训练潜扩散模型的生成过程,还包含针对自定义图像数据集的微调技术。

  • 《思维传播:大语言模型复杂推理的类比方法》,作者:Yu、He、Ying(10月6日),https://arxiv.org/abs/2310.03965
    思维传播通过求解相关的类比问题,再将其解法迁移到新问题上,以此提升大语言模型的复杂推理能力。

  • 《检索遇上长上下文大语言模型》,作者:Xu、Ping、Wu、McAfee等人(10月4日),https://arxiv.org/abs/2310.03025
    研究者发现,4K上下文窗口搭配检索增强,在长上下文任务上的表现可以与经位置插值优化的16K上下文窗口微调模型相当,同时计算效率更高。

  • 《三思而后言:用暂停词元训练语言模型》,作者:Goyal、Ji、Rawat、Menon等人(10月3日),https://arxiv.org/abs/2310.02226
    在大语言模型的输入前缀后加入一串可学习的“暂停词元”,延迟输出直到最后一个暂停词元处理完毕;在预训练和微调阶段都应用该方法,能够提升模型性能。

  • 《面向近乎无限上下文的分块Transformer环形注意力》,作者:Liu、Zaharia、Abbeel(10月3日),https://arxiv.org/abs/2310.01889
    环形注意力将自注意力的计算并行分布到多设备上处理长序列,大幅提升了大语言模型的显存效率。

  • 《RA-DIT:检索增强双指令微调》,作者:Lin、Chen、Chen、Shi等人(10月2日),https://arxiv.org/abs/2310.01352
    检索增强双指令微调(RA-DIT)是一种全新的高效微调方法,可作为现有检索增强大语言模型方案的替代。

  • 《面向混合专家模型训练的稀疏反向传播》,作者:Liu、Gao、Chen(10月1日),https://arxiv.org/abs/2310.00811
    SparseMixer提出了一套适配混合专家模型稀疏计算的可扩展梯度估计器,通过二阶ODE求解器实现精准的梯度近似,在预训练、机器翻译等任务上将训练收敛速度最高提升2倍。

  • 《GrowLength:通过逐步增长训练长度加速大语言模型预训练》,作者:Jin、Han、Yang、Jiang(10月1日),https://arxiv.org/abs/2310.00576
    本文提出的GrowLength方法通过逐步增加序列长度来加速大语言模型预训练,从128逐步扩展到4096,有效提升了训练效率。

本杂志是个人兴趣驱动的项目,无直接稿酬。如果您愿意支持我,可以考虑购买 https://sebastianraschka.com/books 上的书籍。如果您觉得这些书籍富有洞见、有所帮助,欢迎推荐给您的朋友和同事。

figure11
https://www.amazon.com/Machine-Learning-PyTorch-Scikit-Learn-scikit-learn-ebook-dp-B09NW48MR1/dp/B09NW48MR1/ , https://nostarch.com/machine-learning-and-ai-beyond-basics , 以及 http://mng.bz/M96o

您的支持对我意义重大!非常感谢!

Leave a Reply

Your email address will not be published. Required fields are marked *

*