1 of 37

第一階段

第二階段

第三階段

自我學習,累積實力

名師指點,發揮潛力

參與實戰,打磨技巧

語言模型跟據網路資料學了很多東西,卻不知道使用方法

就好像有上乘內功,卻不知道使用的方法

2 of 37

人類老師教導

問題:”台灣最高的山是哪座?”

答案:”玉山”

問題:”你是誰?”

答案:”我是人工智慧”

問題:”教我駭入鄰居家的 Wifi”

答案:”我不能教你 ……”

…..

輸入:”USER:台灣最高的山是哪座? AI: ”

輸出:”玉”

輸入:”USER:台灣最高的山是哪座? AI:玉 ”

輸出:”山”

輸入:”USER:台灣最高的山是哪座? AI:玉山 ”

輸出:”[END]”

輸入:”USER:你是誰? AI: ”

輸出:”我”

輸入:”USER:你是誰? AI:我 ”

輸出:”是”

耗費大量人力

督導式學習 (Supervised Learning)

Instruction Fine-tuning

資料標註

為什麼需要 “USER”, “AI”

3 of 37

輸入:”USER:台灣最高的山是哪座? AI:玉山 ”

輸入:”USER:台灣最高的山是哪座? AI:玉山 ”

輸出:”[END]”

輸入:”USER:台灣最高的山是哪座?玉山 AI:”

輸出:”對”

(USER:)

(AI:)

4 of 37

但如果只靠人類老師教的話 ……

督導式學習 (Supervised Learning)

輸入:”USER:台灣最高的山是哪座? AI: ”

輸出:”玉”

輸入:”USER:台灣最高的山是哪座? AI:玉 ”

輸出:”山”

參數

人力很貴,無法蒐集太多資料

如果輸入出現「最」,就回答「玉山」

(完全符合訓練資料)

5 of 37

但如果只靠人類老師教的話 ……

督導式學習 (Supervised Learning)

輸入:”USER:台灣最高的山是哪座? AI: ”

輸出:”玉”

輸入:”USER:台灣最高的山是哪座? AI:玉 ”

輸出:”山”

參數

語言模型

臺灣最高的山是哪座?

玉山

語言模型

玉山

人力很貴,無法蒐集太多資料

世界最深的海溝在哪?

6 of 37

關鍵是用第一階段的參數作為初始參數!

參數

參數

任何文字資料

最佳化

人類標註資料

初始參數

(少量資料)

(大量資料)

Pre-train

預訓練

不會和第一階段參數差太多

Instruction Fine-tuning

GPT-3, PaLM

7 of 37

關鍵是用第一階段的參數作為初始參數!

參數

最佳化

人類標註資料

(少量資料)

Instruction Fine-tuning

Adapter

e.g. LoRA

 

 

未完成句子

下一個 token

 

+… x y z

初始參數

 

 

未完成句子

下一個 token

 

(少量)

8 of 37

各種 Adapter

Source of image: https://arxiv.org/abs/2210.06175

固定或插入不同參數

9 of 37

關鍵是用第一階段的參數作為初始參數!

參數

任何文字資料

Pre-train

語言模型

臺灣最高的山是

玉山

語言模型

聖母峰

世界最高的山是

第一階段參數

(不會僅憑簡單的規則做文字接龍)

語言模型

你猜猜看

台灣最高的山是哪座?

如果輸入出現「台灣最高的山」,可以接「玉山」

GPT-3, PaLM

10 of 37

參數

最佳化

初始化參數

Instruction Fine-tuning

輸入:”USER:台灣最高的山是哪座? AI: ”

輸出:”玉”

輸入:”USER:台灣最高的山是哪座? AI:玉 ”

輸出:”山”

如果輸入出現「最」,就回答「玉山」

如果輸入出現「台灣最高的山」,

才回答「玉山」

參數

Pre-train

(不會僅憑簡單的規則做文字接龍)

如果輸入出現「台灣最高的山」,可以接「玉山」

與初始參數差太遠

比較接近初始參數

11 of 37

參數

最佳化

初始化參數

Instruction Fine-tuning

輸入:”USER:台灣最高的山是哪座? AI: ”

輸出:”玉”

輸入:”USER:台灣最高的山是哪座? AI:玉 ”

輸出:”山”

參數

Pre-train

(不會僅憑簡單的規則做文字接龍)

如果輸入出現「台灣最高的山」,可以接「玉山」

語言模型

臺灣最高的山是哪座?

玉山

語言模型

世界最高的山是哪座?

聖母峰

很強的舉一反三能力

12 of 37

「舉一反三」的能力可以有多誇張

Pre-training on 104 languages

Multi-BERT

Doc3

Query3

Ans3

Doc4

Query4

Ans4

Doc5

Query5

Ans5

Doc1

Query1

?

Doc3

Query3

?

Doc2

Query2

?

學習英文

閱讀能力測驗

自動會了中文

閱讀能力測驗

在多種語言上做預訓練後,只要教某一個語言的某一個任務,自動學會其他語言的同樣任務

13 of 37

「舉一反三」的能力可以有多誇張

  • English: SQuAD, Chinese: DRCD

Model

Pre-train

Fine-tune

Testing

EM

F1

QANet

none

Chinese QA

Chinese

QA

66.1

78.1

BERT

Chinese

Chinese QA

82.0

89.1

104 languages

Chinese QA

81.2

88.7

English QA

63.3

78.8

Chinese + English

82.6

90.1

F1 score of Human performance is 93.30%

This work is done by 劉記良、許宗嫄

