hengyuan

V1

2023/02/24阅读:67主题:嫩青

Flan-PaLM&T5

Title:Scaling Instruction-Finetuned Language Models

1.Motivation

  • 在 Pre-trained Model 上面进行 Instruction Fine-tuning 已经取得了巨大的成功 (T5, InstructGPT, T0)
  • 所以这篇工作想进一步探索 scaling up instruction fine-tuning 能不能带来进一步地提升

2.Structure

  • 在 1.8k 个 tasks 上进行训练,然后在 unseen tasks 上进行 evaluate
  • We finetune both with and without exemplars (i.e., zero-shot and few-shot) and with and without chain-of-thought, enabling generalization across a range of evaluation scenarios.
    • Zero-shot 就是在 inference 没有给 example, few-shot 就是给不同个数 (K-shot) 的 example (就是 In-Context Learning 的 example 的个数)
  • 这里的 Language Model 用了 T5 和 PaLM 这两个,一个是 Encoder-Decoder 架构的,一个是 Causal Augo-regressive 架构的

3.Dataset

  • Finetuning data 有 473 datasets, 146 task categories 和 1,836 total tasks
  • 这里每个矩形代表不同的 Dataset collection, 不同的 Dataset collection 之间可能包含相同的 task category (e.g., Question Generation)
  • 这里说的 dataset 就是比如 SQuAD 这样的数据集,每个数据集稍微设计更改一下 format 就可以用于不同种类的 task 了。这里不同的 task 种类总共有 146 个,然后每个 dataset 平均可以用在 1~5 个不同类型的 task 上,所以一共就有 1836 个 training tasks
  • 然后 held out 了 86 个 task 作为 evaluation tasks
    • 注意,这里它把 training tasks 中和 evaluation tasks overlap 的 tasks 都去除了哈, 然后 TyDiQA 和 MGSM 都默认代表一个 Task

3.1 Finetuning Dataset

3.1.1 Muffin

  • 这边有个细节就是他们新增加了一些 datasets 到 Muffin (Multi-task finetuning with instructions) dataset collection 中

  • 论文在原来 62 tasks 的基础上(之前 FLAN 工作所 public 的)又增加了 26 tasks, 主要是新增了 dialog data 和 program synthesis data 这两种类型的 data (通过下面的Table 24 可以看到一共是用 10 个数据集), 然后基于这两种类型的 data 又多衍生出了 26 个 training tasks, 然后又把和 evaluation tasks overlap 的部分去掉,最终得到 80 个 tasks

  • 原本的 FLAN 的 Muffin Collections 中主要包括了下面这些 datasets,FLAN 论文

所有的这些 datasets 都可以在 tensorflow datasets 里面找到

  • 然后现在的 Muffin 就是在上面的基础上再多加

3.1.2 T0-SF

  • SF stands for “sans Flan”, 意思是他们用了 T0 工作中里面与 Muffin 没有 overlap 的数据集,最终构成了 193 个 training tasks
  • T0 原始用的数据集如下,T0 论文

3.1.3 NIV2

  • NIV2 (Natural Instructions V2) 这个数据集一共构成了 1554 个 training tasks
  • NIV2 也叫做 SUPER-NATURALINSTRUCTIONS,NIV2 论文,它比之前的那些 dataset collections 都更大更丰富,也从不同的角度分析了他们数据集的优势,数据集的下载地址

3.1.4 CoT(Reasoning)

  • 然后他们自己又另外将 9 个 CoT dataset 收录到了 Reasoning collection 中
  • 原文还设计了 10 个不同的 instruction template, 相当于每条数据可以构造出 10 个 entry 出来,也是为了用来增加数据量
  • 9 个数据集包括
    • GSM8k(Arithmetic Reasoning)
    • StrategyQA(Question Answering)
    • AQUA(Algebra Question Answering with Rationales)
    • CREAK(Fact Verification)
    • ECQA(Explanations for CommonsenseQA)
    • ESNLI(Natural Language Inference with Natural Language Explanations)
    • QASC (Question Answering via Sentence Composition)
    • QED(Explanations in Question Answering)
    • SenseMaking(Commonsense Explaination)
  • 上面这些数据集加起来一共有 74,730 examples, 每个 dataset 提供的数据情况: AQuA (2,715), CREAK (6,910), ECQA (7,110), ESNLI (36,170), GSM8K (7,470), QASC (1,080), QED (5,145), Sensemaking (6,070), StrategyQA (2,060).

3.1.5 Other Info

  • 这个是不同 Collection 数据集下面每个 task 所包含的数据集的数量,因为同一个 Task 可能会包含有多个数据集
  • 这个是所有 finetuning 数据集的 Language 的数量分布,一共是有 60 个语言

3.2 Evaluation Dataset

  • Evaluation Dataset 他们选取的是那些目前 SOTA 仍然表现得比专家人类评分低很多的 benchmark, 这些 evaluation 的 benchmark 和之前的 PaLM 用到是一样的,分别是 MMLU,BBH, TyDiQA, MGSM
  • 他们验证集和测试集都是来自于上面的这些 datasets,然后每个数据集给的 examples 的数量也不一样, five-shot for MMLU, three-shot for BBH, one-shot for TyDiQA, and 8-shot for MGSM.

3.2.1 MMLU

  • MMLU (Massive Mulfitask Language Understanding ) 包含的是 exam questions 这种任务类型,然后具体一共有 57 个 evaluating tasks, 比如有 mathematics, history, law, and medicine 的这些 exam questions answering 的任务 (主要是涵盖 STEM 教育领域的各种知识),MMLU原论文
  • 这个数据集是他们从学生社区网站(类似答题网站)抓取下来的,总用有 15908 questions,数据参考如下

3.2.2 BBH

  • BBH 数据集来自于 Big-Bench, 其一共包含 23 个 evaluating tasks,主要涵盖 math, common-sense reasoning, biology, physics, social bias, software development 等,这些任务也是 PaLM 表现的比人类差的 task, BBH 原论文, 数据 dashboard, Github

3.2.3 TyDiQA

  • TyDiQA 是一个 cross-lingual 的 question answering 数据集,这个数据集包含 8 种语言,有 200K 个 question-answer pairs,数据链接, TyDiQA 论文

3.2.4 MGSM

  • Multilingual Grade School Math (MGSM)是一个 multi-lingual 的 math word problem benchmark,包含 10 种语言, MGSM 论文数据地址
  • 就是用不同语种的 CoT 数据集
  • 然后他们也做了那种用不同语种的 CoT 作为 examplar 去 Prompt 的实验

4.Method

  • 用的 Flan-finetuning, Flan (Finetuning Language models) 就是用不同的 prompt template 来 instruction-finetune on a collection of data sources
    • 在论文里 Flan 缩写代表的是 Instruction Finetuning Language model 的缩写
  • 在进行 Flan-finetuning 的时候还测试了一下用不用 example 和用不用 CoT 的差别,用不用 CoT 只在 Reasoning 这个 collection 中的 9 个 Dataset 上进行测试
  • 在测试 CoT 带来的 Reasoning 效果的时候,他们还用了 Self-consistent 的策略,这里 self-consistency 策略来源于 Google Brain 2022 的论文 Self-Consistency Improves Chain of Thought Reasoning in Language Models (论文链接)
  • 主要的 work 的方式有点像是 ensemble voting 的方法,一开始给一个 CoT 的 example 来进行 Prompt (In-Context Learning), 然后用带有随机性的 sample decode (保证一定的多样性) 来生成多个 candidate,每个 candidate 包含生存的 CoT process 和最终的 final result, 然后把生成相同的 final result 的 candidate 分好并算自己结果下的这些 average log-likelihood 作为 score, 然后把最高 score 的 final result 进行返回,这个过程就是叫做 self-consistent
    • 这个过程主要也是在受启发于可以通过不同的思考方式(解决方法)来得到相同的答案
  • 这边还有个细节就是,他们用的不是 Adam optimizer, 而是用的 Adafactor 这个显存占用更小且优化效率更高的 optimizer (具体参考博客)
    • 这几天,google 又新出了一个新的 optimizer Lion, 这个 optimizer 对于大模型的训练会更有效, 带来的效果也会更好些, 具体参考博客

