LESS项目详细介绍
项目概述
LESS(Selecting Influential Data for Targeted Instruction Tuning)是一个数据选择方法的研究项目,旨在通过选择有影响力的数据来引导特定能力的开发。该项目的代码库是为论文“LESS: Selecting Influential Data for Targeted Instruction Tuning”所编写,并在ICML 2024会议上发表。LESS项目的核心思想是,通过细致的数据选择来优化模型的目标指令调优效果。
安装说明
要使用LESS项目的代码库,首先需要安装特定的Python库。
-
第一步:确保你已经安装了PyTorch。可以通过运行以下命令来安装所需的PyTorch版本:
pip3 install torch==2.1.2 torchvision torchaudio
-
第二步:安装项目的其他依赖包。进入LESS目录并运行:
cd LESS pip install -r requirement.txt
-
第三步:在可编辑模式下安装
less
包,使其在开发环境中可用:pip install -e .
数据准备
LESS项目使用四个指令调优数据集进行训练:Flan v2, COT, Dolly和Open Assistant。此外,为了评估目的,还使用了三个附加的数据集:MMLU, TydiQA和BBH。处理后的数据可通过此链接获取。
数据选择流程
LESS项目包含一个四步的数据选择流程。
第一步:热身训练
为了提高数据选择的后续性能,项目从热身训练开始。这一阶段使用LoRA方法对完整数据集的一小部分进行训练。
第二步:构建梯度数据存储
在完成初步热身训练后,收集整个训练数据集的梯度。这个步骤涉及在每个检查点(checkpoint)获取训练数据的梯度,创建一个包含所有检查点和数据的梯度存储器。
第三步:任务数据选择
为特定下游任务选择数据。首先要准备特定于该任务的数据,并使用与训练时相同的指令调优格式。可以使用预定义脚本来获取验证数据的SGD梯度,然后计算每个训练数据的影响分数,并选择影响分数最高的数据点。
第四步:使用选定数据进行训练
在完成数据选择后,使用选定的数据对模型进行训练。可以根据需要选择进行LoRA训练或者完整参数微调。
评估
项目提供了详细的评估指南,可在评估文件夹中找到。按照说明操作,评估基于所选数据训练的模型性能。
支持与问题
如果在使用中遇到任何代码相关问题或疑问,可以随时联系作者孟舟(mengzhou@princeton.edu)。对于使用中遇到的问题或需要报告的bug,可以在GitHub上创建issue。请尽量详细描述问题,以便获得更好的帮助。
引用
如果在您的研究工作中用到LESS项目,请引用相关论文:
@inproceedings{xia2024less,
title={{LESS}: Selecting Influential Data for Targeted Instruction Tuning},
author={Xia, Mengzhou and Malladi, Sadhika and Gururangan, Suchin and Arora, Sanjeev and Chen, Danqi},
booktitle={International Conference on Machine Learning (ICML)},
year={2024}
}