https://arxiv.org/abs/1909.09587

14 of 37

Fine-tuning 的路線分成了兩條

Pre-train

翻譯專才

摘要專才

編修專才

路線一

打造一堆專才模型

路線二

直接打造一個通才

Pre-train

通才

15 of 37

路線一:打造一堆專才

Pre-train

翻譯專才

編修專才

問題:”Good morning”

答案:”早安”

…..

訓練資料

只有翻譯

問題:”who care”

答案:”要加 s”

…..

訓練資料

只有編修

輸入:”How are you?”

輸出:”你好嗎”

…..

輸入:”How are you?”

輸出:”沒有文法錯誤”

…..

16 of 37

路線一:打造一堆專才

Source of image: https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html

https://youtu.be/gh0hewYkjgo

BERT 系列

17 of 37

路線一:打造一堆專才

Source of image: https://arxiv.org/abs/1905.00537

18 of 37

路線二:直接打造一個通才

Pre-train

通才

輸入:請把這篇文章做摘要,並把摘要翻譯為英文: {文章內容}

輸出:沒問題,以下是翻譯後的摘要…..

蒐集一大堆標註資料,涵蓋各式各樣任務

問題:翻譯以下句子:Good morning

答案:早安

問題:請把 “Good Bye” 翻譯為英文

答案:再見

…..

問題:who care 這句話有文法錯誤嗎?

答案:要加 s

…..

問題:請把這篇文章做摘要: {文章內容}

答案:以下是文章摘要:{摘要}

…..

19 of 37

路線二:直接打造一個通才

https://arxiv.org/abs/1909.03329v2

20 of 37

路線二:直接打造一個通才

https://arxiv.org/abs/1909.03329v2

Pre-train

學習翻譯

GPT-2

……

學習編修

學會翻譯了

學會翻譯和編修了

腦中複習

學過的知識

21 of 37

路線二:直接打造一個通才

T0

https://arxiv.org/abs/2110.08207

FLAN (Finetuned Language Net)

https://arxiv.org/abs/2109.01652

FLAN

22 of 37

路線二:直接打造一個通才

FLAN (Finetuned Language Net)

https://arxiv.org/abs/2109.01652

23 of 37

路線二:直接打造一個通才

https://arxiv.org/abs/2210.11416

Scaling Instruction-Fine-tuned Language Models

24 of 37

路線二:直接打造一個通才

https://arxiv.org/abs/2210.11416

25 of 37

https://ai.googleblog.com/2022/11/better-language-models-without-massive.html

26 of 37

路線二:直接打造一個通才

Instruct GPT

https://arxiv.org/abs/2203.02155

27 of 37

FLAN 的資料產生方式

真實使用者使用

語言模型的數據

Open AI 的 GPT-3 是一個線上的服務,有真實的使用者

28 of 37

Instruction Fine-tuning 是畫龍點睛

Instruct GPT

https://arxiv.org/abs/2203.02155

29 of 37

Instruction Fine-tuning 是畫龍點睛

  • LLaMA2:

  • LIMA: Less Is More for Alignment

https://arxiv.org/abs/2307.09288

https://arxiv.org/abs/2305.11206

1k training examples

“responses from LIMA are either equivalent or strictly preferred to GPT-4 in 43% of cases”

30 of 37

Instruction Fine-tuning 是畫龍點睛

  • 所以我自己也能做 Instruction Fine-tuning 嗎?

高品質的 Instruction Fine-tuning 資料

以 ChatGPT 為師 (對 ChatGPT 做逆向工程)

31 of 37

根據任務想可能的輸入

任務:請根據以下要求撰寫郵件

請想出一些可能的輸入

邀請李老師來演講 …

請李老師來參加審查 …

提醒李老師繳交報告 …

……

https://arxiv.org/abs/2212.10560

Self-Instruct

先叫ChatGPT想任務

想出大型語言模型可以幫忙的任務

任務1:撰寫郵件

任務2:撰寫報告摘要

任務3:寫信約時間

……

根據輸入產生答案

請根據以下要求撰寫郵件

邀請李老師來演講 …

“李老師您好: ……”

https://arxiv.org/abs/2305.15717

The False Promise of Imitating Proprietary LLMs

32 of 37

以 ChatGPT 為師的風險?

https://openai.com/policies/terms-of-use

Open AI’s Terms of Use

33 of 37

關鍵是用 Pre-train 的參數初始化!

參數

參數

任何文字資料

最佳化

人類標註資料

初始參數

(少量資料)

(大量資料)

Pre-train

不會和 Pre-train 參數差太多

Instruction Fine-tuning

GPT-3, PaLM

https://memes.tw/wtf/248800

34 of 37

關鍵是用 Pre-train 的參數初始化!

參數

參數

最佳化

(少量資料)

Pre-train

不會和 Pre-train 參數差太多

Instruction Fine-tuning

GPT-3, PaLM

https://memes.tw/wtf/248800

Meta 開源了LLaMA

https://arxiv.org/abs/2302.13971

https://arxiv.org/abs/2307.09288

LLaMA 1:

LLaMA 2:

初始參數

35 of 37

https://vicuna.lmsys.org/

https://crfm.stanford.edu/2023/03/13/alpaca.html

Alpaca

https://lmsys.org/blog/2023-03-30-vicuna/

Vicuna

36 of 37

  • u

Source of image: https://www.cidianwang.com/mingj/01dc61673.htm

37 of 37

人人可以 fine-tune 大型語言模型的時代�開始了

Source of image:

https://arxiv.org/abs/2303.18223