5.Hints

  • 论文中采用的 Scaling Up 策略有 scaling up model size, scaling up number of tasks, 通过实验证明,这两个 scaling up 的策略在不同的 model class (PaLM, T5), prompting setups (Zero-shot, Few-shot, CoT,就是给 examplars 的数量), 以及在 evaluation benchmarks (MMLU, BBH, TyDiQA, MGSM) 上得到了显著的提高
  • 而且发现用一小部分的 Chain of Thought 的数据集混杂到 Instruction fine-tuning 的过程当中的话,可以进一步地提升模型整体的能力
    • 原本没有加入 Chain of Thought 数据进去 fine-tuning 的话,在 CoT evaluations 上效果就很差,然后只要加入 9 个 CoT datasets 之后,在 evaluation benchmark 上的 reasoning 能力就会有显著的提升
  • fine-tuning 完之后可以直接 generalized 到 unseen tasks 上做 zero-shot 的生成

5.1 Scaling Up Number of Tasks

  • 在超过 228 个 training tasks 之后,模型提升的表现就比较有限了,原因包括
    • (1) the additional tasks 其实不够 Diverse, 可能和之前的 data 提供的是差不多的知识
    • (2) 原本的 pre-trained model 已经有足够多的知识了,instruction finetuning 其实是为了帮助模型更好的利用它之前的 pre-trained knowledge,可能 228 个 tasks 已经可以比较好的帮助 pre-trained model 学习到一个比较好的 generalization 能力了

5.2 Scaling Up Model Size

  • Model size 越大的话其实带来的效果也也会越好

5.3 CoT Dataset Mixture Tuning

  • 在没有加入 CoT dataset 进行 mix training 的话,在 CoT 测试上效果就降的很多

  • Flan-PaLM with CoT + SC 这个策略在 SOTA 上 improves 了很多甚至在 under-represented languages 上表现超过 PaLM 的 rich-language, such as 69.6% on Bengali. 相比, PaLM with CoT + SC only achieves 63.6% with French and 61.2% on German, which are high-resource languages.

  • 整体来说还是加了 CoT 后效果有了显著的提升,对于一些 under-represented 的 language 提升的效果会比较明显
  • 又做了进一步实验,这里的 CoT 是 CoT 类型的训练数据,Non-CoT 是非 CoT 类型的训练数据 (就是那些普通的 Instruction Finetuning 的数据),实验证明要联合 Non-CoT 和 CoT 的数据一起训练才能带来比较好的提升
  • 这里还有个新奇的发现就是,直接用 PaLM 去 reasoning (No Finetuning) 的效果会比用 Non-CoT finetuning 的效果来的好,说明只用 Non-CoT 去训练的时候会 degrade Reasoning 上的表现,所以一定要 Non-CoT 和 CoT 的数据一起训练才可以

5.4 Unlocking zero-shot reasoning

Zero-shot 的意思是没有提供 exemplars for CoT,直接给了一个 "Let's think step by step" 的 Prompt 就去生成

  • 没有 + CoT 的,意思就是没有用 "Let's think step by step" 的 Prompt 去 Activate 然后这去生成答案的,可以发现原本的 PaLM 如果让它 Think step by step 去生成结果的话,得到的结果反而是错误的,而 Flan-PaLM 的话如果用 CoT activate 的话,得到的结果会更加准确
  • 上面这个是具体的 Zero-shot reasoning 的 cases

6.Highlights

  • Flan-PaLM 540B finetuned on 1.8K tasks, 发现结果比原本的 PaLM (beats SOTA) 在 4 个 benchmark 上面提升了平均 9.4% 个点
  • Flan-PaLM also has improved multilingual abilities compared to PaLM, such as 14.9% absolute improvement on one-shot TyDiQA and 8.1% on arithmetic reasoning in under-represented languages
  • Flan-PaLM 540B 在几个 benchmark 上也达到了 SOTA 的效果, 比如在 five-shot MMLU 上达到 75.2%,已经超过了 2024 年的 expectation 了
  • Flan-T5 models (80M to 11B). These checkpoints have strong zeroshot, few-shot, and CoT abilities, outperforming prior public checkpoints such as T5

7.Other Dataset Resource

  • MNBVC(Massive Never-ending BT Vast Chinese corpus):一个超大规模的中文数据集,对表 ChatGPT 的 40G 数据,目前还在不断收集当中,是一个开源项目
  • MultiModal-CoT:这个是一个 Multi-modal 的 CoT 数据集,每个 sample 是 (image, question, rationale, answer) 这样的一个四元组, 具体可以参考博客

分类:

人工智能

标签:

自然语言处理

作者介绍

hengyuan
V1