微調生成式人工智慧 (AI) 模型 (例如 Gemma) 會修改模型的行為。您通常會微調 Gemma,目的是改善其在特定工作或領域的效能,或更有效地執行某項角色,例如客戶服務。Gemma 模型會以開放權重發布,也就是說您可以修改這些權重,進而變更模型的行為。精細調整 Gemma 模型的一般步驟如下:
選擇架構
Gemma 模型與各種 AI 調整框架相容。每個架構都提供多種優點,且通常會受到特定模型格式的限制。以下是使用各種架構微調 Gemma 模型的指南:
- 使用 LoRA 的 Keras
- 適用於 JAX 的 Gemma 程式庫
- Hugging Face
- Google Cloud GKE (多個 GPU 搭配 HF 轉換器)
- Unsloth
- Axolotl
- 使用分散式調校的 Keras
請確認所選架構支援所需的部署模型格式,例如 Keras 格式、Safetensors 或 GGUF。
收集資料
模型調整需要資料。調整用資料通常包含一組輸入資料和預期回應。網路上有許多公開資料集,可用於訓練各種工作或輸出內容。舉例來說,如果您想訓練 Gemma 模型,將汽車零件說明轉譯為零件編號,資料集可能會包含下列項目:
training_data = [
{"input_text": "Part number for A4 brake caliper", "output_text": "4M0615107BS"},
{"input_text": "Part number for Beetle fuel pump", "output_text": "6A127026H"},
{"input_text": "Part number for Camaro cylinder head", "output_text": "12711770"},
]
如果您希望 Gemma 模型執行特定的任務或角色,通常需要編譯資料集,以便展示該任務的多種變化。調整模型所需的資料量取決於您的目標,特別是您希望模型帶來多少行為變化,以及您希望模型根據要完成的任務和輸入資料的變化程度而執行的程度。
一般來說,您應先從一小組資料開始進行任務調整,然後調整訓練參數,並新增資料,直到任務效能符合需求為止。我們提供的部分應用程式範例顯示,只要 20 個提示和回應組合,就能影響 Gemma 模型的行為。詳情請參閱使用 Gemma 建立企業電子郵件 AI 助理和使用 Gemma 處理口語任務。
調整及測試模型
設定調整架構和調整資料後,即可開始 Gemma 模型調整程序。進行調整時,您可以選擇調整方式,這會影響完成調整所需的資源。您也應為經過調整的模型擬定測試計畫,以便評估模型在調整後是否能達到預期的效能。
具參數運用效率的調整
當您微調 Gemma 等開放權重模型時,可以選擇微調模型的所有參數,或是使用較不耗用資源的參數有效調整技巧,更新其中一部分參數。完整調校方法是指在套用調校資料時,為模型的所有參數計算新的權重。由於您要為數十億個參數執行這些計算,因此這個方法需要大量的運算和記憶體。使用較不耗用資源的調整方法 (稱為「參數效率微調」PEFT),包括低秩適應器 (LoRA) 調整等技巧,可在使用較少運算資源的情況下,產生類似的結果。如要進一步瞭解如何使用 LoRA 以較少資源執行微調,請參閱「使用 LoRA 在 Keras 中微調 Gemma 模型」和「在 Hugging Face 中微調 Gemma 模型」。
測試經過調整的模型
針對特定工作調整模型後,您應根據要執行的工作組合測試模型效能。您應使用模型未經過專門訓練的任務或要求來測試模型。您測試經過調整的模型的方式,取決於您希望模型執行的工作,以及您管理模型輸入內容和輸出內容的嚴謹程度。管理生成式模型測試的常見做法是使用成功、失敗和邊緣情況:
- 成功測試:要求經過調整的模型一律應能順利執行。
- 失敗測試:要求經過調整的模型一律無法執行,或在要求時明確拒絕執行。
- 邊界測試:要求經過調整的模型在可接受的輸出行為範圍內執行,或要求該模型落在可接受的輸出行為範圍內。
為生成式 AI 應用程式測試失敗或邊界條件時,您也應採用生成式 AI 安全性做法、技術和工具,如負責任的生成式 AI 工具包所述。
部署模型
完成調整並順利完成測試後,就可以部署模型了。您通常可以參考所選架構的說明文件,瞭解如何部署經過調整的模型。
如果您要部署使用 LoRA 調整權重的模型,請注意,使用這項技術時,通常會同時部署原始模型及其權重,並將 LoRA 權重做為模型的額外計算層。