SWIFT:一种可扩展的轻量级基础设施用于微调
https://arxiv.org/abs/2408.05517
Yuze Zhao, Jintao Huang, Jinghan Hu, Daoze Zhang, Zeyinzi Jiang, Zhikai Wu, Baole Ai, Ang Wang, Wenmeng Zhou 和 Yingda Chen
ModelScope团队,阿里巴巴集团
摘要
最近在大型语言模型(LLMs)和多模态大型语言模型(MLLMs)方面的发展,利用基于注意力的Transformer架构,实现了卓越的性能和泛化能力。它们已经涵盖了传统学习任务的许多领域。例如,基于文本的任务,如文本分类和序列标注,以及以前使用不同模型解决的多模态任务,如视觉问答(VQA)和光学字符识别(OCR),现在可以基于一个基础模型处理。因此,LLMs和MLLMs,尤其是基于Transformer架构的模型的训练和轻量级微调,变得尤为重要。鉴于这些迫切需求,我们开发了SWIFT,这是一种可定制的一站式大型模型基础设施。在支持300多个LLMs和50多个MLLMs的基础上,SWIFT成为开放源代码框架,为微调大型模型提供了最全面的支持。尤其是,它是第一个为MLLMs提供系统支持的训练框架。除了微调的核心功能外,SWIFT还整合了推理、评估和模型量化等后训练过程,以便在各种应用场景中快速采用大型模型。通过对各种训练技术的系统集成,SWIFT提供了有用的工具,如大型模型不同训练技术之间的基准比较。对于专门针对代理框架的微调模型,我们展示了通过在SWIFT上使用自定义数据集进行训练,可以在ToolBench排行榜上获得显著改善,在Act.EM指标上相较于各种基线模型提高了 5.2%−21.8%{5.2}\% - {21.8}\%5.2%−21.8% ,幻觉减少了 1.6%−14.1%{1.6}\% - {14.1}\%1.6%−14.1% ,平均性能提升 8%−17%8\% - {17}\%8%−17% 。
1 引言
在过去几年中,Transformer [50] 被广泛认可为大型模型的主导架构之一。在早期阶段,仅使用编码器的结构完成文本分类和序列标注等任务,以BERT[13]等模型作为典型例子。相反,编码器-解码器和仅解码器结构主要用于文本生成任务。相比之下,视觉模型通常采用ResNet架构处理视觉问答(VQA)、目标检测和图像分割等任务。这些早期的深度学习任务方法特征为不同任务使用不同的模型结构。
计算能力的丰富和结构化的训练数据使得基于Transformer的模型的潜力得以发挥,随着工业界开始超越为单一任务调优的模型。这一转变使得Transformer成为开放领域应用的优选架构。最显著的例子包括OpenAI的GPT模型[3, 47],以及M6 [35]和OFA [51]模型。这种进展突显了使用单一模型解决多个闭域任务的可行性。因此,利用大规模基础模型进行生成任务的范式已成为解决包括文本分类和序列标注在内的多项任务的新标准。注意力机制在使用单一基础模型来处理不同多模态任务时也得到了广泛的关注。Qwen-VL [2]、GLM4-V [20]、InternVL [7]和DiT模型 [44] 的发布都满足了这一趋势。这些基础模型在开放域图像-文本和视频-文本问答以及图像生成中表现出强大的能力。它们还展示了识别详细图像信息和执行边界框标注的潜力,取得了与之前闭域解决方案相当的结果。
在大型模型的发展过程中,开源社区发挥了关键作用。Hugging Face1{\text{Face}}^{1}Face1 和 ModelScope 2{}^{2}2 等平台是促进大型模型共享和发展的显著例子。Hugging Face于2017年推出,最初的任务是解决与BERT的PyTorch版本相关的问题。由此产生的Transformers库后来成为实施大型模型的事实标准。同时,Hugging Face训练器还支持多节点和多GPU并行训练方法,例如DeepSpeed和FSDP,使其成为最广泛使用的训练器之一。对于对齐技术, TRL3{\mathrm{ {TRL}}}^{3}TRL3 被引入以扩展Transformers的基础训练器类,并实现特定方法以支持直接偏好优化(DPO)[48]、优化奖励策略优化(ORPO)[24]和知识转移优化(KTO)[17]等技术。
由于大型模型参数众多且内存消耗高,其开箱即用的训练已成为AI普及的重大瓶颈。早期的解决方案,如前缀调优[33]、提示调优[31]和P-Tuning [39,40]\left\lbrack { {39},{40}}\right\rbrack[39,40] 开启了资源高效训练的篇章,但它们可能面临“知识遗忘”——这一现象描述的是微调后的LLMs可能失去其来自基础模型的一般能力。LoRA [25] 的引入显示了在训练过程中显著减少内存消耗的潜力,相比于全参数训练不损失模型的一般性。这使得开发者在使用更易于访问的硬件上开始在领域数据上进行高效训练。
随后,类似的技术不断被引入,如增强算法rsLoRA [28]、DoRA [37]、PISSA [41]、OLoRA [4]、LoRA+ [23]和LLaMA-Pro [52]等,提供了一系列用于高效微调的新技术。鉴于这些不同技术之间的巨大差异,开始出现统一训练接口的努力。例如,Hugging Fa