In2Core: Leveraging Influence Functions for Coreset Selection in Instruction Finetuning of Large Language Models

📄 arXiv: 2408.03560v2 📥 PDF

作者: Ayrton San Joaquin, Bin Wang, Zhengyuan Liu, Nicholas Asher, Brian Lim, Philippe Muller, Nancy F. Chen

分类: cs.LG, stat.ML

发布日期: 2024-08-07 (更新: 2024-10-03)

备注: EMNLP 2024 - Findings


💡 一句话要点

In2Core:利用影响函数进行大语言模型指令微调中的核心集选择

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

关键词: 大语言模型 指令微调 核心集选择 影响函数 模型优化

📋 核心要点

  1. 大语言模型微调成本高昂,参数量大且需要大量数据,开源社区面临计算资源瓶颈。
  2. In2Core算法通过分析训练和评估样本与模型的相关性来选择核心集,评估模型内部梯度以估计训练点贡献。
  3. 实验表明,In2Core算法在指令微调中仅使用50%的训练数据即可达到相似的性能。

📝 摘要(中文)

尽管大型语言模型(LLMs)取得了显著进展,但由于其庞大的参数量和模型泛化所需的大量数据,微调的成本仍然很高。计算资源的可用性仍然是开源社区面临的障碍。为了解决这个问题,我们提出了In2Core算法,该算法通过分析训练样本和评估样本与已训练模型之间的相关性来选择核心集。特别地,我们评估模型的内部梯度来估计这种关系,旨在对每个训练点的贡献进行排序。为了提高效率,我们提出了一种优化方法,用减少的层数计算影响函数,同时实现相似的精度。通过将我们的算法应用于LLM的指令微调数据,我们仅使用50%的训练数据即可获得相似的性能。同时,使用影响函数分析模型对特定测试样本的覆盖率可以为训练集对这些测试点的覆盖率提供可靠且可解释的信号。

🔬 方法详解

问题定义:论文旨在解决大型语言模型指令微调过程中数据量大、计算成本高的问题。现有方法通常需要大量的训练数据才能达到理想的性能,这对于计算资源有限的场景(如开源社区)构成了挑战。因此,如何在保证模型性能的前提下,减少训练数据量,降低计算成本,是本研究要解决的核心问题。

核心思路:论文的核心思路是利用影响函数(Influence Function)来评估每个训练样本对模型性能的影响,并选择对模型性能提升贡献最大的样本组成核心集。通过分析训练样本和评估样本与已训练模型之间的相关性,可以识别出对模型泛化能力至关重要的样本。这样,就可以在训练过程中只使用这些核心样本,从而减少计算量和存储需求。

技术框架:In2Core算法的技术框架主要包含以下几个阶段:1) 使用部分数据训练一个初始的LLM模型。2) 计算训练集中每个样本的影响函数,评估其对模型在验证集上的性能影响。3) 根据影响函数的值对训练样本进行排序,选择影响最大的样本组成核心集。4) 使用核心集对LLM进行微调。此外,论文还提出了一种优化方法,通过减少计算影响函数所需的层数来提高效率。

关键创新:论文的关键创新在于将影响函数应用于大语言模型指令微调中的核心集选择。与传统的随机抽样或基于规则的抽样方法相比,In2Core算法能够更准确地识别出对模型性能至关重要的训练样本。此外,论文提出的优化方法,通过减少计算影响函数所需的层数,显著提高了算法的效率,使其更适用于大规模数据集。

关键设计:在计算影响函数时,论文评估模型的内部梯度来估计训练样本与评估样本之间的关系,旨在对每个训练点的贡献进行排序。为了提高效率,论文提出了一种优化方法,用减少的层数计算影响函数,同时实现相似的精度。具体的参数设置和损失函数选择取决于所使用的LLM模型和指令微调任务。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,In2Core算法在指令微调任务中,仅使用50%的训练数据即可达到与使用全部数据相似的性能。这表明In2Core算法能够有效地选择出对模型性能至关重要的核心样本,从而显著降低计算成本和存储需求。具体的性能提升幅度取决于所使用的LLM模型和指令微调任务。

🎯 应用场景

In2Core算法可应用于各种需要对大型语言模型进行指令微调的场景,尤其适用于计算资源有限的场景,如开源社区和移动设备。该算法可以降低微调成本,提高模型训练效率,并促进大语言模型在更广泛领域的应用。此外,通过分析影响函数,可以更好地理解训练数据对模型性能的影响,为数据选择和模型优化提供指导。

📄 摘要(原文)

Despite advancements, fine-tuning Large Language Models (LLMs) remains costly due to the extensive parameter count and substantial data requirements for model generalization. Accessibility to computing resources remains a barrier for the open-source community. To address this challenge, we propose the In2Core algorithm, which selects a coreset by analyzing the correlation between training and evaluation samples with a trained model. Notably, we assess the model's internal gradients to estimate this relationship, aiming to rank the contribution of each training point. To enhance efficiency, we propose an optimization to compute influence functions with a reduced number of layers while achieving similar accuracy. By applying our algorithm to instruction fine-tuning data of LLMs, we can achieve similar performance with just 50% of the training data. Meantime, using influence functions to analyze model coverage to certain testing samples could provide a reliable and interpretable signal on the training set's coverage of those test points.