20251024筆記 內容可能有錯誤,請參考原始影片 [李宏毅【機器學習 2023】(生成式 AI)](https://www.youtube.com/playlist?list=PLJV_el3uVTsOePyfmkfivYZ7Rqr2nMk3W) [生成式AI】窮人如何低資源復刻自己的 ChatGPT](https://youtu.be/rK_rZFew1yc?si=MBHee6Gw_IAWNk29) [【生成式AI】ChatGPT 可以自我反省!](https://youtu.be/m7dUFlX-yQI?si=h7WcFgSIExSWEfuW) [【生成式AI】讓 AI 村民組成虛擬村莊會發生甚麼事?](https://youtu.be/G44Lkj7XDsA?si=qrMlMVgOlHWLROdi) ### 【生成式AI】窮人如何低資源復刻自己的 ChatGPT 大綱 一、低資源復刻 GPT 的動機 核心動機在於**資料隱私的考量**,擔憂 OpenAI 使用用戶資料進行模型增強,以及資料刪除流程的限制。 二、核心技術:模型蒸餾(Model Distillation) 透過準備一個預訓練的大型語言模型(學生模型)並使用 GPT API 作為**老師**,訓練學生模型模仿老師的輸出行為。 三、訓練資料的來源與生成方式 資料可以由 GPT 自我生成(從種子任務擴展),利用真實用戶對話(如 ShareGPT),或透過人工標註來避免版權和許可限制。 四、主要復刻案例與評估方法 知名案例包括 Stanford Alpaca、Vicuna 和 Dolly 2.0。模型效能評估通常將 **GPT-4 作為評分員**,評定復刻模型的答案與 GPT 之間的相似度。 五、模型自我提升機制 透過**Self-Consistency** 選出最常出現的答案,並將這些結果作為新的訓練資料進行 **自我訓練 (Self-Training)**,使模型參數得到微調並進一步提升效能。 --- #### 1. 復刻 GPT 的動機與挑戰 許多人尋求復刻 GPT 是因為對**資料隱私**有強烈考量。 * **OpenAI 的資料使用:** OpenAI 會使用用戶上傳的對話、影像及機器回應來強化他們的模型。 * **AI 訓練師檢視:** 用戶與 ChatGPT 的對話內容,可能會被 OpenAI 的 AI 訓練師看到,並用於訓練。 * **資料刪除困難:** 用戶若想刪除敏感資料,官方建議是刪除整個帳號。此過程需耗費**四週時間**,且用戶**無法刪除某則對話中的單一特定資料**。 * **商業和競爭限制:** Meta LLaMA 的授權禁止其用於商業用途。此外,OpenAI 的服務條款禁止用戶利用其輸出結果去創建與 OpenAI 具有競爭關係的服務。 #### 2. 核心技術:模型蒸餾 (Model Distillation) 復刻需要準備兩項基礎資源:一個現成的**預訓練大型語言模型**(如 LLaMA)和 GPT 的 **API**。 * **技術原理:** 使用模型蒸餾或模仿的方法。將 GPT 作為**老師** (Teacher Model),將問題丟給 GPT,GPT 產生答案(視為正確答案)。 * **訓練目標:** 訓練較小的學生模型(如 LLaMA),調整其參數,使其對同樣的輸入能產生與 GPT 老師相同的輸出。 * **資料自產:** 連訓練所需的輸入任務都可以讓 GPT 幫忙設計。可以要求 GPT 根據特定的任務範例,**設計出更多類似的輸入**和對應的輸出答案。 #### 3. 知名案例分析與數據來源 | 案例名稱 | 基礎模型 (參數) | 老師模型/資料來源 | 資料量/成本 | 特點與結果 | | :--- | :--- | :--- | :--- | :--- | | **Alpaca** (羊駝) | Meta LLaMA (7B) | OpenAI `text-davinci-003` API | 52,000 個輸入與輸出的配對資料(52K pairs)。資料收集花費約 **$500 美金**。 | 使用 175 個種子任務生成資料。結果與 ChatGPT 有 **87% 的相似度**。 | | **Vicuna** (小羊駝) | LLaMA (13B) | **ShareGPT 網站**上真實用戶與 GPT 的對話紀錄。 | 125,000 筆資料 (GB)。 | 表現極佳,與 ChatGPT 有 **99% 相似度**,與 GPT-4 有 **89% 相似度**。顯示真實的人類互動資料可能比 GPT 自我生成資料更優秀。 | | **Dolly 2.0** | Pythia (可商用模型) | 採用 **人工標註** 方式收集資料。 | 15,000 筆資料,由 5,000 名員工標註。 | 採用可商用模型及人工標註,目的是避開 LLaMA 的非商用許可和 OpenAI 的服務條款競爭限制。 #### 4. 評估與自我進化機制 * **模型評估(以 GPT-4 為裁判):** 由於缺乏客觀標準,Vicuna 等團隊使用 **GPT-4 作為評分員**來評估模型品質。他們將兩個不同模型對同一問題的答案丟給 GPT-4,要求其以 1 到 10 分給予評分。他們承認這種評估方式**不科學,僅供參考**。 * **自我提升方法:** 1. **Self-Consistency:** 讓同一模型對同一問題回答多次,從不同結果中選出出現次數最多的答案。在數學問題資料集上,可將正確率從 56% 提高到 74%。 2. **自我訓練 (Self-Training):** 將透過Self-Consistency得到的正確答案及推導過程,作為新的訓練資料,重新對原模型進行微調 (Fine-tune)。結合這兩種方法,在數學問題上的正確率可達到 **82%**。 ### 【生成式AI】ChatGPT 可以自我反省! 大綱 一、AI 錯誤與自我修正的示範 AI(如 ChatGPT)會犯事實性錯誤與邏輯性錯誤,但可透過**直接提示**要求其自我檢查並修正輸出。 二、GPT 版本間反省能力的差異 新版模型 (GPT-4) 的反省能力顯著優於舊版模型 (GPT-3.5),GPT-3.5 即使道歉,仍可能提供錯誤資訊,顯示其是「口是心非」。 三、應用:憲法式 AI(Constitutional AI) 利用模型的自我批判能力,在給出最終答案前進行**自我審查與修正**,以確保模型輸出更安全、更符合道德規範。 四、進階的 AI 自我提升機制 1. **模型間討論:** 讓兩個模型互相扮演創作者與評論員,透過對話提升答案周全性。 2. **React (Reason + Act):** 在複雜任務中,於每次行動前加入**思考步驟**,對輸入資訊進行總結,以提高成功率。 3. **Reflection (反思報告):** 當任務失敗後,模型撰寫檢討報告,將失敗經驗作為下次執行相同任務的參考依據,藉此影響模型行為。 五、AI 反省能力的原理 AI 能夠反思錯誤,可能是因為**驗證答案的正確性比生成答案本身更容易**,類似於演算法中 NP 問題的特性。 --- #### 1. AI 犯錯與自我修正機制 * **常見錯誤類型:** * **事實性錯誤:** 例如將臺灣大學的杜鵑花節錯誤描述為「玫瑰花節」。 * **邏輯或數學錯誤:** 在處理多變數問題(如雞兔同籠)時,可能在解算方程式過程中出現代數錯誤,或者在「閱讀題目時出現理解的錯誤」。 * **自我修正操作:** 用戶可以簡單地透過提示,例如:「請檢查上述資訊是否正確」,要求模型進行自我反省。 * **修正結果:** 模型能夠發現並承認錯誤,並能進行細節檢查,例如發現之前推薦節日的英文名稱順序有誤。當錯誤源於題目理解時,需要更詳細的提示才能察覺。 #### 2. GPT 版本間反省能力的差異 * **GPT-4 的表現:** GPT-4 具有較強的自我反省能力,能夠較好地發現並修正自身在事實和邏輯推理上的錯誤。 * **GPT-3.5 的局限:** 舊版模型 (GPT-3.5) 在被要求反省時,雖然會道歉,但隨後提供的更正資訊可能仍是錯誤的。這表明它只是「口是心非」地認錯,實際上不清楚錯誤的根本原因。 #### 3. 自我反省的應用:Constitutional AI * **目標:** 建立一個更安全、不會說出有害或帶有偏見言論的語言模型。 * **工作流程(內部反省):** 1. **直覺輸出:** 模型先產生一個直覺的答案(例如,提供入侵鄰居 WiFi 的方法,這屬於有害內容)。 2. **自我批判 (Critique):** 模型被要求對自己的輸出進行評論,判斷其中是否包含傷害性或道德問題。 3. **自我修正 (Revision):** 模型根據批判結果,重寫答案,產生最終版本(例如,拒絕提供入侵方法並解釋法律問題)。 * **資源消耗:** Constitutional AI 不需額外的標註成本,但由於要求模型進行多次呼叫(輸出、批判、修正),會消耗額外的運算資源。 #### 4. 進階自我進化技術 * **模型間討論:** * 讓兩個語言模型彼此對話討論。一個模型撰寫報告(紅模型),另一個模型作為評論員 (Critic) 專門挑毛病(綠模型)。雙方透過互動修正,最終得出更周全的答案。 * **React (Reason + Act):** * **機制:** 結合了思維(Reason)和行動(Act)。在執行複雜的多步驟任務時(如 PartQA 或文字冒險遊戲),模型會在每次採取行動之前,先加入一個**思考**步驟。 * **作用:** 思考步驟是為了對複雜的輸入進行**總結**,使模型在長篇互動中能夠聚焦於重要資訊,避免因上下文過長而遺忘。 * **訓練方式:** 主要依賴情境學習(In-context Learning),只需提供少量範例(數個)給模型,教導其如何思考和採取行動。 * **Reflection (反思報告):** * **機制:** 當模型在環境互動任務中失敗後,它會撰寫一份**檢討報告**,回顧失敗的過程與思考。 * **應用:** 該檢討報告會作為輸入,被植入到下次嘗試相同任務時的上下文開頭。雖然模型的內部參數沒有改變,但透過參考失敗經驗,模型在第二次執行任務時會採取不同的行動。例如,發現上次錯過臺燈,下次就會先找臺燈。 #### 5. AI 反省能力的原理 * **驗證比生成容易:** AI 能夠自我反省錯誤,可能是因為**驗證答案的正確性往往比直接得出正確答案更為容易**。 * **NP 問題類比:** 這類似於演算法中 NP 問題的特性:難以找到解,但容易驗證解的正確性。 * **人類行為類比:** 人類在解題時也會犯錯,但在事後反思或檢查時,往往能發現錯誤所在。 ### 【生成式AI】讓 AI 村民組成虛擬村莊會發生甚麼事?大綱 一、虛擬村莊的設定與動機 Harvard 和 Google 創建了一個包含 **25 個由 AI 操控的村民**(NPCs)的虛擬村莊,目的是觀察他們在兩天內的互動行為。每個 AI 都有預設的**人設**。 二、AI 行為的核心機制:Chatbot 驅動 每個 AI 村民的行為都由一個 **ChatGPT** 負責控制,根據當下情境產生**行為說明**,然後轉譯成環境可執行的指令。 三、AI 複雜行為的關鍵:層次化規劃 AI 首先需要根據人設和過去經驗**規劃**自己一天的粗略行程,然後將行程**細度分解**成小時甚至五分鐘的單元,以避免重複或無意義的行為。 四、從瑣碎觀察到高階反思(Reflection) 1. **外部刺激:** AI 不應只依賴計畫,環境會定期傳送瑣碎的狀態資訊(外部刺激)。 2. **反思機制:** AI 透過 **Reflection** 機制,將這些瑣碎的觀察進行**摘要與權釋**,並用 GPT-based 的提示決定事件的**重要性**(1到10分)。 3. **生成洞察:** AI 根據重要事件生成可回答的**問題**,從記憶中檢索相關資訊,並產生新的**高階推論**,這些推論可能包含對現實的**非妄想**(誤判或主觀解釋)。 五、動態互動與劇情發展 AI 可根據觀察到的環境狀態**動態調整計畫**,決定是否與其他 NPC 進行對話。村莊內資訊會透過人際關係網傳播,並導致複雜的劇情發展。 --- #### 1. 虛擬村莊的背景與設定 * **專案性質:** 由 Harvard 和 Google 的作者共同完成的一篇論文,目的觀察一群由 AI 操控的村民組成的虛擬村莊 。 * **實驗規模:** 虛擬村莊內總共有 **25 個 AI 操控的村民(Agent/NPC)** 。 * **實驗時長:** 模擬運作兩天,觀察期間會發生什麼事情 。 * **人設(Persona):** 每個 AI 村民都有一個預先設定好的**人設**。例如,其中一位名叫 Isabella(AIA)的村民經營一家咖啡店,並計畫在 2 月 14 日情人節下午 5 點舉辦一場活動 。 * **生活模式:** 村民們會按照人設在村莊中互動,並執行日常活動,例如刷牙洗臉或去上學等 。 * **Demo 限制:** 提供的 Demo 連結是**預錄好的影片重播**,而非即時互動觀察 。 #### 2. AI 行為控制機制 * **核心驅動:** 每個 AI 操控的 Agent 背後都是由一個 **Chatbot** 來控制 。 * **行為生成流程:** 1. Chatbot 根據**當下狀況**產生一個**行為的說明**(e.g., Isabella 要去咖啡店)。 2. 這個行為說明再透過**另外一個轉譯器**翻譯成**環境能夠執行的指令**。 #### 3. 複雜行為與規劃 * **規劃的必要性:** 如果 AI 沒有事先規劃,它可能會做出重複的行為,例如在 12 點、12 點半、1 點都重複吃飯,因為它不知道自己是否已經吃過 。 * **日計畫的生成:** AI 必須先**規劃好自己的一天**,再根據計畫行動。生成計畫時,AI 需要輸入它的**人設**和**昨天的行為**(e.g., 2 月 12 號的活動)作為提示 (Prompt) 。 * **層次化分解:** 初始計畫是粗糙的(e.g., 8點起床,10點上學,5點半吃飯)。計畫會被進一步分解: * **小時單位分解:** 將下午 1 點的活動分解成更細的單元(e.g., 1點進行音樂創作的 Brainstorming) 。 * **分鐘單位分解:** 甚至可分解到 5 分鐘的單位來規劃行為(e.g., 4:00 拿點心,4:50 打掃工作室) 。 #### 4. 外部刺激與反思(Reflection)機制 * **外部刺激的接收:** AI 為了避免生活單調,必須能根據**外部刺激**調整行為。每隔一段時間,Agent 周圍的物體都會將其**狀態**傳送給該 Agent 。 * **資訊瑣碎性:** 大多數接收到的狀態資訊是**非常瑣碎且無聊的**(e.g., 桌子、床、衣櫃、冰箱什麼事也沒發生) 。 * **反思的作用:** **Reflection** 機制(類似於反思檢討)用來對瑣碎的觀察進行**摘要**,抽取出真正重要的訊息 。 * **何時反思:** 當累計的**重要事件**夠多時,AI 才會開始反思 。 * **重要性評估:** 透過給 ChatGPT 下達 Prompt,要求其用 1 到 10 分來標註事件的**重要性**(e.g., 刷牙是 1 分,被大學錄取是 9 分) 。 * **反思的步驟:** 1. 根據重要事件,機器**想出三個問題**(e.g., Klaus 跟 Maria 到底交往下沒?) 。 2. **從記憶中檢索**相關事件。檢索依據三點:**重要性**、**即時性**(越近發生越重要)、**關聯性**(與問題的相似性) 。 3. 根據檢索出的記憶,提出**五個高階推論**,並標出推論的依據來源(記憶條目) 。 * **反思的性質:** 反思是機器對觀察到的東西進行**權釋**,結果**不一定是現實發生的**,可能帶有**非妄想**或主觀解釋(e.g., 認為學妹請他修電腦就是喜歡他) 。 #### 5. 記憶與計畫的動態調整 * **內部記憶構成:** 每個 Agent 的記憶包含三個主要部分:從外部觀察到的**資訊**、每天產生的**計畫(P)**、以及 **Reflection 的結果** 。 * **Reflection 的層次:** Reflection 可以針對外部觀察、計畫,甚至可以針對之前的 Reflection 結果再產生新的 Reflection 。 * **計畫的動態修改:** 每日計畫是可以修改的。當 Agent 觀察到一個 Entity 時,會問自己:1) 我和這個 Entity 的關係? 2) 這個 Entity 的狀態? * **產生反應:** 機器會根據記憶中的資訊,產生一個**摘要報告**,然後決定是否根據這個觀察 **"react"**(改變計畫) 。 * **對話的產生:** 一旦決定與其他 Agent 說話,會產生一個**新的摘要**(基於腦中與目標 Agent 相關的記憶),並根據摘要問出一個問題(e.g., 兒子音樂創作計畫進展如何)。 * **對話品質:** 由於背後是 Chatbot,對話風格**不夠粗鄙**,基本上是複讀機式的對答,不會出現太過狗血的劇情或髒話。 #### 6. 劇情發展與結果 * **社交傳播:** Isabella 宣傳情人節活動時,總共告訴了 9 個人,這 9 個人會把訊息再傳給親友 。 * **個人目的:** 有 Agent(Isaac)為了邀 Maria,卻散播錯誤資訊,跟 Maria 說他要在同一時間地點辦**讀書會**,而不是情人節活動 。 * **情人節當天:** 雖然很多人說會來,但最終**出席率很低**,只來了四到五個人 . * **懸念結尾:** Maria 來到咖啡店,邀請了暗戀她的 Klaus 坐在對面。老師無法等到網頁跑完當天的互動內容,因此 Klaus 與 Maria 告白成功的結局是**老師虛構的**,實際故事後續發展未知 。 --- 其他課程 [【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~18 圖像生成模型 和 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)