共用方式為


Azure 上 AI 工作負載的設計原則

本文概述 Azure 上 AI 工作負載的核心原則,並著重於架構的 AI 層面。 務必綜合考慮所有 Azure Well-Architected Framework 的支柱,包括它們的取捨。 將每個要素套用至工作負載的功能和非功能需求。

可靠性

在 Azure 中執行的 AI 工作負載必須考慮許多與其他工作負載類別相同的可靠性需求。 模型定型、裝載和推斷的特定考慮特別重要,主要在此原則中加以解決。 這裡概述的作法除了雲端應用程式的標準設計最佳做法之外,也應該據以整合。

請檢閱 可靠性設計原則,以充分了解這裡所述的概念。

設計原則 考量
減輕單一失敗點。 依賴重要元件的單一實例可能會導致重大問題。 若要避免問題,請將備援建置到所有重要元件中。 使用具有內建容錯和高可用性功能的平臺。 部署多個實例或節點以實作備援。
進行失敗模式分析。

利用已知的設計模式。
定期分析系統元件中潛在的失敗模式,並針對這些失敗建置復原能力。 使用已知的設計模式來隔離系統的各個部分,並防止串連失敗。 例如,Bulkhead隔板模式可以幫助隔離故障。 重試機制和斷路器可以處理暫時性錯誤,例如節流要求。
在相依元件之間平衡可靠性目標。 請確定推斷端點或模型,以及數據存放區在可靠性方面都一致。 即使發生非預期的狀況,應用程式元件仍必須維持可用狀態,例如並行使用者的激增。 工作負載應具有在發生故障時轉移至備份系統的能力。 如果某個元件失敗,它會影響另一個元件的可靠性。

同樣地,由於服務層 API 是重要的生產資源,因此應該遵守與其他高關鍵性工作負載流程相同的可靠性標準。 如果這些 API 需要高可用性,裝載平台必須支援可用性區域或多重區域設計,以確保持續作業和復原能力。
作業可靠性的設計。 確保更新頻繁且及時,以維護模型回應的可靠性。 決定是否要使用最近的數據,或稍微舊的數據是否足夠。 將 up-to日期資訊的需求與更新頻率的實際性進行平衡。 因為頻率和可靠性的需求,自動化線上訓練。 透過成本效益分析來證明離線訓練的合理性,並使用更便宜的資源來執行。
設計可靠的用戶體驗。 使用負載測試來評估工作負載如何處理壓力,並設計使用者介面來管理使用者對回應時間的期望。 實作UI元素,告知用戶潛在的等候時間,並採用異步雲端設計原則來解決插播、延遲或失敗。

安全性

模型通常會使用敏感性生產數據來產生相關結果。 因此,您必須在架構的所有層級使用健全的安全性措施。 在生命週期早期實作安全的應用程式設計、加密待用數據和傳輸中的數據,並遵循業界合規性標準。 定期安全性評估對於識別和減輕弱點至關重要。 進階威脅偵測機制可確保對潛在威脅的提示回應。

安全性原則 是 AI 解決方案的基礎,可保護數據完整性、設計完整性和使用者隱私權。 身為工作負載擁有者,您必須負責建置信任和保護敏感性資訊,以確保安全用戶體驗。

設計原則 考量
贏得使用者信任。 使用自定義程式代碼、適當的工具和有效的安全性控制,在生命週期的每個階段整合內容安全性。

拿掉所有資料儲存點中不需要的個人和機密資訊,例如匯總的數據存放區、搜尋索引、快取和應用程式。 在整個架構中一致地維護此層級的安全性。

請確定徹底的內容審查會雙向地審核數據,並篩選出不適當和冒犯性的內容。
根據工作負載的敏感度需求,保護待用數據、傳輸中和使用中數據。 至少,在架構中使用的所有數據存放區上,使用平臺層級加密搭配Microsoft管理或客戶管理的密鑰。 視需要較高層級的加密,並視需要使用雙重加密來評估位置。

確定所有流量都使用 HTTPS 進行加密。 決定每個躍點的 TLS 終止點。

模型本身必須受到保護,以防止攻擊者擷取定型期間所使用的敏感性資訊。 此保護需要最高層級的安全性措施。 請考慮使用允許推斷加密數據的同型加密。
投資強固的存取管理,以保留存取系統的身分識別(使用者和系統)。 針對控件和數據平面實作角色型訪問控制或屬性型訪問控制。

維護適當的身分識別分割以保護隱私權。 只允許使用者存取他們有權檢視的內容。
透過分割來保護設計的完整性。 提供專用網功能,以存取容器映像、數據和程式代碼資產的集中式存放庫。

當與其他工作負載共用基礎結構時會產生分段,例如在 Azure Kubernetes Service 中托管推斷伺服器時,應將節點集區與其他 API 或任何其他工作負載隔離。
進行安全性測試。 開發詳細的測試計劃,其中包含每當系統導入變更時,偵測不道德行為的測試。

將 AI 元件整合到您現有的安全性測試中。 例如,將推斷端點併入您的例程測試與其他公用端點。

