組織和設定 Azure Machine Learning 環境
當您規劃企業環境的 Azure 機器學習 部署時,有一些常見的決策點會影響您建立工作區的方式:
- 小組結構: 組織數據科學小組並針對專案共同作業、指定使用案例和數據隔離或成本管理需求的方式
- 環境: 您用來作為開發和發行工作流程一部分的環境,以隔離開發與生產環境
- 區域: 數據的位置,以及您需要為機器學習解決方案提供服務的物件
小組結構和工作區設定
工作區是 Azure 機器學習 的最上層資源。 它會儲存在處理機器學習時所產生的成品,以及附加和相關聯資源的受控計算和指標。 從可管理性的觀點來看,作為 Azure Resource Manager 資源的工作區支援 Azure 角色型存取控制 (Azure RBAC),依原則管理,而且您可以使用它作為成本報告的單位。
組織通常會選擇下列解決方案模式的其中一種或組合,以遵循管理性需求。
每個小組的工作區:當小組的所有成員需要相同層級的數據和實驗資產時,針對每個小組使用一個工作區。 例如,具有三個機器學習小組的組織可能會建立三個工作區,每個小組各一個工作區。
每個小組使用一個工作區的優點是,小組專案的所有機器學習成品都會儲存在一個地方。 您可以看到生產力增加,因為小組成員可以輕鬆地存取、探索及重複使用實驗結果。 依小組組織您的工作區可減少 Azure 使用量,並簡化小組的成本管理。 由於實驗資產數目可能會快速成長,因此您可以遵循命名和標記慣例,讓成品保持組織。 如需如何命名資源的建議,請參閱 開發 Azure 資源的命名和標記策略。
使用這種方法,每個小組成員都必須具有類似的數據存取層級許可權。 數據源和實驗資產的細微角色型訪問控制 (RBAC) 和存取控制清單 (ACL) 限制在工作區內。 您無法有使用案例數據隔離需求。
每個專案的工作區: 如果您需要依專案隔離數據和實驗資產,或在專案層級具有成本報告和預算需求,請使用每個專案的一個工作區。 例如,您可能有一個組織有四個機器學習小組,每個小組執行三個專案,總共 12 個工作區實例。
每個專案使用一個工作區的優點是您在專案層級管理成本。 小組通常會針對 Azure 機器學習 和相關聯的資源建立專用資源群組,原因類似。 例如,當您使用外部參與者時,專案中心工作區可簡化專案的共同作業,因為外部使用者只需要獲得專案資源的存取權,而不是小組資源。
這種方法需要考慮的是實驗結果和資產的隔離。 因為資產分散於多個工作區實例,因此探索和重複使用資產可能會比較困難。
單一工作區: 針對非小組或非項目相關工作使用一個工作區,或當成本無法直接關聯至特定計費單位時,例如 R&D。
此設定的優點是個別非項目相關工作的成本可以與專案相關成本分離。 當您為所有使用者設定單一工作區以執行其個別工作時,您會減少您的 Azure 使用量。
使用這種方法,當許多機器學習從業者共用相同的實例時,工作區可能會變得雜亂無章。 使用者可能需要以UI為基礎的資產篩選,才能有效地尋找其資源。 您可以為每個營業單位建立共用機器學習工作區,以減輕規模考慮或細分預算。
環境和工作區設定
環境是一組資源,可根據應用程式生命週期中的階段來部署目標。 環境名稱的常見範例包括開發、測試、QA、預備和生產環境。
您組織中的開發程式會影響環境使用量的需求。 您的環境會影響 Azure 機器學習 和相關聯的資源設定,例如附加的計算。 例如,數據可用性可能會限制讓機器學習實例可供每個環境使用的管理能力。 下列解決方案模式很常見:
單一環境工作區部署:當您選擇單一環境工作區部署時,Azure 機器學習 會部署到一個環境。 此設定很常見於以研究為中心的案例,因為不需要根據機器學習成品的生命週期階段,跨環境發行機器學習成品。 此設定的另一個案例是,只有推斷服務,而不是機器學習管線,才會部署在環境之間。
以研究為中心的設定的優點是較小的 Azure 使用量和最小的管理額外負荷。 這種運作方式表示不需要在每個環境中部署 Azure 機器學習 工作區。
使用此方法時,單一環境部署會受限於數據可用性。 因此,當您設定數據存放區時,請小心謹慎。 例如,如果您設定大量存取,則生產數據源上的寫入器存取可能會無意中損害數據品質。 如果您在開發發生所在的相同環境中將工作帶入生產環境,則相同的 RBAC 限制適用於開發工作和生產工作。 此設定可能會讓這兩個環境過於殭化或太有彈性。
多個環境工作區部署: 當您選擇多個環境工作區部署時,會為每個環境部署工作區實例。 此設定的常見案例是一個受管制的工作場所,在環境之間清楚區分職責,以及可存取這些環境之資源的使用者。
此設定的優點如下:
- 機器學習工作流程和成品的分段推出。 例如,跨環境建立模型,並有可能增強靈活度,並減少部署時間。
- 增強資源的安全性和控制,因為您可以在下游環境中指派更多存取限制。
- 非開發環境中生產數據的定型案例,因為您可以提供選取的使用者群組存取權。
使用這種方法,您面臨更多管理和程式額外負荷的風險。 此設定需要針對跨工作區實例的機器學習成品進行更細緻的開發與推出程式。 此外,可能需要數據管理和工程工作,才能讓生產數據在開發環境中進行定型。 存取管理要求您提供小組存取權,以解決和調查生產環境中的事件。 最後,您的小組需要 Azure DevOps 和機器學習工程專業知識,才能實作自動化工作流程。
一個具有有限數據存取的環境,一個具有生產數據存取:當您選擇此設定時,Azure 機器學習 會部署到兩個環境:一個具有有限數據存取,另一個使用生產數據存取。 如果您需要隔離開發和生產環境,此設定很常見。 例如,您可能會在組織限制下工作,讓生產數據在任何環境中使用,或者您可能想要將開發工作與生產工作區隔開,而不會因為維護成本高而需要重複數據。
此設定的優點是清楚區分開發與生產環境之間的職責和存取權。 相較於多環境部署案例,另一個優點是資源管理額外負荷較低。
使用這種方法,您需要定義跨工作區的機器學習成品開發和推出程式。 此外,可能需要數據管理和工程工作,才能讓生產數據在開發環境中進行訓練。 但這種方法可能需要比多環境工作區部署少一些工作。
區域和資源設定
資源、數據或使用者的位置可能需要您在多個 Azure 區域中建立 Azure 機器學習 工作區實例和相關聯的資源。 例如,一個專案可能會因為效能、成本和合規性原因,跨西歐和美國東部 Azure 區域跨越其資源。 下列案例很常見:
區域訓練: 機器學習訓練作業會在與數據所在的相同 Azure 區域中執行。 在此設定中,機器學習工作區會部署到數據所在的每個 Azure 區域。 當您需要符合合規性,或跨區域有數據移動限制時,此案例很常見。
此設定的優點是您可以在數據所在的數據中心進行實驗,且網路等待時間最少。 透過這種方法,當機器學習管線跨多個工作區實例執行時,它會增加更多的管理複雜度。 比較各個實例的實驗結果並增加配額和計算管理的額外負荷會變得很困難。
如果您想要跨區域鏈接記憶體,但使用來自一個區域的計算,Azure 機器學習 支援將記憶體帳戶附加在區域中,而不是工作區的案例。 例如計量的元數據會儲存在工作區區域中。
區域服務: 機器學習服務會部署接近目標物件所在的位置。 例如,如果目標用戶位於澳大利亞,而主要記憶體和實驗區域是西歐,請部署機器學習工作區以在西歐進行實驗。 接著,您會部署 AKS 叢集,以在澳大利亞進行推斷端點部署。
此設定的優點是在數據中心推斷新數據、將延遲和數據移動降至最低,以及符合本機法規的機會。
透過這種方法,多區域設定提供數個優點,但也會增加配額和計算管理的額外負荷。 當您有批次推斷的需求時,區域服務可能需要多工作區部署。 透過推斷端點收集的數據可能需要跨區域傳輸,才能重新定型案例。
區域微調: 基礎模型會定型初始數據集,例如來自所有區域的公用數據或數據,稍後會使用區域數據集微調。 區域數據集可能只存在於特定區域中,因為合規性或數據移動限制。 例如,您可能需要在區域 A 的工作區中完成基底模型定型,而微調會在區域 B 的工作區中執行。
此設定的優點是您可以在數據所在的數據中心進行符合規範的實驗。 您也可以利用先前管線階段中較大數據集上的基底模型定型。
此方法支援複雜的實驗管線,但可能會產生更多挑戰。 例如,當您比較跨區域的實驗結果時,可能會增加配額和計算管理的額外負荷。
參考實作
為了說明在較大的設定中部署 Azure 機器學習,本節說明組織 『Contoso』 如何設定 Azure 機器學習,並根據其組織限制、報告和預算需求:
- Contoso 會根據成本管理和報告原因,根據解決方案建立資源群組。
- IT 系統管理員只會為資助的解決方案建立資源群組和資源,以符合預算需求。
- 由於 資料科學的探勘性和不確定性質,使用者需要一個實驗和工作的地方,才能進行使用案例和數據探索。 探勘工作通常無法直接關聯至特定使用案例,而且只能與 R&D 預算相關聯。 Contoso 想要集中資助一些機器學習資源,任何人都可以用於探索目的。
- 一旦機器學習使用案例證明在探勘環境中成功,小組就可以要求資源群組。 例如,公司可以設定開發、QA 和生產環境,以進行反覆實驗專案工作,以及存取生產數據源。
- 數據隔離和合規性需求不允許即時生產數據存在於開發環境中。
- 根據每個環境的 IT 原則,針對各種使用者群組存在不同的 RBAC 需求,例如,在生產環境中,存取更為嚴格。
- 所有數據、實驗和推斷都會發生在單一 Azure 區域中。
為了遵守上述需求,Contoso 會以下列方式設定其資源:
- Azure 機器學習 每個專案範圍的工作區和資源群組,以遵循預算和使用案例隔離需求。
- Azure 機器學習 和相關聯資源的多重環境設定,以解決成本管理、RBAC 和數據存取需求。
- 專用於探索的單一資源群組和機器學習工作區。
- 每個使用者角色和環境不同的 Microsoft Entra 群組。 例如,數據科學家可以在生產環境中執行的作業與開發環境不同,而且存取層級可能會因解決方案而異。
- 在單一 Azure 區域中建立的所有資源。
下一步
了解機器學習DevOps與 Azure 機器學習 的最佳做法。
瞭解使用 Azure 機器學習 管理預算、配額和成本時的考慮。