Important
本文中標示為預覽的項目目前仍在預覽中。 此預覽版未簽訂服務等級協議,Microsoft 不建議用於生產工作負載。 某些功能可能不被支援或功能受限。 欲了解更多資訊,請參閱 Microsoft Azure 預覽版補充使用條款。
Important
互動式訓練需要明確的存取核准。 請透過 預覽版報名表單 申請存取權限,並等待核准後再建立培訓課程。
互動式訓練讓你的程式控制模型如何學習,而 Microsoft Foundry 則負責運行模型。 你的程式,也稱為 training driver,會選擇範例、評估回應,並決定何時更新模型。
以下概念說明訓練循環的各個部分如何相互銜接。 關於程式碼與實作細節,請參閱 SDK 速查表。
訓練場次
訓練工作階段會保留模型及其目前的訓練進度,於你的實驗執行期間。 你的驅動程式會請求個別操作,例如產生回應或套用更新。
會話與受管理工作或部署有不同的用途:
| 資源 | Purpose |
|---|---|
| 互動式訓練課程 | 你的程式每次執行一個操作來控制訓練迴路。 |
| 受控微調作業 | 服務會根據你提供的資料和設定,執行預先定義的訓練工作流程。 |
| 服務部署 | 訓練好的模型會回應應用程式的請求。 |
您的驅動程式會在實驗執行期間將工作階段保持為作用中狀態。 只在工作階段中記錄的進度不是可長久保存的記錄;完成的訓練檢查點會保存它。
LoRA 轉接器
基礎模型就是你起手的模型。 它的 權重 是塑造其行為的經學習得到的值。
低秩適應(LoRA)適配器是一組可訓練的權重,加到基礎模型上。 訓練會變更配接器,而非重新訓練模型的所有原始權重。
配接器包含您的實驗學到的內容。 它仍綁定於相容的基礎模型;它並不是那個模型的獨立替代品。
關於實作細節,請參見 建立會話。
訓練層級
訓練層級是指用於執行訓練的服務選項。 各級在訓練地點、容量供應方式及服務保證上可能有所不同。
你可選擇的選項取決於型號、地區和專案。 訓練層級與用於提供已訓練模型服務的部署選項是分開的。 參見 訓練類型。
訊息格式設定
你的訊息需要轉換成所選模型能理解的形式。 這種格式同時區分使用者提示、助理回應以及工具回傳的資訊。
- 權杖是模型讀取及產生的小型文字單位,例如單字或單字的一部分。
- 分詞器 會將文字轉換成標記,標記再轉回文字。
- 聊天範本 能組織訊息,讓模型能區分說話者並辨識回應的起點。
- 渲染器 會以模型格式準備訊息,並將產生的回應轉換回可讀內容。
不同型號可以使用不同的訊息格式。 一致的格式設定有助於訓練程式識別互動中哪些部分應該貢獻於學習。
基於影像的訓練也需要相容的視覺語言模型,且您的專案需支援影像訓練。 一個能理解影像的訊息格式器,並不能證明它們有可用的訓練資料。
訓練循環
互動式訓練將生成回應、計算學習訊號與應用更新分開。 你的驅動程式將這些操作組合成一個工作流程。
| Operation | 這是什麼意思? |
|---|---|
| 取樣 | 模型會從選定的轉接器快照產生回應。 |
| 前向傳遞 | 模型會處理範例,讓您能測量損失或檢查學習訊號,而不會累積變更來進行更新。 |
| 梯度計算 | 訓練計算轉接器的權重如何調整以改善學習目標的達成。 |
| 優化器更新 | 優化器會將累積的梯度套用來改變適配器。 |
| 評估 | 您的驅動程式會根據與訓練分開的範例來測量效能。 |
漸層描述了配接器可能發生的變更。 優化器會將這些梯度轉換成更新。 計算梯度本身不會改變適配器本身。
多組範例可以對一次更新產生梯度。 更新後,取樣需要更新快照以使用介面卡最新學習的狀態。
評估會使用不用於訓練的 保留的範例來檢查你關心的任務表現。 僅僅因為較低的訓練損失或較高的訓練獎勵,並不能證明表現更好。
關於相應的程式碼操作,請參閱 SDK 速查表。
損失函數與標記權重
損失函數表達訓練所試圖提升的目標。 它將範例和學習訊號轉化為引導轉接器變更的指標。
| 學習方式 | 引導更新的內容 |
|---|---|
| 監督式學習 | 期望的回應會向模型展示該產生什麼。 |
| 增強式學習 | 分數與生成反應間的比較指引應強化哪些行為。 |
損失函數是工作流程中的一部分。 它不會選擇你的範例、評分回應,或決定訓練何時停止。
標記權重 控制範例中各部分對學習貢獻的強弱程度。 遮罩 會排除不該有貢獻的部分。
例如,監督學習工作流程可以從助理的回應中學習,而不必學習重現使用者的提示。
在強化學習中,學習訊號也能區分模型生成的回應與使用者或環境提供的資訊。 它利用產生每個回應的模型資訊,即使模型後來改變。
自訂目標可以在 Driver 中結合模型輸出與計算結果。 驅動程式仍負責協調學習信號與模型更新。
關於資料結構與範例,請參見 準備監督資料 及 準備強化學習資料。
學習訊號如何結合
不同的目標可以以不同方式結合學習訊號,例如將它們加在一起或平均。 在單次更新中結合不相容的方法可能會變更其規模,或導致服務拒絕該更新。
同一更新的貢獻需要有一致的方式來結合學習訊號。 更新會在工作流程切換到不相容的方法之前完成。
獎勵、推出和優勢
在強化學習中,您的驅動程式會評估模型的行為,並將該評估轉化為學習訊號。
| 概念 | Meaning |
|---|---|
| 推出 | 產生的回應或較長的互動,可能包含工具呼叫與觀察。 |
| 獎勵 | 一個分數描述部署達成任務目標的程度。 你的程式會給予這個分數。 |
| 優勢 | 這是一種比較,顯示某個回應的表現是否優於參考回應,例如對同一提示的其他回應。 |
一種方法是對同一提示詞產生多個回應,並將每個獎勵與該組的平均獎勵進行比較:
- 高於平均: 這種回應有正面優勢。
- 低於平均:此回應具有負向優勢。
- 平等獎勵: 所有回應都沒有優勢,因此這種比較沒有提供學習信號。
對於數學任務,獎勵可以反映最終答案是否正確。 僅有高的格式分數並不代表答案正確。
你的驅動程式會定義評分規則和比較方法。 完整範例請參考 微調範例儲存庫。
作業完成
每個作業都需要時間執行。 接受請求的服務與完成所請求的工作是不同的。
| Status | 它告訴你的 |
|---|---|
| 已接受 | 服務會收到這個請求。 工作可能還在等待或正在進行中。 |
| Completed | 操作結束後,其結果可被相依操作使用。 |
| 逾時 | 您的驅動程式停止等候。 這並不證明該作業在服務上失敗或停止。 |
順序很重要:更新取決於梯度計算完成,而從新權重取樣則取決於刷新完成。 遺失的結果既非成功的結果,亦非數值為零的測量結果。
實作細節請參見 使用非同步操作。
Checkpoints
檢查點會記錄模型在特定點的狀態。 訓練檢查點與取樣檢查點保存不同的資訊。
| 類型 | 它所保存的是什麼 | 你用它做什麼 |
|---|---|---|
| 訓練檢查點 | 轉接器的已學得權重和優化器對早期更新的紀錄。 | 恢復進度或在相容的課程中持續訓練。 |
| 取樣器檢查點 | 產生回應的轉接器權重快照。 | 從選定版本的轉接器中取樣,不含恢復訓練所需的資訊。 |
取樣器重新整理會準備最新的適配器狀態以進行產生。 它不能取代儲存的訓練檢查點,也不一定會產生持續存在的成品。
你的驅動程式有自己的進度需要保存,例如已經使用過哪些範例,以及何時進行評估。 模型檢查點不會自動恢復該進度。
這兩種檢查點類型都不是應用程式端點。 在應用程式中使用訓練好的模型是另一項部署任務。
關於程式碼範例,請參閱儲存並繼續訓練。
會話生命週期
卸載會釋放工作階段的作用中訓練資源。 它的用途與刪除工作階段及其儲存的產出項目不同。
| Action | Meaning |
|---|---|
| Inspect | 檢查會話狀態並找出其儲存的檢查點。 |
| 上傳 | 釋放作用中工作階段的運算資源。 這並非檢查點刪除。 |
| Delete | 移除工作階段。 這也可能移除其檢查點和抽樣資源。 |
提交卸載請求並不代表清理完成。 關閉驅動程式的網路連線也不等於卸載工作階段。
完成的訓練檢查點會在工作階段結束前保留進度。 刪除會話可以移除儲存的狀態,所以刪除和釋放運算資源是不能互換的。
實作細節請參見 關閉資源。
相關內容
當你準備好使用這些概念時,可以探索這些資源:
- 開始互動式訓練,執行一個簡短的訓練流程。
- SDK 的速查表包含程式碼範例與實作細節。
- GitHub 上的微調範例,用於完整的訓練工作流程。