---
# System prepended metadata

title: 【2023生成式AI】28~30 FrugalGPT 用省錢的方式來使用 ChatGPT
tags: [生成式AI]

---

20251026筆記 內容可能有錯誤，請參考原始影片 


[李宏毅【機器學習 2023】(生成式 AI)](https://www.youtube.com/playlist?list=PLJV_el3uVTsOePyfmkfivYZ7Rqr2nMk3W)

[【生成式AI】讓 AI 做計劃然後自己運行自己](https://www.youtube.com/watch?v=eCurieNADlR0jSs&list=PLJV_el3uVTsOePyfmkfivYZ7Rqr2nMk3W&index=28)
[【生成式AI】FrugalGPT: 來看看窮人怎麼用省錢的方式來使用 ChatGPT (上)](https://www.youtube.com/watch?v=vxxPtDCb9Go&list=PLJV_el3uVTsOePyfmkfivYZ7Rqr2nMk3W&index=29)

[【生成式AI】FrugalGPT: 來看看窮人怎麼用省錢的方式來使用 ChatGPT (下)](https://www.youtube.com/watch?v=VpKN3KvSK6c&list=PLJV_el3uVTsOePyfmkfivYZ7Rqr2nMk3W&index=30)


### 【生成式AI】讓 AI 做計劃然後自己運行自己 大綱

I. **自主 AI 代理的概述與核心概念**
    *   **類型：** 涵蓋 AutoGPT、BabyAGI 等系列自主運行 AI。
    *   **核心精神：** 讓大型語言模型（LLM）將複雜任務**拆解**成一系列可執行的小任務。
    *   **規劃機制：** AI 進行自我規劃，並將成果合起來達成最終目標。
II. **規劃與執行的應用案例**
    *   **寫作與創造：** 透過分步規劃（場景、人物關係、草稿、修訂）來寫出優質故事（Re3 論文）。
    *   **虛擬環境操作：** 在模擬器中控制虛擬實體執行複雜動作（例如倒牛奶），需要將抽象步驟對應到可執行的動作。
III. **進階規劃與外部工具調用 (HuggingGPT)**
    *   **HuggingGPT（HGT）：** GPT-4 進行規劃，並從 Hugging Face 上尋找並調用其他專業 AI 模型來解決子任務。
    *   **流程：** 任務規劃（Task Planning）、模型選擇（Model Selection）、任務執行、報告生成。
IV. **數位環境中的自主操作**
    *   **目標：** 讓 AI 根據人類指令在螢幕上進行互動操作（如點擊、打字、刪除郵件）。
    *   **方法：** 輸入螢幕的 HTML 內容，模型輸出可執行的操作指令（如滑鼠移動、打字）。
    *   **優化：** 在執行前加入自我 **Self-Criticism 或** Grounding 步驟，以確保行動的可執行性和合理性。

---


#### 一、 自主 AI 代理的概述與核心概念

1.  **自主運行的 AI 類型：** 目前已有多種自主運行的 AI 系統，如 AutoGPT、BabyAGI 等。
2.  **核心精髓：** 這些自主運行的 ChatGPT 背後的核心精神是**把大任務拆解成一系列的小任務**，也就是學會做**規劃**。
3.  **規劃機制：** 面對一個複雜的任務，LLM 會先將其拆解成一系列的子任務，再逐個完成子任務，並將這些成果合起來，最終完成大任務。
4.  **AutoGPT 的優勢：** 推薦使用 AutoGPT 進行學習，因為它在每一個執行的階段都會停下來詢問使用者是否執行下一步，並會清楚告知其理由。這使得使用者能夠更容易理解這些自主運作的 AI 的運作邏輯。

#### 二、 大型任務的拆解與執行例子

1.  **學習地圖的規劃範例：** 給 Godmode 一個複雜的任務（例如將 YouTube 頻道上的機器學習影片製作成學習地圖）時，它會列出三個子任務：
    *   觀看 YouTube 上的機器學習影片。
    *   將這些影片進行整理和分類。
    *   產生一個可視化的學習地圖。
2.  **執行流程與干預：** 在執行每個子任務之前，模型會闡述其思維過程（例如它需要先看完影片才能規劃地圖），並給出它接下來想採取的行動（例如 Google 搜尋影片）。使用者可以在此步驟提供建議來影響模型的行為。
3.  **自動運行的風險：** 實際測試發現，如果自行運行，它可能會開始做一些奇怪且沒用的事情，例如花費大量時間研究影片摘要工具，但最終卻無法執行這些工具。
4.  **故事寫作的先例（Re3）：** 早在 2022 年就有類似的嘗試。若直接讓機器寫一個完整的故事通常效果不好，因此採用分步規劃。
    *   **寫故事的規劃：** 讓機器先搭建場景、想好故事裡的角色關係，然後寫一個故事大綱。
    *   **細緻執行：** 接著根據大綱的每一個段落，寫草稿和重新撰寫（修訂）。它會寫好幾個版本的草稿，並訓練另一個模型來選擇最好的版本。這個修訂過程甚至包括檢查人物屬性（如性別、年紀）是否與原計劃衝突。

#### 三、 虛擬與實際環境中的行動執行

1.  **語言模型作為具體化代理人（Embodied Agents）：** 這是更早的研究，讓語言模型去控制一個虛擬實體，使其在虛擬環境中完成任務（例如倒一杯牛奶）。
2.  **行動規劃的挑戰：**
    *   **挑戰一：** 如何將大任務自動分解成小任務。
    *   **挑戰二：** 如何將每個小任務對應到實體在虛擬環境中可執行的動作（因為實體的動作集合是有限的）。
3.  **解決方法：**
    *   **規劃：** 使用 **In-Context Learning**（給予模型範例）來讓大型模型自動生成完成任務所需的步驟。
    *   **動作校準：** 模型產生的步驟可能無法直接執行。因此，將所有可執行的動作列出，然後將模型生成的動作與**最接近**的可執行動作進行比對，並執行後者。
4.  **行為正確性與可執行性評估：**
    *   **正確性（Correctness）：** 由人類判斷模擬的動作是否正確。在某些情況下（如 GPT-3），AI 規劃的步驟甚至比人類規劃的更正確。
    *   **可執行性（Executability）：** 衡量動作實際能被執行的比例。透過動作校準（將非可執行的動作映射到可執行的動作），雖然正確率會略微下降，但可執行性會大幅提高。

#### 四、 進階規劃與外部工具調用 (HuggingGPT)

1.  **HuggingGPT：** 這是一個更進階的概念，它不僅會做規劃，還會**尋找並調用其他模型**來完成子任務。HuggingGPT 的論文於 2023 年 3 月發布。
2.  **HuggingGPT 的複雜任務範例：** 讓 HuggingGPT 執行一項複雜任務：生成一張讀書的小女孩的圖片，該小女孩的動作必須與另一張範例圖中的小男孩動作一樣，最後還需用語音合成方式朗讀圖片描述。
3.  **HuggingGPT 的運作步驟：**
    *   **Task Planning（任務規劃）：** LLM（GPT-4）先將複雜任務拆解成一系列子任務，並安排執行順序。例如，它會規劃先做動作控制來偵測小男孩的動作，然後根據動作生成圖片，接著進行圖片分類、文字生成等。
    *   **Model Selection（模型選擇）：** HuggingGPT 會去 Hugging Face 上尋找模型來解決子任務。它會讓 Chatbot 閱讀任務描述和模型卡（Model Card，描述模型用途），從而判斷哪個模型最適合當前任務。
    *   **Execution（執行）：** 將模型所需的輸入（例如圖像、文字）丟給選定的模型，然後得到輸出。
    *   **Report Generation（報告生成）：** HGT 會產生一份報告，將每個子任務的執行過程、輸入、輸出一一整理，並總結最終成果。

#### 五、 數位環境中的自主操作 (UI/Web 互動)

1.  **目標：** 讓機器根據人類的指令，在螢幕（例如網頁界面）上進行操作，類似於用戶操作產品。例如，讓機器點擊特定圖示、刪除特定郵件或點擊鏈接。
2.  **輸入與輸出：**
    *   **輸入：** 模型的輸入是螢幕畫面的 **HTML 原始碼**。
    *   **輸出：** 模型的輸出必須是可執行的指令，例如打字（`Type("文字")`）或移動滑鼠到特定物件上。
3.  **增強規劃：** 在這種 UI 互動任務中，模型會先制定計畫。
    *   **自我修正：** 接著，它會進行自我質疑（Self-Criticism），找出計畫中的問題。
    *   **產生更好的計畫：** 模型會根據質疑的結果，產生一個更優化的計畫（例如，先用 `LS` 指令查看有哪些檔案，再決定要刪除哪些檔案）。
4.  **行動審視（Grounding）：** 在執行動作時，AI 會進行審視：
    *   **審視當前狀態：** 考慮當前網頁狀態（web page）來重寫想要執行的動作。
    *   **執行校準：** 即使模型產生了動作（例如 `rm .RB`），這個指令可能無法直接執行，因此需要挑選一個**可以被執行**的、最接近的指令來替代（例如 `type rm .RB`）。

### 【生成式AI】FrugalGPT: 來看看窮人怎麼用省錢的方式來使用 ChatGPT (上) 大綱

I. **研究背景與動機：高昂的 API 成本**
    *   GPT-4 的計費結構：輸入與輸出的 Token 數會被分開計費，且輸出的費用更高。
    *   大規模使用的成本問題：即使單次使用費用低廉，但總量龐大時（如分析台北市 1999 專線），成本將非常巨大。
II. **成本節約方法一：優化輸入內容**
    *   **Few-shot 選取：** 減少提供給模型的範例數量，只使用最少量的範例。
    *   **輸入合併：** 將多個問題串接起來一次丟給 API，以節省重複輸入 Few-shot 範例所需的成本。
III. **成本節約方法二：模型在地化與快取**
    *   **自建模型：** 資源足夠時，自建語言模型來避免使用線上 API（適用於「比較有錢的窮人」）。
    *   **問答快取（Caching）：** 儲存問過的問題與答案。當遇到相似問題時，直接從資料庫丟出答案，以節省 API 呼叫費用。
IV. **核心方法三：語言模型池 (LLM Pooling, LLM Cascade)**
    *   **基本策略：** 針對問題難度，分級使用不同強度和價格的 API。
    *   **運作機制：** 採用階梯式詢問與驗證，從最便宜、最弱的模型開始，只有難題才升級到最強、最貴的模型（如 GPT-4）。
V. **LLM Cascade 成果：節省成本與提高準確度**
    *   **成本效益：** 系統能大幅減少昂貴模型的使用，顯著降低總成本。
    *   **準確度提升：** 由於模型的非單調性（Non-Monotonicity），組合系統的準確率甚至比單獨使用最強的 GPT-4 更高。

---

#### 一、 研究背景與高昂的 API 成本

1.  **論文名稱與目標：** Frugal AI，主要目標是在**不犧牲效能**的情況下，找到節省 API 費用的方法。
2.  **GPT-4 的計費結構：** 使用大型語言模型會產生費用，且計費方式是根據 Token 數量收費。
    *   GPT-4 的收費標準是：每輸入 1,000 個 Token 約 $0.03 美元；每輸出 1,000 個 Token 約 $0.06 美元。
    *   **輸出成本更高：** 通常模型的**輸出成本**比輸入成本高，有時甚至高達一倍，這可能是因為模型覺得輸出（生成答案）的成本比輸入更高。
3.  **大規模使用導致的成本爆炸：** 雖然單次使用 API 花費很少，但當使用量非常大時，總成本會非常可觀。
    *   **案例：** 假設分析台北市 1999 市民專線的電話資料。台北市每個月有約 **15 萬通**電話。
    *   如果每次分析一通電話的花費大約是 3 塊錢（新台幣），那麼每個月的費用將高達約40 多萬台幣，這對市政服務來說是一筆巨大的費用。

#### 二、 成本節約方法一：優化輸入內容

這類方法目的在減少輸入的 Token 數量，因為輸入也是要花錢的。

1.  **範例選擇優化（Few-shot Selection）：**
    *   在 In-Context Learning 中，我們通常會提供範例（Example）給模型。但研究建議，可以考慮**是否真的需要這麼多範例**。
    *   如果只用一個範例就能得到相似的結果，就應該只放一個，達到省錢的目的。
2.  **輸入串接（Input Concatenation）：**
    *   通常我們將問題 Curie3 丟給模型得到答案，再將 Curie4 丟給模型得到答案。
    *   真正的節省來自於：當模型需要 Few-shot 範例時，這些範例原本需要**丟兩次**（Curie3 丟一次，Curie4 丟一次）。
    *   **優化：** 將 Curie3 和 Curie4 串接起來**一次丟入**，並要求 Chatbot 同時回答兩個問題，這樣**範例（Example）只需要丟一次**，從而省下重複丟範例的成本。

#### 三、 成本節約方法二：本地化與快取

1.  **自建語言模型（Self-Build LLM）：**
    *   如果不想使用線上 API，可以自行建立一個語言模型。
    *   然而，這個方法需要耗費大量資源和成本，因此被稱為是「比較有錢的窮人」才能使用的技術。
2.  **問答快取（Caching）：**
    *   將過去問過 Chatbot 的問題和答案，全部儲存在一個資料庫中。
    *   當有人問一個新問題時，先檢查資料庫中**有沒有非常類似的問題**。
    *   如果找到相似的問題，就直接丟出先前看過的答案，藉此省下 API 的費用。如果服務的使用者經常問非常類似的問題，這個方法將非常有效。

#### 四、 核心方法三：LLM Cascade

這是論文中真正進行實驗的主要方法。

1.  **核心理念：分級使用模型**
    *   線上有許多 API 可供選擇，它們的強度、大小和收費都不一樣。例如，GPT-Curie 相較於 GPT-3 或 GPT-4 偏小，GPT-3 的收費是 GPT-Curie 的 **十倍**。
    *   **策略：** 應該拿**簡單的問題**去問比較弱、但更便宜的模型，只有**難的問題**才去問比較強的模型。這就是「殺雞用雞刀，殺牛用牛刀」的原則。
2.  **非單調性能力（Non-Monotonicity）：**
    *   不同模型的能力並非完全可以互相取代。
    *   研究發現，即使是最強的 GPT-4 也不是完美的，仍然會答錯一些問題。例如，在某項任務（HeadLine）中，**有 4% 的問題是 GPT-4 答錯，但 GPT-J 卻答對了**。
    *   這意味著，將所有語言模型整合在一起使用，有潛力比單獨使用最強模型得到更好的結果。

#### 五、 LLM Cascade 的機制與成果

1.  **階梯式詢問與驗證機制：**
    *   **第一步：** 當使用者輸入一個問題時，先將問題輸入給**最弱的模型**（如 GPT-J）。
    *   **第二步：** 答案產生後，交給一個 **驗證模組（Scorer Module）** 進行判斷。
        *   這個驗證模組會輸出一個分數，代表該答案是正確的機率。
        *   驗證模組通常是一個**非常小的模型**，執行成本低廉，因此在計算總成本時，其資源消耗被忽略。
    *   **第三步：** 閾值判斷：系統預設一個閾值（Threshold），例如 **0.96**。如果驗證分數超過 0.96，則認為 GPT-Curie 的答案已經足夠好，直接輸出。
    *   **第四步：** 升級：如果分數低於閾值，則將問題傳遞給**下一個更強的模型**（如 GPT-J1-L），並再次驗證其答案。
    *   **最終步驟：** 只有當所有簡單模型都無法解決的問題，才會去詢問**最強且最貴的 GPT-4**。

2.  **實驗結果：成本節約與準確度提升：**
    *   在 HeadLine 數據集上測試，單純使用 GPT-4 的準確率是 85.7%，但跑完整個數據集要花費 **$33**。
    *   使用 LLM Cascade 組合系統（GPT-J, J1L, GPT-4）之後：
        *   **成本大幅減少：** 因為很多問題都被便宜的 GPT-Curie 解決了，只有少量問題會升級到 GPT-4，總花費顯著降低。
        *   **結果更強：** LLM Cascade 系統的準確率甚至比單獨使用 GPT-4 **更高**。這是因為在某些狀況下，如果問題直接問 GPT-4 反而會得到錯誤答案，但 GPT-Curie 卻可能答對，並被驗證模組確認為足夠好的答案。
    *   總結：綜合多個語言模型不僅能省錢，在某些情況下，結果還會比單獨使用最強模型更好。


### 【生成式AI】FrugalGPT: 來看看窮人怎麼用省錢的方式來使用 ChatGPT (下) 大綱


I. **LLM Cascade的優化問題定義**
    *   **目標：** 找到一組最佳的模型序列 ($L$) 和對應的閾值 ($T$)。
    *   **約束條件：** 總花費（Cost）必須小於或等於總預算 ($B$)。
    *   **優化目標：** 在滿足預算限制下，最大化最終輸出答案的整體正確率（分數）。
II. **LLM Cascade 的運作機制與成本計算**
    *   **最終模型決定：** $L^*(q)$ 是序列中第一個達到驗證閾值 $T_i$ 的模型。
    *   **成本計算：** 每次 API 呼叫的成本是輸入長度、輸出長度以及一個固定的費用三者相加的結果，且各有不同的常數係數。
III. **實驗設置與結果分析**
    *   **測試任務：** 測試了三個不同類型的任務（HeadLine, OVERRULIMG, COQA）。
    *   **非單調性發現：** 在某些任務上（如 COQA），較弱的模型（GPT-3）表現可能比最強的模型（GPT-4）還強。
    *   **LLM Cascade 系統的效益：** 該系統在相同的成本下，通常能比單一模型獲得更好的準確度。

---

#### 一、 LLM Cascade 的最優化問題定義
![image](https://hackmd.io/_uploads/HyT7xTwCgl.png)

1.  **目標與組件：** 該研究在解決一個最優化問題，目的是找到一串最優的語言模型序列 ($L$) 和一串最佳的閾值 ($T$)。
    *   $L_i$：代表序列中的第 $i$ 個語言模型。
    *   $q$：代表輸入的問題 (query)。
    *   $L_i(q)$：代表模型 $L_i$ 對問題 $q$ 輸出的答案。
    *   $A$：代表問題 $q$ 的正確答案。
2.  **驗證模組分數 $S$：**
    *   $S(q,L_i(q))$ 代表驗證模組的輸出分數。
    *   該分數的輸入是問題 $q$ 和模型 $L_i$ 的輸出答案，它代表驗證模組對該答案**是正確的信心有多少**。
3.  **最終模型的決定 $L^*(q)$：**
    *   $L^*(q)$ 代表在整個模型序列中，**最終被執行並拿出答案**作為最終輸出的模型。
    *   $L^*(q)$ 是在序列 $L$ 中，**第一個**其驗證分數 ($S$) **達到或超過**其對應閾值 ($T_i$) 的那個模型。

#### 二、 成本計算與優化約束

1.  **單次 API 呼叫的費用：** 每次呼叫線上 API 的費用，是根據三個面向來計算的：
    *   **輸入的長度**：即輸入問題 $q$ 的長度，前面會乘以一個常數項。
    *   **輸出的長度**：即輸出答案 $L_i(q)$ 的長度，前面也會乘以一個常數項。
    *   **固定費用（Overhead Cost）**：有時候不論輸入輸出多長，都會加收一點錢，這也被視為一個常數項。
    *   這些常數項在不同的線上 API 模型上是不同的。
2.  **預算限制：**
    *   假設全部可以花費的錢叫做**總預算 $B$**。
    *   在優化問題中，計算將資料集裡所有問題都跑完所需要的總花費。這個總花費的結果，**必須小於或等於總預算 $B$**。
3.  **優化目標：**
    *   在滿足預算限制的前提下，目標是**最大化**所有問題經過這個模型序列後，最終得到的答案與正確答案 $A$ 相比的**總正確率（或分數）**。

#### 三、 實驗設置與成果 

1.  **實驗任務：** 研究測試了三個不同的任務：
    *   **HeadLine：** 根據新聞標題判斷股價漲跌的任務。
    *   **OVERRULING：** 判斷一個法律條文是否蓋過之前的其他法律條文。
    *   **COQA：** 一個問答任務。
2.  **結果呈現：** 實驗結果圖表中的**縱軸（Y-axis）是正確率**，**橫軸（X-axis）是花費（Cost）**。
3.  **模型表現的非單調性：**
    *   一般認知上，GPT-4 應該是最強的模型。
    *   但最有趣的發現在 COQA 這個任務上：**GPT-3 竟然比 GPT-4 還要強**，準確度更高。這驗證了不同模型的能力並非完全單調，最強的模型仍有失誤的可能性。
4.  **成本差異：**
    *   GPT-4 在所有任務中基本都是**最貴的**。
    *   但第二貴的模型會根據任務不同而有所差異。例如在 COQA 任務上，第二貴的是 GPT-3；但在 HeadLine 任務上，第二貴的是另一個區塊的模型。這顯示不同模型在不同任務上所需的成本節奏（輸入/輸出長度）是不同的。
5.  **LLM Cascade 系統的效益：**
    *   LLM Cascade 系統在同樣的花費下，通常會比所有單獨模型表現得更好。
    *   **成本節省與準確度提升的實證：**
        *   在 **HeadLine** 任務中，LLM Cascade 系統可以**花比 GPT-4 少的錢，卻得到比 GPT-4 更好的結果**。
        *   在 **COQA** 任務中，LLM Cascade 系統**花一點點錢就可以達到跟 GPT-4 一樣好的結果**。
        *   在 COQA 任務中，由於 GPT-3 是表現最好的模型，LLM Cascade 系統可以**花比 GPT-3 更少的錢，就得到跟 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)