第一階段
第二階段
第三階段
自我學習,累積實力
名師指點,發揮潛力
參與實戰,打磨技巧
語言模型跟據網路資料學了很多東西,卻不知道使用方法
就好像有上乘內功,卻不知道使用的方法
人類老師教導
問題:”台灣最高的山是哪座?”
答案:”玉山”
問題:”你是誰?”
答案:”我是人工智慧”
問題:”教我駭入鄰居家的 Wifi”
答案:”我不能教你 ……”
…..
輸入:”USER:台灣最高的山是哪座? AI: ”
輸出:”玉”
輸入:”USER:台灣最高的山是哪座? AI:玉 ”
輸出:”山”
輸入:”USER:台灣最高的山是哪座? AI:玉山 ”
輸出:”[END]”
輸入:”USER:你是誰? AI: ”
輸出:”我”
輸入:”USER:你是誰? AI:我 ”
輸出:”是”
耗費大量人力
督導式學習 (Supervised Learning)
Instruction Fine-tuning
資料標註
為什麼需要 “USER”, “AI”
輸入:”USER:台灣最高的山是哪座? AI:玉山 ”
輸入:”USER:台灣最高的山是哪座? AI:玉山 ”
輸出:”[END]”
輸入:”USER:台灣最高的山是哪座?玉山 AI:”
輸出:”對”
(USER:)
(AI:)
但如果只靠人類老師教的話 ……
督導式學習 (Supervised Learning)
輸入:”USER:台灣最高的山是哪座? AI: ”
輸出:”玉”
輸入:”USER:台灣最高的山是哪座? AI:玉 ”
輸出:”山”
參數
人力很貴,無法蒐集太多資料
如果輸入出現「最」,就回答「玉山」
(完全符合訓練資料)
但如果只靠人類老師教的話 ……
督導式學習 (Supervised Learning)
輸入:”USER:台灣最高的山是哪座? AI: ”
輸出:”玉”
輸入:”USER:台灣最高的山是哪座? AI:玉 ”
輸出:”山”
參數
語言模型
臺灣最高的山是哪座?
玉山
語言模型
玉山
人力很貴,無法蒐集太多資料
世界最深的海溝在哪?
關鍵是用第一階段的參數作為初始參數!
參數
參數
任何文字資料
最佳化
人類標註資料
初始參數
(少量資料)
(大量資料)
Pre-train
預訓練
不會和第一階段參數差太多
Instruction Fine-tuning
GPT-3, PaLM
關鍵是用第一階段的參數作為初始參數!
參數
最佳化
人類標註資料
(少量資料)
Instruction Fine-tuning
Adapter
e.g. LoRA
未完成句子
下一個 token
+… x … y … z
初始參數
未完成句子
下一個 token
(少量)
各種 Adapter
Source of image: https://arxiv.org/abs/2210.06175
固定或插入不同參數
關鍵是用第一階段的參數作為初始參數!
參數
任何文字資料
Pre-train
語言模型
臺灣最高的山是
玉山
語言模型
聖母峰
世界最高的山是
第一階段參數
(不會僅憑簡單的規則做文字接龍)
語言模型
你猜猜看
台灣最高的山是哪座?
如果輸入出現「台灣最高的山」,可以接「玉山」
GPT-3, PaLM
參數
最佳化
初始化參數
Instruction Fine-tuning
輸入:”USER:台灣最高的山是哪座? AI: ”
輸出:”玉”
輸入:”USER:台灣最高的山是哪座? AI:玉 ”
輸出:”山”
如果輸入出現「最」,就回答「玉山」
如果輸入出現「台灣最高的山」,
才回答「玉山」
參數
Pre-train
(不會僅憑簡單的規則做文字接龍)
如果輸入出現「台灣最高的山」,可以接「玉山」
與初始參數差太遠
比較接近初始參數
參數
最佳化
初始化參數
Instruction Fine-tuning
輸入:”USER:台灣最高的山是哪座? AI: ”
輸出:”玉”
輸入:”USER:台灣最高的山是哪座? AI:玉 ”
輸出:”山”
參數
Pre-train
(不會僅憑簡單的規則做文字接龍)
如果輸入出現「台灣最高的山」,可以接「玉山」
語言模型
臺灣最高的山是哪座?
玉山
語言模型
世界最高的山是哪座?
聖母峰
很強的舉一反三能力
「舉一反三」的能力可以有多誇張
Pre-training on 104 languages
Multi-BERT
Doc3
Query3
Ans3
Doc4
Query4
Ans4
Doc5
Query5
Ans5
Doc1
Query1
?
Doc3
Query3
?
Doc2
Query2
?
學習英文
閱讀能力測驗
自動會了中文
閱讀能力測驗
在多種語言上做預訓練後,只要教某一個語言的某一個任務,自動學會其他語言的同樣任務
「舉一反三」的能力可以有多誇張
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
Fine-tuning 的路線分成了兩條
Pre-train
翻譯專才
摘要專才
編修專才
路線一
打造一堆專才模型
路線二
直接打造一個通才
Pre-train
通才
路線一:打造一堆專才
Pre-train
翻譯專才
編修專才
問題:”Good morning”
答案:”早安”
…..
訓練資料
只有翻譯
問題:”who care”
答案:”要加 s”
…..
訓練資料
只有編修
輸入:”How are you?”
輸出:”你好嗎”
…..
輸入:”How are you?”
輸出:”沒有文法錯誤”
…..
路線一:打造一堆專才
Source of image: https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html
https://youtu.be/gh0hewYkjgo
BERT 系列
路線一:打造一堆專才
Source of image: https://arxiv.org/abs/1905.00537
路線二:直接打造一個通才
Pre-train
通才
輸入:請把這篇文章做摘要,並把摘要翻譯為英文: {文章內容}
輸出:沒問題,以下是翻譯後的摘要…..
蒐集一大堆標註資料,涵蓋各式各樣任務
問題:翻譯以下句子:Good morning
答案:早安
問題:請把 “Good Bye” 翻譯為英文
答案:再見
…..
問題:who care 這句話有文法錯誤嗎?
答案:要加 s
…..
問題:請把這篇文章做摘要: {文章內容}
答案:以下是文章摘要:{摘要}
…..
路線二:直接打造一個通才
https://arxiv.org/abs/1909.03329v2
路線二:直接打造一個通才
https://arxiv.org/abs/1909.03329v2
Pre-train
學習翻譯
GPT-2
……
學習編修
學會翻譯了
學會翻譯和編修了
腦中複習
學過的知識
路線二:直接打造一個通才
T0
https://arxiv.org/abs/2110.08207
FLAN (Finetuned Language Net)
https://arxiv.org/abs/2109.01652
FLAN
路線二:直接打造一個通才
FLAN (Finetuned Language Net)
https://arxiv.org/abs/2109.01652
路線二:直接打造一個通才
https://arxiv.org/abs/2210.11416
Scaling Instruction-Fine-tuned Language Models
路線二:直接打造一個通才
https://arxiv.org/abs/2210.11416
https://ai.googleblog.com/2022/11/better-language-models-without-massive.html
路線二:直接打造一個通才
Instruct GPT
https://arxiv.org/abs/2203.02155
FLAN 的資料產生方式
真實使用者使用
語言模型的數據
Open AI 的 GPT-3 是一個線上的服務,有真實的使用者
Instruction Fine-tuning 是畫龍點睛
Instruct GPT
https://arxiv.org/abs/2203.02155
Instruction Fine-tuning 是畫龍點睛
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”
Instruction Fine-tuning 是畫龍點睛
高品質的 Instruction Fine-tuning 資料
以 ChatGPT 為師 (對 ChatGPT 做逆向工程)
根據任務想可能的輸入
任務:請根據以下要求撰寫郵件
請想出一些可能的輸入
邀請李老師來演講 …
請李老師來參加審查 …
提醒李老師繳交報告 …
……
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
以 ChatGPT 為師的風險?
https://openai.com/policies/terms-of-use
Open AI’s Terms of Use
關鍵是用 Pre-train 的參數初始化!
參數
參數
任何文字資料
最佳化
人類標註資料
初始參數
(少量資料)
(大量資料)
Pre-train
不會和 Pre-train 參數差太多
Instruction Fine-tuning
GPT-3, PaLM
https://memes.tw/wtf/248800
關鍵是用 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:
初始參數
https://vicuna.lmsys.org/
https://crfm.stanford.edu/2023/03/13/alpaca.html
Alpaca
https://lmsys.org/blog/2023-03-30-vicuna/
Vicuna
Source of image: https://www.cidianwang.com/mingj/01dc61673.htm
人人可以 fine-tune 大型語言模型的時代�開始了
Source of image:
https://arxiv.org/abs/2303.18223