提示設計策略 (例如幾個提示) 不一定能產生您需要的結果。微調是一種可改善模型在特定任務上的效能,或在操作說明不足時,協助模型遵循特定的輸出要求的程序,前提是您必須擁有一組可展示所需輸出的範例。
本頁面提供 Gemini API 文字服務背後文字模型的微調概念總覽。當您準備好調整模型時, 微調教學課程。如果您想 舉例來說,如要針對特定用途自訂 LLM,請參閱 出局 大型語言模型:微調、精煉和提示工程 的 機器學習密集課程。
微調功能的運作方式
微調的目標是進一步改善模型在特定任務上的效能。微調的運作方式是為模型提供訓練資料集,資料集內有許多任務範例。對於特定任務,只要少量的樣本就能調整模型,大幅提升模型成效。這類模型調整作業有時會稱為監督式微調,以便與其他類型的微調作業有所區別。
您的訓練資料架構應是含有提示輸入範例的範例, 預期的回應輸出內容您也可以直接在 Google AI Studio 中使用示例資料調整模型。目標是透過提供許多範例來說明該行為或任務,教導模型模仿所需行為或任務。
執行調整工作時,模型會學習額外參數,協助編碼必要資訊,以便執行所需任務或學習所需行為。系統會在推論期間使用這些參數。模型的輸出內容 調整工作是新的模型,有效結合了 學習的參數和原始模型
準備資料集
您需要有用來調整模型的資料集,才能開始微調。適用對象 資料集中的範例必須為高品質、 來代表真實的輸入和輸出內容。
格式
資料集中的範例應與預期的實際工作環境流量相符。如果資料集含有特定格式、關鍵字、操作說明或資訊,則實際工作環境資料的格式應相同,並包含相同的操作說明。
舉例來說,如果資料集中的範例包含 "question:"
和
"context:"
,正式環境流量也應格式化為
"question:"
和 "context:"
的順序與出現在資料集的順序相同
範例。如果排除內容,即便資料集中的範例出現一個確切的問題,模型也會無法辨識模式。
以下是另一個範例,這是應用程式產生序列中下一個數字的 Python 訓練資料:
training_data = [
{"text_input": "1", "output": "2"},
{"text_input": "3", "output": "4"},
{"text_input": "-3", "output": "-2"},
{"text_input": "twenty two", "output": "twenty three"},
{"text_input": "two hundred", "output": "two hundred one"},
{"text_input": "ninety nine", "output": "one hundred"},
{"text_input": "8", "output": "9"},
{"text_input": "-98", "output": "-97"},
{"text_input": "1,000", "output": "1,001"},
{"text_input": "10,100,000", "output": "10,100,001"},
{"text_input": "thirteen", "output": "fourteen"},
{"text_input": "eighty", "output": "eighty one"},
{"text_input": "one", "output": "two"},
{"text_input": "three", "output": "four"},
{"text_input": "seven", "output": "eight"},
]
在資料集中為每個範例新增提示或前置詞,也有助於改善經過微調的模型效能。請注意,如果提示或前置碼 也應該包含在調整後的提示中 推論模型
限制
注意:Gemini 1.5 Flash 的精細調整資料集有以下限制:
- 每個範例的輸入內容大小上限為 40,000 個字元。
- 每個範例的輸出大小上限為 5,000 個字元。
訓練資料大小
您只需使用 20 個範例,即可微調模型。額外資料 通常也會改善回應的品質。請根據應用程式,設定 100 到 500 個範例的目標。下表顯示 建議資料集大小,以便針對各種常見工作微調文字模型:
工作 | 資料集中的範例數量 |
---|---|
分類 | 100 以上 |
摘要 | 100-500+ |
文件搜尋 | 100 以上 |
上傳調整資料集
資料會透過 API 或在 Google AI 工作室中上傳的檔案,以內嵌方式傳遞。
如要使用用戶端程式庫,請在 createTunedModel
呼叫中提供資料檔案。檔案大小上限為 4 MB。詳情請參閱
使用 Python 進行微調快速入門導覽課程
即可開始使用
如要使用 cURL 呼叫 REST API,請將 JSON 格式的訓練範例提供給
training_data
引數。請參閱使用 cURL 進行調整的快速入門指南,瞭解如何開始使用。
進階調整設定
建立調整工作時,您可以指定下列進階設定:
- 訓練週期:對整個訓練集進行完整訓練,以便處理每個範例一次。
- 批次大小:在單一訓練疊代中使用的範例組合。批次大小會決定批次中的示例數量。
- 學習率:是一個浮點數,能告知演算法如何 強力調整每次疊代的模型參數舉例來說 學習率為 0.3 後,權重和偏誤會再調整三倍 遠遠超過學習率 0.1高學習率和低學習率各有優缺,應根據用途進行調整。
- 學習率調節係數:調節係數會修改模型的原始學習率。值為 1 時,系統會使用模型的原始學習率。如果值大於 1,學習率和值會介於 1 之間 並將學習率降低 0
建議設定
下表列出微調 基礎模型:
超參數 | 預設值 | 建議調整 |
---|---|---|
Epoch | 5 |
如果損失開始值早於 5 個週期,請使用較小的值。 如果損失是採收斂處理,看起來並未偏平,則輸入較高的價值。 |
批量 | 4 | |
學習率 | 0.001 | 針對較小資料集使用較小的值。 |
損失曲線會顯示模型在每個訓練週期後,預測結果與訓練範例中理想預測結果的差異程度。理想情況下,您應在曲線趨於平穩之前,在曲線最低點停止訓練。例如:
下圖顯示了大約 4-6 號的損失曲線,這代表
就算將 Epoch
參數設為 4,您還是可以享有相同效能。
查看調整工作狀態
您可以在 Google AI Studio 的「我的程式庫」分頁中,或使用 Gemini API 中經過調校模型的 metadata
屬性,查看調校工作的狀態。
排解錯誤
本節提供提示,說明如何解決在建立經過調整的模型時可能遇到的錯誤。
驗證
使用 API 和用戶端程式庫進行調整時,需要進行驗證。你可以 使用 API 金鑰 (建議做法) 或 OAuth 設定驗證 憑證如需設定 API 金鑰的說明文件,請參閱 設定 API 金鑰。
如果看到 'PermissionDenied: 403 Request had insufficient authentication
scopes'
錯誤,您可能需要透過 OAuth 設定使用者驗證
憑證如要設定 Python 的 OAuth 憑證,請參閱 OAuth 設定教學課程。
已取消的模型
在工作完成前,您隨時可以取消微調工作。不過,取消的模型推論效能無法預測,尤其是在訓練初期取消調校工作時。如果您想在較早的 epoch 停止訓練,因此取消了調整作業,請建立新的調整作業,並將 epoch 設為較低的值。
調整後模型的限制
注意:調校模型有下列限制:
- 經過調校的 Gemini 1.5 Flash 模型輸入限制為 40,000 個半形字元。
- 經過調整的模型不支援 JSON 模式。
- 僅支援文字輸入。
後續步驟
透過微調教學課程瞭解如何開始使用: