何時使用 Azure OpenAI 微調
在確定微調是否為適合特定使用案例探索的解決方案時,熟悉一些重要詞彙會有所幫助:
- 提示工程是一種涉及為自然語言處理模型設計提示的技術。 此程序可改善回應的正確性和相關性,以及最佳化模型的效能。
- 擷取擴增生成 (RAG) 藉由從外部來源擷取資料並將其併入提示,以改善大型語言模型 (LLM) 效能。 RAG 可讓企業達成自訂解決方案,同時維持資料相關性並將成本最佳化。
- 微調使用範例資料重新定型現有的大型語言模型,進而產生使用所提供範例最佳化的新「自訂」大型語言模型。
什麼是 Azure OpenAI 的微調?
當我們談論微調時,實際上是意味著受監督的微調,而不是持續預先定型或人類意見反應增強式學習 (RLHF)。 受監督的微調是指在特定資料集上重新定型預先定型模型的程序,通常是為了提高模型在特定任務上的表現,或引入最初定型基底模型時未充分表示的資訊。
微調是一種進階技術,需要專業知識才能適當地使用。 下列問題將協助您評估是否已準備好進行微調,以及您對整個程序的思考程度。 您可以使用這些方法來引導後續步驟,或確定其他可能更合適的方法。
為什麼要微調模型?
- 您應該能夠清楚說明微調的特定使用案例,並識別您想要微調的模型。
- 微調的良好使用案例包括引導模型以特定和自訂的樣式、語氣或格式輸出內容,或引導模型所需的資訊太長或太複雜而無法放入提示視窗中的案例。
您可能還沒有準備好進行微調的常見情況:
- 沒有明確的微調使用案例,或是除了「我想讓模型變得更好」之外,無法表達得更加清楚。
- 如果您將成本視為主要動機,請謹慎行事。 微調可能會藉由縮短提示或允許您使用較小的模型,來降低特定使用案例的成本,但前期的定型成本較高,而且您將必須支付託管自身自訂模型的費用。 如需 Azure OpenAI 微調成本的詳細資訊,請參閱定價頁面。
- 如果您想為模型新增領域外的知識,您應該從擷取增強生成 (RAG) 開始,在資料或內嵌上使用 Azure OpenAI 等功能。 通常,根據使用案例和資料,這是一種更便宜、適應性更強且可能更有效率的選擇。
到目前為止,你嘗試了什麼?
微調是一項進階功能,而不是您生成式 AI 旅程的起點。 您應該已經熟悉使用大型語言模型 (LLM) 的基本概念。 您應該從評估基底模型的效能開始,使用提示工程和/或擷取擴增生成 (RAG) 來取得效能的基準。
具有無需微調的效能基準,對於了解微調是否已改善模型效能而言,是不可或缺的。 使用不正確的資料微調會使基底模型變得更糟,但如果沒有基準,則很難偵測回歸。
如果您準備好進行微調:
- 應該能夠示範提示工程和 RAG 型方法的證據和知識。
- 能夠透過已針對您的使用案例嘗試過的微調以外的技術,來分享具體的經驗和挑戰。
- 需要盡可能對基準效能進行量化評估。
您可能還沒有準備好進行微調的常見情況:
- 從微調開始,不需要測試任何其他技術。
- 對於微調如何特別適用於大型語言模型(LLM)的知識或理解不足。
- 沒有基準量值來評估微調。
什麼情況不適用於替代方法?
了解提示工程的不足之處應該可以為您的微調提供指引。 基底模型是否因邊緣案例或例外狀況而失敗? 基本模型是否始終無法以正確的格式提供輸出,且您無法在內容視窗中容納足夠的範例來修正此問題?
基底模型和提示工程失敗的範例可協助您識別需要收集的資料以進行微調,以及應該如何評估微調模型。
以下是一個範例:客戶希望使用 GPT-3.5-Turbo 將自然語言問題轉換為特定非標準查詢語言的查詢。 他們在提示中提供了指引 (「一律傳回 GQL」) 並使用 RAG 擷取資料庫結構描述。 不過,語法不一定正確,而且在邊緣案例中通常會失敗。 他們收集了數千個自然語言問題範例,以及其資料庫的對等查詢,包括模型先前失敗的案例,並使用這些資料來微調模型。 將其新的微調模型與其設計提示和擷取相結合,使模型輸出的正確性達到可接受的使用標準。
如果您準備好進行微調:
- 提供清晰的範例,說明您如何透過替代方法來處理挑戰,以及已經測試了哪些可能的解決方案來改善效能。
- 已識別使用基底模型的缺點,例如邊緣案例上的不一致效能、無法調整內容視窗中足夠少的拍攝提示,以引導模型、高延遲等。
您可能尚未準備好微調的常見徵兆包括:
- 來自模型或資料來源的知識不足。
- 無法尋找正確的資料來提供模型。
您要使用哪些資料來進行微調?
即使有絕佳的使用案例,微調的效果也取決於您能夠提供的資料品質。 您需要願意投入時間和精力來進行微調工作。 不同的模型需要不同的資料量,但您通常需要能夠提供相當大量的高品質精選資料。
另外一個重點是,即使資料品質很高,如果您的資料不是微調所需的格式,您也需要投入工程資源才能將資料正確格式化。
資料 | Babbage-002 Davinci-002 |
GPT-3.5-Turbo GPT-4o & GPT-4o mini GPT-4 |
---|---|---|
體積 | 數千個範例 | 數千個範例 |
格式 | 提示/完成 | 交談聊天 |
如果您準備好進行微調:
- 識別出用於微調的數據集。
- 適當地格式化數據集以進行定型。
- 策劃數據集以確保品質。
您可能還沒有準備好進行微調的常見情況:
- 尚未識別資料集。
- 資料集格式不符合您想要微調的模型。
您要如何測量微調模型的品質?
這個問題沒有一個正確的答案,但您應該對成功微調有明確的目標。 在理想情況下,這不應該只是定性的,還應該包括成功的量化量值,例如利用保留的資料集進行驗證,以及使用者驗收測試或針對基底模型對微調模型進行 A/B 測試。
下一步
- 觀看 Azure AI 影集:「微調或不微調,這是一個值得深思的問題」(英文)
- 深入了解 Azure OpenAI 微調
- 探索我們的微調教學課程