XFT: Unlocking the Power of Code Instruction Tuning by Simply Merging Upcycled Mixture-of-Experts

📄 arXiv: 2404.15247v2 📥 PDF

作者: Yifeng Ding, Jiawei Liu, Yuxiang Wei, Terry Yue Zhuo, Lingming Zhang

分类: cs.CL, cs.AI, cs.LG, cs.SE

发布日期: 2024-04-23 (更新: 2024-06-06)

🔗 代码/项目: GITHUB


💡 一句话要点

提出XFT以提升代码指令调优的性能极限

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码生成 指令调优 专家混合模型 稀疏回收 机器学习

📋 核心要点

  1. 现有的稀疏回收方法未能有效提升指令调优的性能,导致代码LLM的潜力未被充分挖掘。
  2. XFT通过引入共享专家机制和路由权重归一化策略,优化了稀疏回收过程,从而提升了指令调优效果。
  3. 在实验中,XFT在多个基准测试上显著提升了性能,尤其是在HumanEval+上提高了13%的SFT效果,展示了其广泛的适用性。

📝 摘要(中文)

我们介绍了XFT,这是一种简单而强大的训练方案,通过简单地合并回收的专家混合模型(MoE),释放指令调优代码大型语言模型(LLMs)的性能极限。尽管传统的稀疏回收未能改善指令调优,XFT引入了一种共享专家机制和新颖的路由权重归一化策略,显著提升了指令调优效果。在对回收的MoE模型进行微调后,XFT引入了一种可学习的模型合并机制,将回收的MoE模型编译回稠密模型,以仅使用稠密模型计算实现MoE级别的性能。通过将XFT应用于一个13亿参数的模型,我们创造了一个新的最先进的小型代码LLM(<3B),在HumanEval和HumanEval+上的pass@1分别为67.1和64.6。使用相同的数据和模型架构,XFT在HumanEval+上提升了13%的监督微调(SFT)效果,并在MBPP+、MultiPL-E和DS-1000上实现了2%到13%的持续改进,展示了其广泛的适用性。

🔬 方法详解

问题定义:论文旨在解决现有稀疏回收方法在指令调优中无法有效提升性能的问题,导致代码LLM的潜力未被充分发挥。

核心思路:XFT的核心思路是通过合并回收的MoE,引入共享专家机制和路由权重归一化策略,以优化稀疏回收过程,从而提升指令调优的效果。

技术框架:整体架构包括稀疏回收的MoE模型微调、共享专家机制的引入、路由权重的归一化以及最终的可学习模型合并机制,确保在稠密模型计算中实现MoE级别的性能。

关键创新:XFT的关键创新在于共享专家机制和路由权重归一化策略的结合,这与传统的稀疏回收方法有本质区别,显著提升了指令调优的效果。

关键设计:在模型设计中,XFT采用了可学习的模型合并机制,确保在保持稀疏MoE性能的同时,能够在稠密模型计算中实现高效的性能输出。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

XFT在实验中表现出色,特别是在HumanEval和HumanEval+上分别达到了67.1和64.6的pass@1,显著超越了现有基线。此外,在HumanEval+上提升了13%的SFT效果,并在MBPP+、MultiPL-E和DS-1000上实现了2%到13%的持续改进,展示了其广泛的适用性和优越性。

🎯 应用场景

该研究的潜在应用领域包括代码生成、自动化编程助手和智能编程工具等。XFT的创新方法可以帮助开发更高效的代码LLM,提升开发者的生产力,并推动人工智能在软件开发中的应用。未来,XFT可能会影响更多领域的指令调优技术,促进智能系统的进步。

📄 摘要(原文)

We introduce XFT, a simple yet powerful training scheme, by simply merging upcycled Mixture-of-Experts (MoE) to unleash the performance limit of instruction-tuned code Large Language Models (LLMs). While vanilla sparse upcycling fails to improve instruction tuning, XFT introduces a shared expert mechanism with a novel routing weight normalization strategy into sparse upcycling, which significantly boosts instruction tuning. After fine-tuning the upcycled MoE model, XFT introduces a learnable model merging mechanism to compile the upcycled MoE model back to a dense model, achieving upcycled MoE-level performance with only dense-model compute. By applying XFT to a 1.3B model, we create a new state-of-the-art tiny code LLM (<3B) with 67.1 and 64.6 pass@1 on HumanEval and HumanEval+ respectively. With the same data and model architecture, XFT improves supervised fine-tuning (SFT) by 13% on HumanEval+, along with consistent improvements from 2% to 13% on MBPP+, MultiPL-E, and DS-1000, demonstrating its generalizability. XFT is fully orthogonal to existing techniques such as Evol-Instruct and OSS-Instruct, opening a new dimension for improving code instruction tuning. Codes are available at https://github.com/ise-uiuc/xft.