請考慮對即時系統進行測試,例如滲透測試或紅色小組練習,以有效識別並解決潛在的弱點。
強制執行嚴格的使用者存取和 API 設計,以減少受攻擊面。 需要驗證所有推斷端點,包括系統對系統呼叫。 避免匿名端點。

偏好以客戶端彈性為代價限制的 API 設計。

取捨。 提供最高安全性在成本和準確性上需要取捨,因為分析、檢查或記錄加密數據的能力有限。 在高度安全的環境中,內容安全性檢查和實現可解釋性也可能是一項挑戰。

下列設計區域提供上述原則和考慮的詳細數據:

成本最佳化

成本優化支柱旨在將投資最大化,但不一定降低成本。 每個架構選擇都有直接或間接的財務影響。 瞭解與各種選項相關的成本,包括組建與購買決策、技術選擇、計費模型、授權、訓練和營運費用。 最大化您在所選層的投資,並持續重新評估計費模型。 持續評估與架構、商務需求、流程和小組結構變更相關聯的成本。

請檢閱 成本優化原則,並著重於速率和使用量優化。

設計原則 考量
執行完整的成本模型化練習,以判斷成本驅動因素。 請考慮資料與應用程式平臺的主要因素:
- 數據量。 估計您要編製索引和處理的數據量。 較大的磁碟區可能會增加記憶體和處理成本。
- 查詢數目。 預測查詢的頻率和複雜度。 較高的查詢磁碟區可能會提高成本,特別是如果它們需要大量的計算資源。
- 輸送量。 評估預期的輸送量,這會影響您需要的效能層級。 更高的輸送量需求可能會導致更高的成本。
- 相依性成本。 相依性可能會隱藏成本。 例如,當您計算索引的成本時,請包含技能集的成本,這是數據處理的一部分,但超出索引範圍。
支付您想要使用的內容。 選擇符合您需求的技術解決方案,而不會產生不必要的費用。 如果不需要進階功能,請考慮更經濟的選項和開放原始碼工具。

考慮使用頻率。 偏好協調流程工具的彈性計算選項,以將使用率成本降到最低,因為它們一律 。 全職作業應避免使用無伺服器計算,以免成本可能增加。

不要在未使用完整容量時支付更高的層級費用。 請確定您選擇的階層符合生產使用模式,以將支出優化。 針對一般工作使用標準定價,並針對高度中斷的訓練使用標準定價。 僅針對 AI 工作負載函式使用 GPU 型計算來降低成本。

全面測試和評估您的模型訓練和調整,以找出效能與成本均衡的最佳產品版本。
使用您支付的費用。 將浪費降至最低。 密切監視使用率計量。 如果資源未關閉、相應減少或未使用時解除分配,AI 工作負載可能很昂貴,而且成本可能會快速呈報。

將系統優化一 次寫入,讀取許多 以避免在數據記憶體上超支。 定型數據不需要生產資料庫的立即回應性。

執行 Azure OpenAI 服務推斷端點的壓力測試可能會很昂貴,因為每次呼叫都會產生費用。 若要降低成本,請在測試環境中使用未使用的 Azure OpenAI PTU,或改為模擬推斷端點。

探勘數據分析(EDA)、模型定型和微調等活動通常不會全職執行。 偏好選擇一個可以在未使用時停止的平台。 例如,EDA 作業通常是互動式的,因此用戶必須能夠在執行作業時啟動 VM 並加以停止。

在營運團隊上設定成本責任。 它們應透過主動監視和管理資源使用率,確保成本保持在預期參數內。
將營運成本優化。 在線訓練的成本可能很高,因為它的頻繁性質。 自動化此程式有助於維護一致性,並將人為錯誤的成本降到最低。 盡可能使用稍微舊的數據來定型和延遲更新,以進一步降低費用,而不會大幅影響模型精確度。

針對離線訓練,請評估您是否可以使用更便宜的資源,例如離線硬體。

一般而言,從功能存放區刪除數據,以減少功能雜亂和儲存成本。

取捨:成本優化和效能效率。 平衡成本與資料庫管理中的效能牽涉到考慮取捨。 有效率的索引設計可加速查詢,但可能會因為元數據管理和索引大小而增加成本。 同樣地,分割大型數據表可以改善查詢效能,並減少記憶體負載,但會產生額外的成本。 相反地,避免過度編製索引的技術可以降低成本,但如果未正確管理,可能會影響效能。

取捨:成本優化和營運卓越。 模型定型的兩個主要方法中有取捨。 在開發環境中使用完整生產數據進行訓練可以降低計算成本,方法是將模型訓練一次,並僅提升人工產物。 需要嚴格的安全性措施,以處理較低環境中的生產數據。 此過程可能相當複雜,且資源密集。 相反地,在每個環境中訓練模型,透過徹底的程式代碼檢閱和測試可增強穩定性和可靠性,但計算成本會因為這些執行而增加。

卓越營運

卓越營運的主要目標是在開發生命週期中有效率地提供功能。 您必須建立可重複的程式,以支援實驗的設計方法,併產生結果,以改善模型效能。 卓越營運也在於觀察模型的持續精確度、實作有效的監視做法和治理,以將風險降到最低,以及開發適應模型漂移的變更管理程式。

