【通览一百个大模型】FLAN(Google)

FLAN是Google推出的一种大模型,它通过指令微调(instruction-tuning)在62个NLP任务上进行训练,尤其适用于零样本评估。模型基于LAMDA-PT,使用137B参数的Transformer结构,训练中采用了Adafactor优化器。FLAN在未见过的任务上展示出良好的性能,特别是在多样性的NLP任务集群中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【通览一百个大模型】FLAN(Google)

作者:王嘉宁,本文章内容为原创,仓库链接:https://github.com/wjn1996/LLMs-NLP-Algo

订阅专栏【大模型&NLP&算法】可获得博主多年积累的全部NLP、大模型和算法干货资料大礼包,近200篇论文,300份博主亲自撰写的markdown笔记,近100个大模型资料卡,助力NLP科研、学习和求职。


FLAN大模型基本信息资料卡

序号大模型名称归属推出时间规模预训练语料评测基准模型与训练方法开源论文模型地址相关资料
22FLANGoogle2022-02137B该模型不涉及到预训练部分,因此没有预训练语料。整理了62个NLP task、并划分了12种类型任务,用于测试在unseen task评测zero-shot性能。
如下图,深蓝色部分为训练集,浅蓝色部分为测试集。
image.png
基于LAMDA-PT(只有Pre-trained过程)模型进行instruction-tuning训练,训练目标为Causal LM。
在Instruction-tuning阶段,混合了所有数据集和每个数据集的随机样本示例,每个数据集的训练示例数量限制为30000。fine-tunine模型30000个step,每个step的batch size为8192,优化器为Adafactor,学习率3e-5,输入输出长度分别为1024和256。
FLAN论文未开源查看

Instruction-Tuning

概念:
Instruction-tuning——finetuning language models on a collection of tasks (more than 60 NLP tasks) described via instructions

本文提出一种基于instruction-tuning的方法叫做FLANFinetuned LAnguage Net)
评估方法:对所有的NLP task,根据其任务类型和目标划分若干个簇,随机挑选一个簇内的所有task作为评估,其他所有簇的task用于instruction-tuning

we group NLP tasks into clusters based on their task types and hold out each cluster for evaluation while instruction tuning FLAN on all other clusters.

如下图:
image.png
  首先在包括commonsense reasoning、machine translation、sentiment analysis等NLP task上进行微调,然后在从未见过的natural language inference任务上进行zero-shot evaluation

Instruction-tuning与Fine-tuning和Prompt-Tuning的对比:
image.png

  • Pretrain-Finetune:现在大规模语料上根据某一个(几个)训练目标进行预训练,然后主要针对某一个task进行微调;
  • Prompting(Prompt-based Fine-tuning):通用选择预训练语言模型,为每个样本生成一个prompt模板,并采用类似完形填空的模式,在某一个具体的task上微调;
  • Instruction-Tuning:在预训练语言模型的基础上,获得若干混合的NLP task上进行微调,然后在某一个具体的task上进行评估(zero-shot)

FLAN

  首先整理了62个NLP task,并进行了归类(cluster),如下图所示:
image.png

  • 可知,一共划分了12个cluster
  • 我们定义task表示一个数据集,例如RTE表示一个task;
  • 对于每个task,手动构建10个template,作为描述该任务的instruction;
  • 为了增加多样性,对于每个任务,我们包括多达3个“扭转任务”的模板;
  • 在混合的task上进行instruction-tuning,对于每个task,随机挑选template;

  例如下图,给定某个NLI任务的样本,构建与其有关的若干个template
image.png

  FLAN是在unseen task上进行zero-shot evaluation,那如何定义unseen task?

一个task T \mathcal{T} T对于FLAN是unseen的(即没有在instruction-tuning出现过),当且仅当这个task所属的clust的所有task都没有在instruction-tuning出现过。
In this work, we only consider task T \mathcal{T} T unseen at evaluation time if no tasks from any clusters that T \mathcal{T} T belongs to were seen during fine tuning.

  任务的目标主要分为classification和generation两种

  • generation:基于instruction-tuning的FLAN本质就是一个语言模型,输出部分即为free-text,因此对于纯生成式任务无需修改;
  • classification:先前工作通过添加template企图让模型生成出预设的几个label word,但是作者认为并不合理,因此在此基础上,添加了一个option;

模型训练:

  使用left-to-right(单向),只包含decoder部分的transformer模型,共计137B个参数,在未经处理的语料上(10%非英文,包含大量code,对话文本等),预训练的模型命名为BaseLM。

  在Instruction-tuning阶段,混合了所有数据集和每个数据集的随机样本示例。有些数据集有超过1000万个训练示例(例如,机器翻译),因此我们将每个数据集的训练示例数量限制为30000个。其他数据集很少有训练示例(例如,CommitmentBank只有250个),为了防止这些数据集被边缘化,我们采用示例-比例混合方案(examples-proportional mixing scheme,Raffel et al., 2020),混合率最大为3000。fine-tunine模型30000个step,每个step的batch size为8192,优化器为Adafactor,学习率3e-5,输入输出长度分别为1024和256,

  博客记录着学习的脚步,分享着最新的技术,非常感谢您的阅读,本博客将不断进行更新,希望能够给您在技术上带来帮助。


【大模型&NLP&算法】专栏

近200篇论文,300份博主亲自撰写的markdown笔记。订阅本专栏【大模型&NLP&算法】专栏,或前往https://github.com/wjn1996/LLMs-NLP-Algo即可获得全部如下资料:

  • 机器学习&深度学习基础与进阶干货(笔记、PPT、代码)
  • NLP基础与进阶干货(笔记、PPT、代码)
  • 大模型全套体系——预训练语言模型基础、知识预训练、大模型一览、大模型训练与优化、大模型调优、类ChatGPT的复现与应用等;
  • 大厂算法刷题;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华师数据学院·王嘉宁

$感谢支持$

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值