微信扫码
与创始人交个朋友
我要投稿
指令微调是引导语言模型落地、构建高性能对话模型的关键一步。针对目前开源的指令数据集质量低、覆盖领域少、数据信息不透明等问题,智源研究院推出了千万级指令微调数据集 Infinity Instruct。该数据集今年6月发布,近日完成了新一轮迭代,包括 Infinity-Instruct-7M 基础指令数据集和 Infinity-Instruct-Gen 对话指令数据集。
Infinity-Instruct-7M 包含 744 万条数学、代码、常识问答等领域的基础指令数据,用于进一步全面提升预训练模型的基础能力。Opencompass 测试结果显示,经过在 Infinity-Instruct-7M 数据集上的微调,Llama3.1-70B、Mistral-7B-v0.1 综合能力评价可基本对齐官方自己发布的对话模型,且 InfInstruct-7M-Mistral-7B 的综合评分超过了 GPT-3.5,InfInstruct-7M-Llama3.1-70B 已十分接近 GPT-4。
* 官方汇报结果
Infinity-Instruct-Gen 包含 149 万条合成的复杂指令,用于提升模型在各种真实对话场景中回复的鲁棒性。基于该数据,对经过 Infinity-Instruct-7M 增强的模型做进一步 SFT,即可取得超过官方对话模型的效果。而大多数的官方对话模型除了做基本的 SFT 外,还会做 DPO/RLHF 等对齐训练以提升模型的对话能力,产生额外的训练成本。
智源在 MTBench、AlpacaEval2、Arena-Hard 三个主流榜单上评测了 Infinity-Instruct 7M+Gen 对模型对话能力的增益,其中,AlpacaEval2 和 Arena-Hard 与真实人类评价榜单 Chatbot Arena 有很高的一致率,MTBench 则评测模型的多轮对话能力。
如下左图所示,InfInstruct-7M-Gen-Mistral-7B,InfInstruct-7M-Gen-Llama3.1-8B,InfInstruct-7M-Gen-Llama3.1-70B 等经过 Infinity Instruct 微调的模型已经超越了官方对话模型的性能。Arena-Hard 上 InfInstruct-7M-Gen-Llama3.1-70B (66) 超过了 Llama3.1-70B-Instruct(55.7) 和 Llama3.1-405B-Instruct (64.1)。此外,如右下图所示,AlpacaEval2.0 榜单上,InfInstruct-7M-Gen-Llama3.1-70B (46.1) 更是超过了 GPT4-0314 (35.3),非常接近 GPT4-1106 (50) 的水准,真正实现了 GPT-4 级别的对话能力。
Infinity Instruct 数据集今年 6 月在 Flopsera,Huggingface 等平台发布后,快速到达了 Huggingface Dataset 的 Trending 第一,且吸引大量基于 Infinity Instruct 的开源微调工作。
Infinity-Instruct 可在 Hugging Face、DataHub、Flopsera 等平台下载。
Hugging Face 提供了快速下载 Infinity-Instruct 系列数据集及模型的代码。
## 数据集下载
from datasets import load_dataset
dataset_7M = load_dataset('BAAI/Infinity-Instruct','7M',split='train')
dataset_Gen = load_dataset('BAAI/Infinity-Instruct','Gen',split='train')
## 模型下载
from transformers import AutoModelForCausalLM, AutoTokenizer
model_llama3_1_70B = AutoModelForCausalLM.from_pretrained("BAAI/Infinity-Instruct-7M-Gen-Llama3_1-70B",
torch_dtype=torch.bfloat16,
device_map="auto"
)
tokenizer_llama3_1_70B = AutoTokenizer.from_pretrained("BAAI/Infinity-Instruct-7M-Gen-Llama3_1-70B")
model_mistral_7B = AutoModelForCausalLM.from_pretrained("BAAI/Infinity-Instruct-7M-Gen-Mistral-7B",
torch_dtype=torch.bfloat16,
device_map="auto"
)
tokenizer_mistral_7B = AutoTokenizer.from_pretrained("BAAI/Infinity-Instruct-7M-Gen-Mistral-7B")
Infinity-Instruct 给每一条指令数据标注了语种、能力类型、任务类型、数据来源等信息,便于使用者根据自身需要筛选数据子集。
智源研究院搜集了 7500 万余条开源指令作为待选指令池,采用数据选择与指令合成两条途径快速迭代,构建高质量的基础、对话指令数据集,以填补开源对话模型与 GPT-4 之间的基础能力、对话能力差距。
对于基础指令数据集,筛选流程主要考虑训练数据集和目标数据集数据分布的对齐,基于DSIR的思路,在训练数据集上进行排序,选取训练集的子集,拟合目标数据集的分布。
对于对话指令数据集,Infinity-Instruct 首先采样了部分高质量的开源指令集,并为每条指令分配一组标签,描述完成指令所需的能力和知识。标签系统共有两个级别:
基于此系统,就能识别指令集的内容分布以及完成不同任务所需的能力,构建一个高质量的种子数据集。随后,Infinity-Instruct 参考 WizardLM 的方法对种子指令在广度、深度方向上进行扩展,并用 AI Agent 从指令合规性的角度剔除未能进化的数据。最后,进化后的指令作为初始输入,使用 AI Agent 扮演不同角色,为每条指令生成 2 至 4 轮对话。
为避免构造的数据存在自身重复、或与评测榜单重复的样本,Infinity-Instruct 对所有数据应用了 MinHash 进行去重。并基于 BGE 检索剔除了和 AlpacaEval、MT-Bench 等评测榜单重复的样本。
考虑到微调成本,项目使用 FlagScale 去掉训练样本中不必要的 pad,压缩样本量,同时应用模型切分、切分支持大模型在数百万量级指令数据集上的训练。初步测试可比传统微调框架,如 FastChat+Accelerate 快三倍以上。
Infinity Instruct 未来将开源基础、对话指令数据处理的全流程代码,以及模型训练代码。同时,智源将探索扩展 Infinity Instruct 数据策略到对齐、预训练阶段,支持语言模型构建全生命周期的高质量数据需求。
Infinity RLAIF: 基于 Infinity Instruct 标签体系以及生成指令构建了 50K 对齐数据的第一个版本,实验结果显示,Infinity-Gemma-2-9B-SimPO 在 AlpacaEval 上达到 73.4,在 Arena Hard 上达到 59.1。未来会进行更多对齐数据、算法的探索。
Infinity Math: 基于多个开源数学数据集构建了可无限扩增的数学领域指令数据集,其中 POT 指令数据可提升在多个 7B 的基础语言模型和基础代码模型的 zero-shot 数学能力 180%-510%,相关论文被 CIKM 2024 接收,欢迎引用。
@misc{zhang2024inifinitymath,
title={InfinityMATH: A Scalable Instruction Tuning Dataset in Programmatic Mathematical Reasoning},
author={Bo-Wen Zhang and Yan Yan and Lin Li and Guang Liu},
year={2024},
eprint={2408.07089},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2408.07089},
}
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-11
2024-07-11
2024-07-09
2024-09-18
2024-06-11
2024-07-23
2024-07-20
2024-07-12
2024-07-26
2024-07-23
2024-11-18
2024-11-16
2024-11-16
2024-10-31
2024-10-31
2024-10-27
2024-10-26
2024-10-25