雖然所有 卓越營運原則 適用於 AI 工作負載,但將自動化和監視排定優先順序作為基礎作業策略。

設計原則 考量
在整個應用程式開發、數據處理和 AI 模型管理生命週期中,培養持續學習和實驗思維。 工作負載作業應該以產業證明的方法為基礎,例如DevOps、DataOps、MLOps和 GenAIOps。

作業、應用程式開發和數據小組之間的早期共同作業,對於建立可接受的模型效能相互了解至關重要。 作業小組提供質量訊號和可採取動作的警示。 應用程式和數據小組可協助有效率地診斷和解決問題。
選擇可將作業負擔降到最低的技術。 當您選擇平台解決方案時,宜優先考慮平台即服務(PaaS)而非自行托管的選項,以簡化設計、自動化工作流程協調,並使日常運營變得更加便捷。
建置支援警示功能的自動化監視系統,並包含記錄和稽核性。 由於 AI 的不具決定性本質,因此在生命週期早期建立質量測量非常重要。 與數據科學家合作,以定義品質指標,並在綜合儀錶板中將持續的見解可視化。

透過工具追蹤實驗,以擷取程式代碼版本、環境、參數、執行和結果等詳細數據。

使用足夠的資訊實作可採取動作的警示,讓操作員快速回應。
自動偵測和降低模型衰變。 使用自動化測試來評估一段時間的漂移。 確定您的監視系統會在回應開始偏離預期結果時傳送警示,並定期開始執行。 使用可自動探索和更新新模型的工具。

視需要調整數據處理和模型定型邏輯,以適應新的使用案例。
練習安全部署。 選擇並存部署或就地更新,以將停機時間降到最低。 在部署前實作徹底的測試,以確保模型已正確設定並符合目標、使用者期望和質量標準。 不論部署策略為何,一律規劃緊急作業。
持續評估生產環境中用戶體驗。 讓使用工作負載的使用者提供他們使用經驗的意見反饋,並同意在相關記錄中共用部分或所有交談內容,以進行疑難排解。 請考慮哪些用戶互動是可行的、符合規範的、安全的,以及值得擷取的。 請仔細使用數據,以真實用戶互動來評估工作負載的效能表現。

下列設計區域提供上述原則和考慮的詳細數據:

效能效率

AI 模型效能評估的目標是要判斷模型如何有效地完成其預定的工作。 評估牽涉到評估各種計量,例如精確度、精確度和公平性。 支援模型的平臺和應用程式元件效能非常重要。

模型效能也會受到實驗追蹤和數據處理等作業效率的影響。 套用 效能效率原則,以協助根據可接受的品質列測量效能,這是偵測退化或衰變的關鍵。 若要維護工作負載,包括 AI 元件,則需要持續監視和評估的自動化程式。

設計原則 考量
建立效能基準。 在不同的架構區域進行嚴格的效能測試,並設定可接受的目標。 這項持續評估應該是作業程式的一部分,而不只是一次性測試。

基準檢驗適用於預測效能。 從基準開始瞭解初始模型效能,並持續重新評估,以確保其符合預期。
評估資源需要符合效能目標。 瞭解負載特性,以選擇正確的平臺和正確大小資源。 將此數據納入容量規劃,以便大規模運作。

例如,使用負載測試來判斷最佳的計算平臺和產品版本。 模型定型和微調通常需要高效能 GPU 優化的計算。 一般用途的產品版本適用於協調流程工具。

同樣地,選擇可有效率地處理數據擷取、管理並行寫入,以及維護個別寫入效能且不會降低的數據平臺。

不同的推斷伺服器具有影響運行時間模型效能的各種效能特性。 選取符合基準預期的伺服器。
收集和分析效能計量,並找出瓶頸。

從資料管道評估遙測,以確保讀寫作業的吞吐量和效能目標得以實現。
針對搜尋索引,請考慮查詢延遲、輸送量和結果精確度等計量。 隨著數據量增加,錯誤率不應該上升。

分析來自程式代碼元件的遙測,例如協調器,其會從服務呼叫收集數據。 分析該數據,以協助您瞭解在本機處理與網路呼叫上花費的時間,並找出其他元件的潛在延遲。

使用參與計量來評估UI體驗,以判斷使用者是否積极參與或感到沮喪。 頁面上增加的時間可能表示其中一個。 語音或視訊回應等多模式功能可能會經歷顯著的延遲,這會導致回應時間更長。
使用來自生產的質量測量來持續改善效能評定。 需要自動收集和分析效能計量、警示和模型重新定型,以維持模型效力。

取捨。 當您考慮平臺功能時,請務必平衡成本和效能。 例如,GPU 版本昂貴,因此請持續監控,以避免使用量過低及調整資源至合適的規模。 調整後,測試資源使用率,以確保平台資源的成本、其操作及根據標準預期的效能之間的平衡。 如需成本優化策略,請參閱 優化元件成本的建議

下列設計區域提供上述原則和考慮的詳細數據:

後續步驟