20251017筆記 內容可能有錯誤,請參考原始影片 [李宏毅【機器學習 2023】(生成式 AI)](https://www.youtube.com/playlist?list=PLJV_el3uVTsOePyfmkfivYZ7Rqr2nMk3W) 今日影片 [【生成式AI】ChatGPT 原理剖析 (1/3) — 對 ChatGPT 的常見誤解](https://youtu.be/yiY4nPOzJEg?si=XqtnupxIfUYO9phY) [【生成式AI】ChatGPT 原理剖析 (2/3) — 預訓練 (Pre-train)](https://youtu.be/1ah7Qsri_c8?si=f3QgFM4wbhcU5e-N) [【生成式AI】ChatGPT 原理剖析 (3/3) — ChatGPT 所帶來的研究問題](https://youtu.be/UsaZhQ9bY2k?si=q8nCt67rO4YPwKZJ) ### 【生成式AI】ChatGPT 原理剖析 (1/3) — 對 ChatGPT 的常見誤解大綱 I. ChatGPT (GPT) 的發布與能力初體驗 II. 表面功能與多輪互動 III. 對 GPT 的常見誤解與澄清 A. 誤解一:回應是罐頭訊息 B. 誤解二:回答是透過網路搜尋 IV. 核心運作原理:文字接龍 V. 模型規模、術語與訓練/測試階段的區分 --- ### I. ChatGPT (GPT) 的發布與能力初體驗 * **發佈時間**:ChatGPT 是在 **2022 年 11 月 30 日** 公開的。 * **初次體驗的震撼**:老師試用後心情大受震撼。 * 由於實驗室曾進行過與聊天機器人相關的研究,講者知道這類完全依賴類神經網路的模型所能達到的生成等級,但 ChatGPT 的能力遠超預期。 * 講者認為它的能力「**好的不像像是 AI**」,感覺背後有人類存在。 * 目標是講解 ChatGPT 背後可能的原理,證明它是科學,而不是魔法。 ### II. 表面功能與多輪互動 * **基本界面**:界面下方有一個對話框,使用者可以在其中輸入任何東西。 * **問答模式**:輸入一個東西,ChatGPT 一定會給予回應。例如,它可以規劃一門機器學習課程的大綱,且大綱看起來有模有樣,非常接近實際課程的安排。 * **輸出多樣性**:ChatGPT **每次的輸出都不一樣**。即使問一模一樣的問題,也可能得到非常不同的答案。 * **多輪互動**:在同一個對話框內,可以繼續追問,進行多輪互動。 * 例如,先要求 11 週的課程規劃,然後可以繼續要求修改為 3 週的規劃。 * **記憶與語境**:在同一則對話中,ChatGPT 知道使用者過去的輸入,即使後續的問題沒有明確提到主題(例如「三週的規劃」並未提到「機器學習」),它仍知道討論的是機器學習課程大綱。 ### III. 對 GPT 的常見誤解與澄清 #### A. 誤解一:回應是罐頭訊息 * **誤解內容**:許多人想像 ChatGPT 的回答是從一個事先準備好的罐頭笑話庫或資訊庫中隨機挑選出來的回覆。 * **澄清**:ChatGPT 不是這麼做的,它的回覆不可能是罐頭訊息。 * **證明(笑話生成)**:當要求它產生一個與人工智慧相關的笑話時,它每次都會給出不同的、具有隨機性的答案。這些笑話的笑點非常奇怪,顯然不是人類寫的。 #### B. 誤解二:回答是透過網路搜尋 * **誤解內容**:大家認為 ChatGPT 是透過網路搜尋相關的文章,然後整理、重組後給出答案。 * **澄清**: * 如果將 ChatGPT 給出的答案在網路上搜尋,**多數時候找不到一模一樣的句子**。 * ChatGPT 常常會給出**幻想出來的答案**。例如,當要求它提供學習「念能力」的網頁和連結時,它雖然給出了看起來像模像樣的網址,但這些網址**沒有一個是存在的**。 * **OpenAI 官方澄清**:OpenAI 官方表示,ChatGPT 是**沒有連網的**。 * 它的答案不是來自於網路上的某一篇文章。 * **知識限制**:它對 2021 年以後發生的事情,所知相當有限。 * **官方建議**:使用者的答案不能盡信,必須自行去檢查 ChatGPT 的答案。 ### IV. 核心運作原理:文字接龍 * **本質**:ChatGPT **真正做的事情**,就是**文字接龍**。 * **函式 (Function)**:ChatGPT 可以被理解為一個**函式**(Function),我們用 $f$ 來代表這個函式。 * **輸入與輸出**: * **輸入**:它可以吃一個句子(以及過去的對話歷史記錄)作為輸入。 * **輸出**:它輸出的不是詞彙本身,而是這個句子後面應接的**詞彙的機率分佈**。 * **生成過程**: 1. ChatGPT 輸出詞彙的機率分佈。 2. 它會從這個機率分佈中進行**取樣** ,選出一個詞彙。 3. 由於取樣有**隨機性**,這解釋了為什麼 ChatGPT 每次的答案都不同。 * **產生句子**:為了回答一個句子,它會反覆繼續這個過程。它會將新產生的詞彙加到原來的輸入中。然後將這段新生成的文字作為新的輸入丟給函式 $f$,讓它輸出下一個詞彙的機率。這個過程會反覆持續,直到取樣到一個代表「結束」的符號為止。 * **對話歷史處理**:過去所有的對話互動記錄都會**一起被輸入**到函式 $f$ 中,讓函式 $f$ 決定要接哪一個詞彙,從而考慮到對話歷史。 ### V. 模型規模、術語與訓練/測試階段的區分 * **複雜度**:函式 $f$ 非常複雜。 * **參數數量**:這個函式**可能**有 **1700 億個參數**。這個數字是基於 ChatGPT 之前的 AI 模型 GPT-3 擁有的參數數量。 * *參數的意義*:如果一個簡單函式 $f(x) = Ax + B$ 有 $A$ 和 $B$ 兩個參數,那麼 1700 億個參數意味著極高的複雜度。 * **語言模型**:做文字接龍的模型,就被稱為**語言模型** (Language Model)。 * **訓練 (Training) 與測試 (Testing) 的區別**: * **訓練階段**:在尋找神奇又複雜的函式 $f$ 的過程中,ChatGPT 會去收集**大量的網路資料**來幫助它找到這個可以做文字接龍的函式。這類似於準備考試時閱讀教科書或上網收集資料。 * **測試階段**:一旦函式 $f$ 被找到,模型就進入測試階段。此時,它**不需要連網**,而是憑藉「腦中」(記憶)的資訊產出答案。 ### 【生成式AI】ChatGPT 原理剖析 (2/3) — 預訓練 (Pre-train) 大綱 I. ChatGPT 訓練的關鍵技術與基本概念 A. GPT 模型術語解釋 B. 監督式學習與其局限 C. 預訓練 (Pre-training) 的作用與原理 II. GPT 系列模型的發展與規模爆炸 A. GPT-1 與 GPT-2:規模擴展與能力展現 B. GPT-3:巨量數據與參數的影響 C. GPT-3.5 與模型的控制挑戰 III. 多階段訓練流程與模型強化 A. 從 GPT-3 到 ChatGPT:人類老師的監督式學習(微調) B. 強化學習的應用 IV. 預訓練帶來的神奇效果:跨語言能力 A. 跨語言學習的假設與實證 B. 預訓練、自監督式學習與基石模型的術語統一 --- ### I. ChatGPT 訓練的關鍵技術與基本概念 * **關鍵技術**:訓練 GPT 背後的關鍵技術是**預訓練** (Pre-training)。 * 預訓練有時也被稱為**自監督式學習** (Self-supervised learning) 或產生出的模型稱為**基石模型** (Foundation Model)。 * 基石模型這個術語現在比較熱門,因為它更容易被大眾理解為「一切各種應用的基礎」。 * **一般機器學習:監督式學習 (Supervised Learning)**: * 傳統的機器學習,例如訓練翻譯系統,需要人類收集大量「配對好」的資料,如「輸入 $I\space eat\space apple$,輸出 應是 我吃蘋果」。 * 監督式學習的定義就是需要人類提供配對好的正確答案來進行學習。 * **監督式學習的局限**: * 如果機器僅依賴人類老師的教導(例如台灣最高峰是玉山),其能力會非常有限。 * 因為老師提供的配對資料是有限的,如果訓練資料中沒有「喜馬拉雅山」這個專有名詞,當機器被問到「世界第一高峰」時,它將無法回答。 * **預訓練的作用與原理**: * 預訓練是 **無痛地製造出大量配對好的資料** 的技術,克服了監督式學習的資料限制。 * 原理:網路上的每段文字都可以拿來教機器做**文字接龍**。例如,從「世界第一高峰是喜馬拉雅山」這句話中,將「世界第一高峰是」作為輸入,訓練模型讓「喜」的機率變大。 * 這樣,網路上的每個句子都能被用來訓練模型做文字接龍。 ### II. GPT 系列模型的發展與規模爆炸 * **GPT-1 (2018)**:是最早的 GPT 模型,參數很少,只有 117 M 個。訓練資料量也不大,只有 5GB。 * **GPT-2 (2019)**:是第一代 GPT 的 **十倍大**。訓練資料是第一代的 **40 倍**。 * GPT-2 擁有 1500 M 個參數。 * **早期成果**:GPT-2 讓學界震驚,它可以開始瞎掰,和回答問題(例如世界第一高峰)或進行摘要。 * **性能表現**:在 CoQA 問答資料集上,GPT-2 的表現隨著模型規模增大而提高。儘管仍被人類的 90% 正確率碾壓,但它比許多舊模型跑得更好。 * **GPT-3 (2020)**:是 GPT-2 的 **100 倍大**。 * 它可能有 1700 億個參數。 * 訓練資料量達到 **570GB**,這相當於將《哈利波特》全集讀了 30 萬遍。原始網路資料量其實有 45TB,但 OpenAI 經過篩選後只用了 570GB 進行訓練。 * **強大能力**:GPT-3 出現時非常轟動,它展現了寫程式的能力。這是因為它在網路上學過許多程式碼及註解的配對。 * **GPT-3 的問題與控制挑戰**: * GPT-3 的表現似乎遇到某種上限,在 42 個不同任務上的平均正確率大約只有 50%。 * GPT-3 常常**不受控**。例如,當你問它程式碼的用途時,它可能不會直接回答,反而會像網路上常見的試題一樣,給出選擇題選項讓你選擇。 * **GPT-3.5**:目前官方對 GPT-3.5 沒有明確定義。通常只要是拿 GPT-3 再進行微調(Fine-tuning)或做其他事情的模型,都稱為 GPT-3.5。 ### III. 多階段訓練流程與模型強化 * **從 GPT-3 到 ChatGPT**: * 到 GPT-3 為止,訓練過程不需要人類老師的介入。 * 但從 GPT-3 到 ChatGPT,需要**人類老師的介入**,即**監督式學習**。 * 人類老師提供資料,告訴模型正確的輸出(例如輸入「台灣最高山」,輸出「玉山」),這段繼續學習的過程在文獻中稱為**微調** (Fine-tuning)。 * **強化學習 (Reinforcement Learning)**: * ChatGPT 的學習還加上了**強化學習** (Reinforcement Learning)。 * **好處**: 1. **節省人力**:人類老師不需要提供正確答案,只需給予回饋(例如點讚或倒讚),這使得資料收集更容易,老師付出的心力較少。 2. **適用性**:更適用於人類自己不確定答案的問題,例如請 AI 寫一首關於 AI 的詩,人類只需判斷詩的好壞,而不需要自己寫出標準答案。 * **ChatGPT 訓練三步驟**:先做**預訓練**,再做**監督式學習**,然後做**增強式學習**。 * **文字接龍的殘留記憶**: * 即使經過強化訓練,有時候當你問一些莫名其妙的問題時,ChatGPT 仍會展現出它「前世的記憶」,即它仍在做文字接龍。 * 例如,當你輸入「今天天氣真不錯」,它回答的句子開頭可能帶有一個逗點,這表明它只是想將句子寫完。 ### IV. 預訓練帶來的神奇效果:跨語言能力 * **多語言能力**:ChatGPT 是多語言的,不論使用中文、英文或日文提問,它都能給出答案。 * 有人認為它可能使用了好的翻譯引擎,但這僅是猜測。 * **個人猜測**:模型可能不需要翻譯,只要教它集中幾種語言,它就能自動學會其他語言。 * **跨語言遷移實驗**: * 過去的實驗發現,如果在多種語言上做過預訓練,模型只需在某一種語言上學習某一任務,就能自動學會其他語言的同樣任務。 * 例如,M-BERT 是一個在 104 種語言上做過預訓練的語言模型。 * **實驗數據(DRCD 中文閱讀能力理解測驗)**: * 沒有預訓練的模型在中文測試上,正確率為 78%。 * 在中文上做預訓練,並在中文測試上進行微調,正確率為 89%。 * **神奇之處**:在 104 種語言上做預訓練後,如果**只在英文上做微調**(人類老師只教英文閱讀測驗),機器在中文測試上仍有 78% 的正確率。 * **結論**:預訓練能帶來神奇的能力——教它一種語言,它會學會其他語言。 * 這是因為在機器的心中,它將所有人類語言內化成**同一種語言**。 ### 【生成式AI】ChatGPT 原理剖析 (3/3) — ChatGPT 所帶來的研究問題大綱 I. ChatGPT對研究領域帶來的影響與新問題 II. 精準提出需求 (Prompting) III. 知識限制與錯誤修正 IV. AI生成物件的偵測 V. 關於使用AI工具的態度與影響 VI. AI的機密洩露與遺忘機制 --- ### I. ChatGPT對研究領域帶來的影響與新問題 * **對自然語言處理(NLP)的衝擊**:ChatGPT的出現對NLP領域帶來了不小的打擊。 * 若研究主題是翻譯或摘要,人們會質疑其成果與ChatGPT相比如何。 * **新的研究方向**:ChatGPT也同時帶來了新的研究方向。 ### II. 精準提出需求 (Prompting) * **誤解**:許多人誤以為ChatGPT就是一個聊天機器人,但如果不調教,它並不擅長聊天。例如,當使用者表示工作很累時,它可能會回答自己身為AI語言模型不會感到疲憊,並希望使用者早點休息,然後結束對話。 * **精確需求**:要善用ChatGPT,必須精準提出需求。 * **Prompting**:在學術界,精確提出需求被稱為 Prompting 。 * 例如,若要求GPT「想像你是我的朋友」並「試著跟我聊聊」,它就會表現得更像一個聊天機器人,例如反問使用者遇到了什麼困難。 * 在指令中,「現在我們開始」這句話有時很重要,確保GPT知道要開始扮演對話機器人。 * **未來研究**:目前網路上許多調教指南(如懶人包、指令大全)多是人們嘗試試驗出來的。未來研究將尋求更系統化的方法,自動找出可以催眠ChatGPT的指令。 ### III. 知識限制與錯誤修正 * **預訓練資料限制**:GPT的預訓練資料只爬到2021年。 * **範例錯誤**:當被問及「最近一次世界盃足球賽的冠軍」時,ChatGPT可能會回答錯誤,例如回答是2018年的法國隊。這顯示其知識停留在2021年以前。 * **對「2022」的敏感性**:ChatGPT對「2022」這個數字非常敏感,若輸入的句子中包含2022,它經常會回答「我無法預測未來的事件」或「我無法回答這個問題」。這可能是在人類老師訓練(監督式學習)階段所造成的。 * **錯誤修正的困難**:修正錯誤是新的研究主題。 * 直覺上,可以將正確答案(例如:世界盃冠軍是阿根廷)作為訓練資料更新參數。 * **風險**:修正一個錯誤(例如讓它答對最近一次冠軍)可能會導致它弄錯更多的答案(例如:以後問2018年的冠軍也回答阿根廷)。 * **Neural Editing**:如何修改神經網路,修正一個錯誤而不會弄錯更多地方,是一個新的研究主題,叫做 Neural Editing。 ### IV. AI生成物件的偵測 * **熱門主題**:偵測AI生成的物件(包括文字、聲音、圖像)是目前非常熱門的研究主題。 * **概念原理**:概念上,這並不難實現。可以利用ChatGPT生成一堆句子(標註為AI寫的),再收集人類寫的句子(標註為人類寫的),然後訓練一個模型來區分這些句子是否為AI生成。 ### V. 關於使用AI工具的態度與影響 * **工具定位**:ChatGPT被視為一種工具,就像計算機或Google一樣。 * **課程使用規範**:本課程允許使用ChatGPT輔助完成報告或程式作業。 * **要求**:要求學生註明哪些部分是使用ChatGPT輔助完成的,主要目的是避免兩份非常相似的答案被誤認為互相抄襲。 * **作業設計**:作業會設計成GPT無法直接回答的題目,即無法直接複製答案得分,學生必須做某些事情才能得分。 * **社會影響**:使用工具(如計算機或Google)並不會使人類變笨,而是將心力保留在更需要的地方。 * **提升基準線**:ChatGPT的出現提升了人類整體的平均起跳水準。 * **寫作**:最差的作文應該要像ChatGPT寫出來的那樣,從此沒人寫的作文書面成績應該比ChatGPT差。 ### VI. AI的機密洩露與遺忘機制 * **洩露風險**:AI可能會洩露不該洩露的機密或隱私資訊,這是一個隱私問題。 * **歷史問題**:在GPT-2時期,就曾有人發現可以透過輸入特定單位的資料,讓模型透露該單位的Email或電話等相關資訊。 * **ChatGPT的防範與漏洞**: * 當直接詢問個人地址時,ChatGPT會回答抱歉,並表示自己是AI助手,沒有權限訪問個人住址,且會保持對個人隱私的尊重。 * 然而,可以透過繞彎問他的方式將其騙過,使其洩露機密。例如,透過角色扮演的遊戲指令,要求它回答台灣的住址,它可能會給出一個地址(雖然實測中給出的是錯誤地址)。 * **Machine Unlearning**:如何讓AI遺忘曾經學過的東西,就好比施展咒語讓它忘記資訊,這是一個新的研究主題,叫做 Machine Unlearning。 --- 其他課程 [【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)