《OPT-IML:Scaling Language Model Instruction MetaLearning through the Lens of Generalization》
《从泛化的角度使用指令元学习扩展语言模型》
开源模型
目前在hugging face上开源以下模型
其中175b的模型需要申请访问权限。
- OPT-IML训练数据 :trained on 1500 tasks with several tasks held-out for purposes of downstream evaluation;
- OPT-IML-Max 训练数据:trained on all ~2000 tasks
摘要
当前的指令微调取得了较好的效果,但微调的数据集如何选择?微调目标如何设计?对训练效果有怎样的影响?还缺乏一个统一的基准,因此本文主要有两点贡献:
- OPT-IML Bench;
一个大型的指令元学习(IML)基准,来自8个现有基准合并成的2000个NLP任务,并分为不同的任务类别; - OPT模型的更新版,通过指令微调/Prompt微调,效果更佳;
OPT-IML是OPT的指令微调版本,效果相比OPT 泛化能力更好
论文主要工作:
- step1 数据处理过程 :收集数据整理benchmark;
- step2 最佳实践: 在benchmark中进行指令调整的多方面的权衡和最佳做法,如微调任务和类别的不同采样方法,微调演示,以及用专门的数据集进行推理和对话的微调。
- step3 指令微调:利用实验中的最佳设置,我们训练并发布了基于OPT的OPT-IML 30B和175B指令调优模型,这些模型在五个评估基准上的表现强于OPT,并且与最近在单个基准上调优的指令调优模型具有竞争力。
1.前言
从8个源数据集中 建立1991个NLP任务,并分为100个任务类别;
如下图所示左侧是微调的数据集,右侧是评估数据集。该评估框架作为OPT-IML基准;
- 4个颜色代表4个任务类别
- 不同任务类别中 有多个任务
- 同一任务中有不同实例
1.扩展的多任务基准
不同的数据集可创建多个任务类别,每个任务类别中有不同的任务,每个任务由多个提示模板进行实例化。
2.1 任务整理
从以下8个数据集中下载数据
从已有基准中抽取不重复的任务,并随机抽取examples
2.2 基准合并
将所有的指令分为两大类,数据集级别(正负判断等) 和 实例级别
将数据转化为prompt数据格式即 Instructions 和Output ,并分为100多个类别
2.3 基准拆分
将基准拆分为训练集,验证集和测试集
2.4 任务提示构建
格式化数据,如果指令不以": "结尾,在指令和输出之间插入以下任意分隔符,防止仅使用:分隔符带来的过拟合。
3 指令微调
3.1 微调目标
将训练数据分为原山下文序列和目标序列,训练时仅预测目标序列的损失
3.2 填充和文档注意力
将注意力mask从三角形改为块状三角形mask,并在我们的实验中提高了稳定性和性能。
3.3 微调超参数
预处理
使用字节对编码(BPE)的GPT2字节级版本(用于unicode字符)对文本进行标记
词汇表大小为50272。
输入是由2048个连续token组成的序列。
训练
30B的模型在64个40GB的A100 gpu上进行了微调;
175B 的模型在 128 40GB A100s 上进行微调
4 指令微调的重要性是什么?
3个方面衡量模型泛化能力;
完全保留、部分保留和完全监督
4.1 实验设置
4.2 不同的任务混合率最大值的影响
4.3 不同基准比例的影响
4.4 扩大任务或类别的影响
4.5 指令微调的预训练效果
4.6 增加推理数据集的影响
4.7 增加对话数据的影响
4.8 元训练对情境学习的影响
5 OPT-Models
5.1 OPT评估
在14个标准任务集上对比OPT和OPT-IML模型;
平均而言,对于0-shot,30B和175BOPT-IML的模型比OPT提高了约6-7% 。
对于32-shot,我们看到30B模型的显著改进,175B上稍微有改进。
5.2 PromptSouce 评估
5.3 FLAN 评估
5.4 Super-NaturalInstructions评估
5.5 UnifiedSKG评估
参考链接
FlagAI仓库地址:https://github.com/BAAI-Open/FlagAI
OPT模型论文地址: https://arxiv.org/pdf/2205.01068.pdf
OPT-IML模型论文地址: https://arxiv.org/pdf/2212.12017.pdf
Github仓库地址: https://github.com/facebookresearch/metaseq