使用 Azure AI Foundry 微調模型
重要
本文中標示為 (預覽) 的項目目前處於公開預覽狀態。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
微調是指自定義預先定型的產生 AI 模型,並針對特定工作或新的數據集進行額外的訓練,以提升效能、新技能或改善的精確度。 結果是新的自定義 GenAI 模型,會根據提供的範例進行優化。
請考慮微調 GenAI 模型以:
- 調整並適應特定企業需求
- 減少誤判,因為量身打造的模型不太可能產生不準確或不相關的回應
- 增強模型對領域特定工作的精確度
- 使用更快速且更精確的結果節省時間和資源
- 取得更相關且內容感知的結果,因為模型已針對特定使用案例微調
Azure AI Foundry 在模型提供者之間提供數個模型,可讓您存取市場上最新且最偉大的模型。 您可以使用微調工作篩選條件,並選取模型卡片來瞭解每個模型的詳細資訊,以探索可透過模型目錄微調的支援模型。 特定模型可能會受限於區域條件約束, 請檢視此清單以取得詳細數據。
本文將逐步引導您進行微調的使用案例,以及如何協助您進行 GenAI 旅程。
開始使用微調
在開始進行產生式 AI 旅程時,建議您從提示工程和 RAG 開始熟悉基礎模型及其功能。
- 提示工程 是一種技術,涉及使用語調和樣式詳細數據、範例回應和自然語言處理模型的意圖對應來設計提示。 此流程可改善回應的正確性和相關性,以最佳化模型的效能。
- 擷取擴增生成 (RAG) 會藉由從外部來源擷取資料並將其併入提示,以改善 LLM 效能。 RAG 可協助企業達成自訂解決方案,同時維持資料相關性並將成本最佳化。
當您感到舒適並開始建置解決方案時,請務必瞭解提示工程的不足之處,這可協助您瞭解是否應該嘗試微調。
- 基底模型是否因邊緣案例或例外狀況而失敗?
- 基底模型是否不一致地以正確的格式提供輸出?
- 很難在內容視窗中容納足夠的範例來引導模型嗎?
- 是否有高延遲?
基底模型和提示工程失敗的範例可協助您識別要收集的數據以進行微調,並建立效能基準,以評估並比較微調的模型。 具有無需微調的效能基準,對於了解微調是否可改善模型效能而言,是不可或缺的。
以下是範例:
客戶想要使用 GPT-3.5 Turbo,將自然語言問題轉換成特定非標準查詢語言的查詢。 客戶在提示中提供指引 (「一律傳回 GQL」) 並使用 RAG 擷取資料庫結構描述。 不過,語法不一定正確,而且在邊緣案例中通常會失敗。 客戶會收集數千個自然語言問題範例,以及資料庫的對等查詢,包括模型先前失敗的案例。 然後,客戶會使用該資料來微調模型。 將其新的微調模型與其設計提示和擷取相結合,使模型輸出的正確性達到可接受的使用標準。
使用案例
基底模型已經預先定型大量數據,而且您大部分時間都會在提示中新增指示和範例,以取得您要尋找的質量回應 - 此程式稱為「很少的學習」。 微調可讓您使用更多範例來定型模型,以符合您的特定使用案例,進而改善少量學習。 這可減少提示中的令牌數目,進而節省潛在的成本,並降低延遲要求。
將自然語言轉換成查詢語言只是一個使用案例,您可以在 其中顯示無法告訴 模型如何運作。 以下是一些額外的使用案例:
- 改善模型的擷取數據處理
- 引導模型以特定樣式、音調或格式輸出內容
- 改善查閱資訊時的精確度
- 減少提示的長度
- 教導新的技能(即自然語言到程序代碼)
如果您將成本視為主要動機,請謹慎行事。 微調可能會縮短提示或讓您使用較小的模型,藉此來降低特定使用案例的成本。 但是,訓練的前期成本可能會更高,而且您必須支付裝載您自己的自定義模型的費用。
微調模型的步驟
以下是微調模型的一般步驟:
- 根據您的使用案例,選擇支援工作的模型
- 準備和上傳訓練數據
- (選擇性)準備和上傳驗證數據
- (選擇性)設定工作參數
- 定型您的模型。
- 完成後,請檢閱計量並評估模型。 如果結果不符合您的基準檢驗,請返回步驟 2。
- 使用微調的模型
請務必指出微調嚴重相依於您可以提供的數據品質。 最佳做法是提供數百個,如果沒有數千個訓練範例,才能成功並取得您所需的結果。
微調支援的模型
既然您已知道何時針對使用案例使用微調,您可以移至 Azure AI Foundry 以尋找可用於微調的模型。 對於模型目錄中的某些模型,您可以使用無伺服器 API 或受控計算(預覽)或兩者來微調。
針對透過無伺服器 API 部署的一些模型,可在特定 Azure 區域中取得微調。 若要微調這類模型,用戶必須在模型可供微調的區域擁有中樞/專案。 如需詳細資訊,請參閱無伺服器 API 端點中模型的區域可用性。
如需使用受控計算微調的詳細資訊(預覽),請參閱使用受控計算微調模型(預覽)。
如需可用於微調的 Azure OpenAI 模型詳細資訊,請參閱本指南稍後的 Azure OpenAI 服務模型檔 或 Azure OpenAI 模型數據表 。
針對您可以微調的 Azure OpenAI 服務模型,支援的微調區域包括美國中北部、瑞典中部等。
微調 Azure OpenAI 模型
注意
gpt-35-turbo
- 微調此模型僅限於區域子集,而且無法在每個區域使用基底模型。
如果您在 Azure AI Foundry 專案中使用 Azure OpenAI 模型,而不是在專案外部使用 Azure OpenAI 模型,微調支援的區域可能會有所不同。
Model ID | 微調區域 | 要求上限 (權杖) | 訓練資料 (上限) |
---|---|---|---|
babbage-002 |
美國中北部 瑞典中部 瑞士西部 |
16,384 | 2021 年 9 月 |
davinci-002 |
美國中北部 瑞典中部 瑞士西部 |
16,384 | 2021 年 9 月 |
gpt-35-turbo (0613) |
美國東部 2 美國中北部 瑞典中部 瑞士西部 |
4,096 | 2021 年 9 月 |
gpt-35-turbo (1106) |
美國東部 2 美國中北部 瑞典中部 瑞士西部 |
輸入:16,385 輸出:4,096 |
2021 年 9 月 |
gpt-35-turbo (0125) |
美國東部 2 美國中北部 瑞典中部 瑞士西部 |
16,385 | 2021 年 9 月 |
gpt-4 (0613) 1 |
美國中北部 瑞典中部 |
8192 | 2021 年 9 月 |
gpt-4o-mini (2024-07-18) |
美國中北部 瑞典中部 |
輸入:128,000 輸出:16,384 訓練範例內容長度:64,536 |
2023 年 10 月 |
gpt-4o (2024-08-06) |
美國東部 2 美國中北部 瑞典中部 |
輸入:128,000 輸出:16,384 訓練範例內容長度:64,536 |
2023 年 10 月 |
1 GPT-4 目前處於公開預覽狀態。