---
# System prepended metadata

title: '【生成式AI導論 2024】第7講：大型語言模型修練史 — 第二階段: 名師指點，發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)'
tags: [生成式AI導論 2024]

---

# 【生成式AI導論 2024】第7講：大型語言模型修練史 — 第二階段: 名師指點，發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)

## 人類老師

* 人類老師給語言模型的教材是QA。一個問題一個答案。這個步驟叫做Instruction Fine-tuning。屬於Supervised Learning。
* 語言模型看到的訓練資料長這樣![image](https://hackmd.io/_uploads/HJDuU4Ts1l.png)
* 要特別標出哪個部分是User講的哪個部分是AI講的，不然如果只有問答而沒有這些標註，模型沒辦法分辨是使用者自問自答還是這些是AI該給的回答。![image](https://hackmd.io/_uploads/rJ_ePEasJg.png)
* 我們在用ChatGPT時也有可能加入AI跟USER的prompt![image](https://hackmd.io/_uploads/BJWBPNaikg.png)
* 如果一開始就用Supervised Learning，人力能提供的資料太少了，會產生各種問題。

## Pre-train 與 Fine-tune

* 因此現今大型語言模型的關鍵是使用第一階段的初始參數(Pre-train)作為二階段的訓練參數(Fine-tune)。
* Adapter: 如果擔心Fine-tune的參數會與Pre-train參數差太多可以採用Adapter(eg. LoRA)
  * 完全不要動初始參數
  * 在原本的func後面加入少量參數，去找這些少量參數就好。![image](https://hackmd.io/_uploads/H1q3ONTikx.png)
* 模型在Pre-Train時學到了很複雜的問題，因此透過Fine-tune就可以舉一反三

## Fine-tune的路線

![image](https://hackmd.io/_uploads/ryT4nVTikl.png)

### 打造一堆專才模型

* BERT

### 直接打造一個通才

* 打造專才有點麻煩，世界上的任務太多了
* 於是蒐集一堆資料，把所有任務交給一個模型![image](https://hackmd.io/_uploads/BJtZaVpiJg.png)
* 並且期待能夠在學習任務的過程中，舉一反三學會其他任務
* 可以不用一次教它所有任務，可以慢慢學習。但是模型會忘記較舊的知識，因此要[複習](https://arxiv.org/abs/1909.03329v2)。![image](https://hackmd.io/_uploads/BJhtT4ajke.png)
* Google以GPT3為Pre-train model，用多種任務打造了[FLAN(2021.09)](https://arxiv.org/abs/2109.01652)、[T0(2021.10)](https://arxiv.org/abs/2110.08207)、以及[終極的Scaling版本(2022.10)](https://arxiv.org/abs/2210.11416)
* OpenAI則做了[Instruct GPT(2022.03)](https://arxiv.org/abs/2203.02155)，做的比FLAN好。他們認為在原本FLAN中他們使用的資料是找自然語言的資料集，想辦法改成一問一答的資料。缺點是這些問題非常的死板，跟正常的使用情境相差很多。OpenAI則是透過Chat-GPT3的上線，蒐集真實使用者的問題，然後去找問題標記員把正確答案標出來。
* Instruction Fine-tuning其實只要上萬比資料，比大家想的還要少。[LLaMA2](https://arxiv.org/abs/2307.09288)也贊同，他們選擇用上萬筆的資料就好，認為"Quality Is All You Need"。
* 但是一般人沒有ChatGPT的真實使用者資料，很難去做Instruction Fine-tuning。因此有人直接用ChatGPT去產生使用者可能的輸入跟輸出。但也[有人覺得](https://arxiv.org/abs/2305.15717)這樣取得的資料沒有這麼優質。![image](https://hackmd.io/_uploads/SknmZHaj1e.png)
* OpenAI有GPT-3,Google有PaLM作為Pre-train weight，但一般使用者沒有。因此META釋出了[LLaMA1](https://arxiv.org/abs/2302.13971)、[LLaMA2](https://arxiv.org/abs/2307.09288)，讓大家可以使用
