自訂語音的 CI/CD
實作自動化定型、測試和發行管理,以在您將更新套用至定型和測試數據時,啟用自定義語音模型的持續改善。 透過有效實作 CI/CD 工作流程,您可以確保最佳自定義語音模型的端點一律可供使用。
持續整合 (CI) 是經常在共用存放庫中認可更新,並在其上執行自動化組建的工程實務。 自定義語音的 CI 工作流程會從其數據源定型新模型,並在新模型上執行自動化測試,以確保其執行效能優於先前的模型。
持續傳遞 (CD) 會從 CI 程式取得模型,並為每個改良的自訂語音模型建立端點。 CD 可讓您輕鬆地將端點整合到解決方案中。
自定義 CI/CD 解決方案是可行的,但對於健全且預先建置的解決方案,請使用 語音 DevOps 範本存放庫,其會使用 GitHub Actions 執行 CI/CD 工作流程。
自訂語音的 CI/CD 工作流程
這些工作流程的目的是要確保每個自定義語音模型具有比上一個組建更好的辨識精確度。 如果測試和/或定型數據的更新可改善精確度,這些工作流程會建立新的自定義語音端點。
GitHub 和 Azure DevOps 等 Git 伺服器可以在發生特定 Git 事件時執行自動化工作流程,例如合併或提取要求。 例如,當測試數據的更新推送至 main 分支時,可以觸發 CI 工作流程。 不同的 Git 伺服器有不同的工具,但允許文本命令行介面 (CLI) 命令,讓它們可以在組建伺服器上執行。
一路上,工作流程應該命名和儲存數據、測試、測試檔案、模型和端點,以便追蹤其來源的認可或版本。 命名這些資產也很有説明,以便輕鬆查看在更新測試數據與定型數據之後建立哪些資產。
測試數據更新的 CI 工作流程
CI/CD 工作流程的主要目的是使用定型數據來建置新的模型,並使用測試數據來測試該模型,以建立與先前表現最好的模型(「基準檢驗模型」相比,Word 錯誤率 (WER) 是否已改善。 如果新模型執行得更好,它就會成為比較未來模型的新基準檢驗模型。
測試數據更新的 CI 工作流程應該使用更新的測試數據來重新測試目前的基準檢驗模型,以計算修訂后的 WER。 這可確保當新模型的 WER 與基準檢驗的 WER 進行比較時,這兩個模型都會針對相同的測試數據進行測試,而且您比較類似 。
此工作流程應觸發測試數據的更新,並:
- 針對更新的測試數據測試基準模型。
- 使用更新的數據儲存測試輸出,其中包含基準檢驗模型的 WER。
- 來自這些測試的 WER 將成為未來模型必須擊敗的新基準 WER。
- CD 工作流程不會針對測試數據的更新執行。
定型數據更新的 CI 工作流程
更新 定型數據表示自定義模型的更新。
此工作流程應該會在訓練數據的更新時觸發,並:
- 使用更新的定型數據來定型新模型。
- 針對測試數據測試新模型。
- 儲存包含 WER 的測試輸出。
- 比較新模型的 WER 與基準檢驗模型中的 WER。
- 如果 WER 未改善,請停止工作流程。
- 如果 WER 改善,請執行 CD 工作流程來建立自訂語音端點。
CD 工作流程
更新定型數據以改善模型的辨識之後,CD 工作流程應該會自動執行以建立該模型的新端點,並讓該端點可供在解決方案中使用。
版本管理
大部分小組都需要手動檢閱和核准程式,才能部署至生產環境。 針對生產環境部署,您可能會想要確定當開發小組的關鍵人員可供支援或低流量期間時發生。
自訂語音工作流程的工具
針對自訂語音使用 CI/CD 自動化工作流程的下列工具:
- Azure CLI 可建立 Azure 服務主體驗證、查詢 Azure 訂用帳戶,並將測試結果儲存在 Azure Blob 中。
- Azure AI 語音 CLI,可從命令列或自動化工作流程與語音服務互動。
使用 GitHub Actions 自訂語音的 DevOps 解決方案
如需已實作的自定義語音 DevOps 解決方案,請移至 語音 DevOps 範本存放庫。 建立範本的複本,並使用強固的 DevOps 系統開始開發自定義模型,其中包含使用 GitHub Actions 的測試、定型和版本控制。 存放庫提供範例測試和定型數據,以協助設定和說明工作流程。 初始設定之後,請將範例數據取代為您的項目數據。
語音DevOps範本存放庫提供基礎結構和詳細的指引,
- 將範本存放庫複製到 GitHub 帳戶,然後為 GitHub Actions CI/CD 工作流程建立 Azure 資源和 服務主體 。
- 逐步解說「開發內部迴圈」。從功能分支更新定型和測試數據、使用暫時開發模型測試變更,以及提出提取要求來提出和檢閱變更。
- 在提取要求中更新定型數據至 main 時,請使用 GitHub Actions CI 工作流程將模型定型。
- 執行自動化精確度測試,以建立模型的 Word 錯誤率 (WER)。 將測試結果儲存在 Azure Blob 中。
- 執行 CD 工作流程,以在 WER 改善時建立端點。
下一步
- 使用語音DevOps樣本存放庫,透過 GitHub Actions 實作自定義語音的DevOps。