20251019筆記 內容可能有錯誤,請參考原始影片 [李宏毅【機器學習 2023】(生成式 AI)](https://www.youtube.com/playlist?list=PLJV_el3uVTsOePyfmkfivYZ7Rqr2nMk3W) 今日影片 [【生成式AI】生成式學習的兩種策略:要各個擊破,還是要一次到位](https://youtu.be/AihBniegMKg?si=sQp7y6PeeqvaUTeD) [【生成式AI】能夠使用工具的AI:New Bing, WebGPT, Toolformer ](https://youtu.be/ZID220t_MpI?si=ko4PplETyPYrQ_QB) ### 【生成式AI】生成式學習的兩種策略:要各個擊破,還是要一次到位 大綱 **I. 生成式學習的基礎** A. 目的:生成結構複雜的物件(如文字、影像、語音)。 B. 構成元素:複雜物件由小元素構成(文字的 Token、影像的像素、語音的取樣點)。 **II. 兩種生成策略** A. 策略一:**各個擊破 (Auto-regressive)** B. 策略二:**一次到位 (Non-auto-regressive)**。 **III. 策略比較** A. **速度 (Speed)**:各個擊破較慢,一次到位較快。 B. **品質 (Quality)**:各個擊破通常品質較好,一次到位通常品質較差。 C. **應用選擇**: 1. 文字生成 (Text Generation):常用各個擊破(如 GPT)。 2. 影像生成 (Image Generation):常用一次到位(因像素太多)。 **IV. 綜合運用** A. **語音合成 (Speech Synthesis)**:先用各個擊破決定大方向(生成中間產物),再用一次到位生成複雜的最終訊號。 B. **$N$ 次到位 (N-regressive)**:將一次到位改為分次到位,先生成模糊圖片,再逐漸變得清晰(如 Diffusion Model)。 --- ### 1. 生成式學習的目標與元素 * 生成式學習目的在生成**結構複雜的物件**,例如文字、影像或語音。 * 這些複雜物件通常由一些**小元素**所構成。 * 構成文字的元素在相關論文中稱為 **Token** (中文裡類似字)。在英文中,Token 是一種介於字母和詞彙之間的單位(例如 "untable" 可能拆成三個 Token)。 * 構成影像的元素是**像素 (Pixel)**。 * 構成語音的元素是一堆**取樣點 (Sample points)**,例如 16K 的音訊訊號,一秒鐘有 16,000 個取樣點。 * GPT 處理的問題雖然從使用者角度來看是生成式學習,但它實際上是將生成問題拆解成**多個分類問題**,選項是全世界所有的 Token。 ### 2. 兩種生成策略詳述 #### 策略一:各個擊破 (Auto-regressive) * 各個擊破是生成策略的一大類。 * **做法**:模型每次只生成一個元素。 * 在文字生成中,就是一個接一個地生成 Token。 * 在影像生成中,就是一個接一個地生成像素。 * **模型類型**:採用此策略的模型在專業術語上稱為 **Auto-regressive 模型**。 * **應用實例**:GPT 採用的就是各個擊破的策略。 * **生成終止**:在生成文字時,會產生一個代表結束的 Token 符號來停止生成。 #### 策略二:一次到位 (Non-auto-regressive) * 一次到位是生成策略的另一大類。 * **做法**:一次性地將所有元素產生出來。 * 例如,一次將所有的文字產生出來,或一次將所有的像素產生出來。 * **模型類型**:採用此策略的模型稱為 **Non-auto-regressive (非自迴歸) 模型**。 * **生成長度**:模型可以透過幾種方式決定輸出的長度: 1. 永遠輸出固定的長度(例如 512 個 Token),並在回應中輸出結束符號 $N$ 來讓後面的內容被丟棄。 2. 先輸出一個數字(例如 100),代表接下來要生成多少個字,然後再生成確定的字數。 ### 3. 策略差異比較 | 特性 | 策略一:各個擊破 (Auto-regressive) | 策略二:一次到位 (Non-auto-regressive) | 說明與原因 | | :--- | :--- | :--- | :--- | | **生成速度** | **慢** | **快** | 各個擊破必須等前一個元素生成完畢,無法平行化,因此花費時間長。一次到位只要有足夠的運算資源就可以同時產生所有元素。 | | **生成品質** | **通常較好** | **通常較差** | 各個擊破能夠根據已生成的內容調整下一步的機率分佈,避免生成不連貫的答案。一次到位可能在取樣時,將多個正確答案的元素混在一起,導致出現荒謬的結果(例如先取樣到「老」再取樣到「員」,變成「老員」)。 | | **典型應用** | 文字生成 (GPT) | 影像生成 (Image Generation) | 影像(如 100x100 圖片)像素太多(10,000個元素),若用各個擊破會耗時過久,因此圖像生成常採用一次到位。 | ### 4. 兩種策略的綜合運用 為了結合兩種策略的優點(各個擊破的高品質,一次到位的高速度),有時會將兩種方法綜合起來。 #### 案例一:語音合成 (Speech Synthesis) * 生成語音訊號非常複雜(一秒鐘有 16,000 個取樣點)。 * 早期的各個擊破方法(如 2016 年的 **WaveNet**)雖然聲音品質很好,但生成一秒鐘的聲音可能需要等數小時,難以使用。 * **混合策略**: 1. **階段一 (各個擊破)**:先用各個擊破的方法生成一個**中間產物**(例如每秒只有 100 個向量,比 16,000 個取樣點簡單許多)。這個階段的目標是**決定大方向**。 2. **階段二 (一次到位)**:再用一次到位的方法,根據中間產物生成最終複雜的訊號(16K 的取樣點)。 * 這樣結合了各個擊破在決定大方向上的優勢(避免模型無法決定方向)和一次到位在速度上的優勢。 #### 案例二:$N$ 次到位 (N-regressive) * 將一次到位改為 $N$ 次到位,本質上也是結合了各個擊破的概念。 * **做法**: 1. 先用一次到位的方法,生成**比較模糊的圖片**。 2. 接著,透過多次($N$ 次)的一次到位方法,讓圖片**越來越清楚**。 * 由於大方向已經在第一步決定,後續的生成就不會面臨不知道要選擇哪一個答案的困境。 * **實例**:這就是 **Diffusion Model** 的基本精神,它相較於過去的一次到位方法,能夠產生更高品質的造型。 ### 【生成式AI】能夠使用工具的AI:New Bing, WebGPT, Toolformer 大綱 **I. 具備網路搜尋功能模型的介紹** A. 案例:New Bing。 B. 核心特點:擁有網路搜尋功能,不同於傳統 GPT。 C. 決策機制:模型會自行決定何時需要搜尋網路。 D. 挑戰:即使連網並提供引用,模型仍可能產生錯誤資訊。 **II. 網路搜尋的底層機制:WebGPT** A. 模型功能:WebGPT是一個會使用搜尋引擎並著名出處的開源模型。 B. 搜尋行為序列:透過特殊的 Token 來控制搜尋、點選、收藏等動作。 C. 訓練方法:透過人類老師的示範學習來訓練模型,使其學會執行這些動作。 **III. 進階應用:使用多種工具 (Formulating)** A. 擴展功能:Formulating 模型不只搜尋,還會使用其他工具,例如計算機。 B. 自動化訓練:嘗試在沒有人類老師示範的情況下,利用另一個語言模型來生成訓練資料。 **IV. 模型能力與結果** A. 工具依賴:模型大小會影響其使用工具的能力;模型太小可能學不會用工具。 B. 表現優勢:即使模型參數較小,但有工具輔助,仍有機會勝過沒有輔助的大型模型。 --- ### 1. 具備網路搜尋功能的模型 (New Bing) * **New Bing的特色:** New Bing 已經上線,用戶在 Bing 首頁點選「聊天」選項即可開啟類似於 ChatGPT 的對話畫面。New Bing 與傳統的 GPT **最不一樣**的地方在於它**有搜尋網路的功能**。 * **搜尋過程:** 當用戶問 New Bing 問題時,它可能會顯示「正在搜尋」的輸出。它會將提問中的詞彙當作關鍵字去搜尋網頁。 * **產生答案與引用:** New Bing 會拿搜尋到的資料來產生答案。有趣的是,它還會附上 **網頁引述(references)**,告訴用戶這個知識是從哪一個網頁上看來的。 * **搜尋決策:** New Bing 會**自行決定**何時要搜網路,有時候會搜,有時候不會搜。例如,當被要求「來玩一個穿越文字冒險遊戲」時,它有時會搜尋相關介紹,有時則直接進入對話模式。 * **多關鍵字搜尋:** 模型不一定只搜尋一個關鍵字,它可以自己決定同時搜尋多個關鍵字。 * **模型錯誤的挑戰:** 即使大型語言模型連網,它**仍然會犯錯**。舉例來說,New Bing 錯誤地寫李宏毅曾「在 Google 工作過」,並為此提供了兩個引述網頁(一個是作者的中文百科條目,一個是作者的個人網站),但這些網頁從未提過這件事。這表明連網後模型**答案是自己生出來的**,並非直接引用網頁內容。 ### 2. 網路搜尋的底層技術:WebGPT * **模型基礎:** 雖然 New Bing 的確切技術細不清楚,但有一個非常相近的開源論文是 **WebGPT**。WebGPT 在 2021 年底發布,它會使用搜尋引擎,並在答案中著名出處。WebGPT 產生的結果與現在 Bing 產生的結果非常相似。 * **搜尋機制:** WebGPT 將使用搜尋引擎視為一個「文字接龍」的問題。 * **特殊符號:** 語言模型可以決定產生一個**特殊的符號**代表「搜尋」(SEARCH)。 * **關鍵字產生:** 「搜尋」符號之後產生的文字會被模型拿去做關鍵字搜尋。 * **結果排序:** 搜尋結果會按照搜尋到的順序編號。 * **點選 (CLICK):** 模型可以產生一個「點選」符號,後面接一個數字,代表點選搜尋結果中的第幾篇文章。 * **文章內容處理:** 點開的文章內容(或是選擇的段落)會被當作語言模型已經產生出來的內容。 * **收藏 (STORE):** 模型產生「收藏」符號後,剛才展開的內容會被收藏下來。 * **多次搜尋:** 語言模型可以自行決定進行**不止一次**的搜尋。 * **回答 (ANSWER):** 當模型認為所需的資料都已集齊後,它會產生一個「回答」符號,此時**沒有被收藏**的內容就會消失。 * **引用的產生:** 引用標註(如,)的結果**可能是機器自行生成**的,而不是由寫死的規則產生。 ### 3. 模型的訓練與進階工具使用 * **WebGPT 的訓練方式:** WebGPT 是透過**人類老師的示範**來訓練的。 * **示範過程:** 人類老師看到一個問題後,在介面中輸入關鍵字搜尋、點選、將文章「收藏」(add info),然後開始寫答案。 * **學習序列:** 這些人類行為的序列會被記錄下來,用來訓練模型進行文字接龍。 * **訓練配方:** WebGPT 的配方與 GPT-3 類似,包括先做預訓練(Pre-train),再進行人類老師的示範學習,最後還需要做**強化學習**。 * **Formulating:使用多種工具** * **功能擴展:** Formulating 是一篇展示模型不只搜尋,還會使用其他工具(如計算機)的論文。 * **工具呼叫機制:** 使用工具也都是**文字接龍**的問題。例如,模型可以產生一個特殊符號「啟動計算機」,後面接著要運算的算式。 * **自動化資料生成(無人類教師)** * 由於工具的組合使用過於複雜,難以透過大量人力示範來訓練,Formulating 嘗試在沒有人類老師的情況下產生訓練資料。 * **策略:** 利用**另一個語言模型**來產生資料,指示它在文字中插入呼叫 API 的指令(例如用角括號 `<QA> question </QA>` 表示)。 * **資料篩選:** 為了確保資料合理,他們會檢查「加上 API 呼喚指令」是否能幫助提高生成**正確答案**的機率。如果呼喚 API 對於文句生成有幫助,則保留該訓練資料。 * **實驗結果:** * 實驗比較顯示,如果模型太小,它**學不會用工具**。 * 但如果模型夠大,即使是參數比 GPT-3 小的模型(Formulating 最小參數約 6000),若能使用工具(呼喚 API),有機會**打敗**沒有輔助的 GPT-3。 --- 其他課程 [【2023 生成式AI】01~03 ChatGPT 原理剖析](https://hackmd.io/@JuitingChen/SyUtDmaalx) [【2023 生成式AI】04~06 文字冒險和機器學習原理](https://hackmd.io/@JuitingChen/S1wwdXa6ge) [【2023 生成式AI】07~08 生成式學習策略和可使用工具的AI](https://hackmd.io/@JuitingChen/BJPQtQpagx) [【2023生成式AI】09~11 Finetuning vs. Prompting](https://hackmd.io/@JuitingChen/H15otQpael) [【2023生成式AI】12~15 大模型 + 大資料 = 神奇結果?](https://hackmd.io/@JuitingChen/rJ1Gi7a6le) [【2023生成式AI】16~17 圖像生成模型 和 Stable Diffusion、DALL-E、Imagen 背後共同的套路](https://hackmd.io/@JuitingChen/HJnB2QTagg) [【2023 生成式AI】19~22 Diffusion Model 原理剖析 ](https://hackmd.io/@JuitingChen/SyBx6mp6xe) [【2023生成式AI】23~25 低成本復刻ChatGPT、ChatGPT自我反省、AI村莊](https://hackmd.io/@JuitingChen/r10hAsrCxe) [【2023生成式AI】26~27 用語言模型來解釋語言模型](https://hackmd.io/@JuitingChen/SJ0aYiwAeg) [【2023生成式AI】28~30 FrugalGPT 用省錢的方式來使用 ChatGPT](https://hackmd.io/@JuitingChen/rypFqnPRll)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up