Azure AI Studio 中的模型微調
重要
本文中標示為 (預覽) 的項目目前處於公開預覽狀態。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
微調會使用範例資料重新訓練現有的大型語言模型 (LLM)。 結果會是針對所提供範例最佳化的全新自訂 LLM。
本文可協助您判斷微調是否為您使用案例適用的解決方案。 本文也會說明 Azure AI Studio 如何支援微調需求。
在本文中,微調是指 受監督的微調,而不是透過人為意見反應持續預先定型或增強式學習。 受監督的微調是在特定資料集上重新訓練預先訓練模型的流程。 目的通常是改善特定工作的模型效能,或引入原本訓練基底模型時未充分表示的資訊。
開始使用微調
當您決定微調是否為適合使用案例的解決方案時,熟悉這些重要詞彙會很有幫助:
- 提示工程是一種涉及為自然語言處理模型設計提示的技術。 此流程可改善回應的正確性和相關性,以最佳化模型的效能。
- 擷取擴增生成 (RAG) 會藉由從外部來源擷取資料並將其併入提示,以改善 LLM 效能。 RAG 可協助企業達成自訂解決方案,同時維持資料相關性並將成本最佳化。
微調是一種進階技術,需要專業知識才能適當地使用。 下列問題可協助您評估是否已準備好進行微調,以及您對整個程序的思考程度。 您可以使用這些問題來引導後續步驟,或確定其他可能更合適的方法。
為什麼要微調模型?
如果符合以下條件,您可能已準備好進行微調:
您能夠清楚說明微調的特定使用案例,並識別您想要微調的模型。
微調的適用使用案例包括引導模型以特定和自訂樣式、音調或格式來輸出內容。 其中也包含引導模型所需的資訊太長或太複雜,而無法放入提示視窗的案例。
您可提供清晰的範例,說明如何透過替代方法來處理挑戰,以及您已經測試了哪些可能的解決方案來改善效能。
您已發現使用基底模型的缺點,例如邊緣情況下的效能不一致、無法在內容視窗中容納足夠的範例提示來引導模型、高延遲等。
如果出現以下情況,您可能還沒有準備好進行微調:
- 來自模型或資料來源的知識不足。
- 您無法尋找正確的資料來供模型使用。
- 您沒有明確的微調使用案例,或是除了「我想讓模型變得更好」之外無法表達得更清楚。
如果您將成本視為主要動機,請謹慎行事。 微調可能會縮短提示或讓您使用較小的模型,藉此來降低特定使用案例的成本。 但通常訓練的前期成本較高,而您必須支付裝載您自己的自定義模型的費用。
什麼情況不適用於替代方法?
了解提示工程的不足之處應該可以為您的微調提供指引。 基底模型是否因邊緣案例或例外狀況而失敗? 基底模型是否始終無法以正確的格式提供輸出,並且您無法在內容視窗中容納足夠的範例來修正此問題?
基底模型和提示工程失敗的範例可協助您識別需要收集的資料以進行微調,以及應該如何評估微調模型。
以下是一個範例:客戶希望使用 GPT-3.5-Turbo 將自然語言問題轉換為特定非標準查詢語言的查詢。 客戶在提示中提供指引 (「一律傳回 GQL」) 並使用 RAG 擷取資料庫結構描述。 不過,語法不一定正確,而且在邊緣案例中通常會失敗。 客戶會收集數千個自然語言問題範例,以及資料庫的對等查詢,包括模型先前失敗的案例。 然後,客戶會使用該資料來微調模型。 將其新的微調模型與其設計提示和擷取相結合,使模型輸出的正確性達到可接受的使用標準。
到目前為止,你嘗試了什麼?
微調是一項進階功能,而不是您生成式 AI 旅程的起點。 您應該已經熟悉使用 LLM 的基本概念。 您應該從評估基底模型的效能開始,使用提示工程和/或 RAG 來取得效能的基準。
具有無需微調的效能基準,對於了解微調是否可改善模型效能而言,是不可或缺的。 使用不正確的資料微調會使基底模型變得更糟,但如果沒有基準,則很難偵測回歸。
如果符合以下條件,您可能已準備好進行微調:
- 您可以示範提示工程和 RAG 型方法的證據和知識。
- 您可以透過您為使用案例嘗試過的微調以外的技術,來分享具體的經驗和挑戰。
- 您可以盡可能對基準效能進行量化評估。
如果出現以下情況,您可能還沒有準備好進行微調:
- 您尚未測試任何其他技術。
- 您對於微調如何特別適用於 LLM 的知識或理解不足。
- 您沒有基準量值來評估微調。
您要使用哪些資料來進行微調?
即使有絕佳的使用案例,微調的效果也取決於您能夠提供的資料品質。 您需要願意投入時間和精力來進行微調工作。 不同的模型需要不同的資料量,但您通常需要能夠提供相當大量的高品質精選資料。
另一個重要點是,即使具有高質量的數據,如果您的數據不是微調所需的格式,則需要認可工程資源進行格式設定。
如果符合以下條件,您可能已準備好進行微調:
- 您已識別要進行微調的資料集。
- 您的資料集採用適合訓練的格式。
- 您已採用一定程度的管理以確保資料集品質。
如果出現以下情況,您可能還沒有準備好進行微調:
- 尚未識別適當的數據集。
- 資料集格式不符合您想要微調的模型。
如何測量微調模型的品質?
這個問題沒有一個正確的答案,但您應該對成功微調有明確的目標。 在理想情況下,這項工作不應該只是定性衡量。 還應該包括成功的量化衡量,例如使用保留的資料集進行驗證,以及使用者驗收測試或針對基底模型對微調模型進行 A/B 測試。
Azure AI Studio 中微調的支援模型
現在您已知道何時針對使用案例進行微調,您可以移至 Azure AI Studio 尋找可用於微調的模型。 下表說明您可以在 Azure AI Studio 中微調的模型,以及您可以微調這些模型的區域。
模型系列 | Model ID | 微調區域 |
---|---|---|
Azure OpenAI 模型 | 您可以微調的 Azure OpenAI 服務模型包括其他 gpt-4 和 gpt-4o-mini 。如需可用於微調的 Azure OpenAI 模型詳細資訊,請參閱本指南稍後的 Azure OpenAI 服務模型檔 或 Azure OpenAI 模型數據表 。 |
您可以微調的 Azure OpenAI 服務模型包括美國中北部和瑞典中部。 如果您在 AI Studio 專案中使用 Azure OpenAI 模型,而不是專案外部,則支援的區域可能會有所不同。 如需微調區域的詳細資訊,請參閱 Azure OpenAI 服務模型檔。 |
Phi-3 系列車型 | Phi-3-mini-4k-instruct Phi-3-mini-128k-instruct Phi-3-medium-4k-instruct Phi-3-medium-128k-instruct |
美國東部 2 |
Meta Llama 2 系列車型 | Meta-Llama-2-70b Meta-Llama-2-7b Meta-Llama-2-13b |
美國西部 3 |
Meta Llama 3.1 系列模型 | Meta-Llama-3.1-70b-Instruct Meta-Llama-3.1-8b-Instruct |
美國西部 3 |
下表提供 Azure OpenAI 服務模型的詳細數據,這些模型支援微調,以及可使用微調的區域。
微調 Azure OpenAI 模型
注意
gpt-35-turbo
- 微調此模型僅限於區域子集,而且無法在每個區域使用基底模型。
如果您在 AI Studio 專案中使用 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 1 (2024-07-18) |
美國中北部 瑞典中部 |
輸入:128,000 輸出:16,384 訓練範例內容長度:64,536 |
2023 年 10 月 |
gpt-4o 1 (2024-08-06) |
美國東部 2 美國中北部 瑞典中部 |
輸入:128,000 輸出:16,384 訓練範例內容長度:64,536 |
2023 年 10 月 |
1 GPT-4 目前處於公開預覽狀態。