你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

整理和设置 Azure 机器学习环境

规划企业环境的Azure 机器学习部署时,有一些常见决策点会影响创建工作区的方式:

  • 团队结构: 组织数据科学团队并协作处理项目、给定用例和数据隔离或成本管理要求的方式
  • 环境: 用作开发和发布工作流的一部分的环境,用于将开发与生产隔离开来
  • 区域: 数据的位置以及需要为机器学习解决方案提供服务的受众

团队结构和工作区设置

工作区是 Azure 机器学习中的顶级资源。 它存储使用机器学习时生成的项目,以及指向附加和关联的资源的托管计算和指针。 从可管理性的角度来看,工作区作为 Azure 资源管理器 资源支持 Azure 基于角色的访问控制(Azure RBAC),按 Policy 进行管理,并且可以将其用作成本报告的单位。

为了符合可管理性要求,组织通常会选择下面一种或多种解决方案模式。

每个团队的工作区:当团队的所有成员需要对数据和试验资产具有相同级别的访问权限时,为每个团队使用一个工作区。 例如,具有 3 个机器学习团队的组织可能会创建 3 个工作区,每个团队一个。

每个团队使用一个工作区的好处是,团队项目的所有机器学习项目都存储在一个位置。 由于团队成员可以轻松访问、浏览和重复使用试验结果,因此可以提高工作效率。 按团队整理工作区可减少 Azure 占用情况,并按团队简化成本管理。 由于试验资产的数量可能会快速增长,因此你可遵循命名和标记约定来使你的项目保持井然有序。 有关如何命名资源的建议,请参阅开发用于 Azure 资源的命名和标记策略

使用此方法,每个团队成员必须具有类似的数据访问级别权限。 数据源和试验资产的精细基于角色的访问控制(RBAC)和访问控制列表(ACL)在工作区中受到限制。 不能有用例数据隔离要求。

每个项目的工作区: 如果需要按项目隔离数据和试验资产,或者在项目级别具有成本报告和预算要求,请为每个项目使用一个工作区。 例如,你可能有一个组织,其中包含四个机器学习团队,每个团队针对总共 12 个工作区实例运行三个项目。

每个项目使用一个工作区的好处是管理项目级别的成本。 团队通常出于类似原因为Azure 机器学习和关联的资源创建专用资源组。 例如,在与外部参与者一起工作时,以项目为中心的工作区可简化项目协作,因为外部用户只需获得对项目资源的访问权限,而不是对团队资源的访问权限。

此方法需要考虑的事项是试验结果和资产的隔离。 由于资产分布在多个工作区实例中,因此发现和重用资产可能更加困难。

单个工作区: 对非团队或非项目相关工作使用一个工作区,或者当成本不能直接关联到特定计费单位(例如 R&D) 时。

这种设置的优点是,可将与项目无关的单项工作的成本和与项目相关的成本分开。 为所有用户设置单个工作区来完成各自的工作时,可减少 Azure 占用情况。

使用此方法,当许多机器学习从业者共享同一实例时,工作区可能会很快变得混乱。 为了有效地查找资源,用户可能需要基于 UI 的资产筛选。 可以为每个业务部门创建共享机器学习工作区,以缓解规模问题或细分预算。

环境和工作区设置

环境是根据部署在应用程序生命周期中所处的阶段面向的资源集合。 环境名称的常见示例包括“开发”、“测试”、“QA”、“过渡”和“生产”。

组织中的开发过程会影响环境使用的要求。 环境会影响Azure 机器学习和相关资源的设置,例如附加的计算。 例如,数据可用性可能会限制让机器学习实例可用于每个环境的可管理性。 以下是常见的解决方案模式:

单环境工作区部署:选择单个环境工作区部署时,Azure 机器学习部署到一个环境。 此设置对于以研究中心为中心的方案很常见,在这些方案中,无需基于其生命周期阶段发布机器学习项目。 另一种情况是,仅跨环境部署推理服务而不是机器学习管道。

以研究为中心的设置的好处是,Azure 占用情况更小,管理开销最小。 这样做意味着无需在每个环境中部署一个 Azure 机器学习工作区。

使用此方法时,单个环境部署将受到数据可用性的约束。 因此,在设置数据存储时要谨慎。 如果设置了广泛的访问权限(例如,对生产数据源的写入访问权限),则可能会意外损害数据质量。 如果在开发发生时所在的同一环境中将工作引入生产环境,则相同的 RBAC 限制适用于开发工作和生产工作。 这种设置可能会使这两种环境过于严格或过于灵活。

Diagram of a single environment workspace deployment in Azure Machine Learning.

多个环境工作区部署: 选择多个环境工作区部署时,会为每个环境部署一个工作区实例。 这种设置的一个常见方案是在不同环境之间明确分离职责,并用于对这些环境拥有资源访问权限的用户的受控工作区。

此设置的优点是:

  • 分阶段推出机器学习工作流和项目。 例如,跨环境的模型,有可能提高敏捷性并减少部署时间。
  • 增强了资源的安全性和控制能力,因为可以在下游环境中分配更多的访问限制。
  • 针对非开发环境中的生产数据训练方案,因为你可向一组特选的用户授予访问权限。

使用此方法,你面临更多的管理和进程开销的风险。 此设置需要对工作区实例中的机器学习项目进行精细开发和推出过程。 此外,可能需要数据管理和工程工作才能使生产数据可用于开发环境中的训练。 访问管理要求你授予团队访问权限,以解决和调查生产中的事件。 最后,你的团队需要 Azure DevOps 和机器学习工程专业知识来实现自动化工作流。

Diagram of a multiple environment workspace deployment in Azure Machine Learning.

一个具有有限数据访问的环境,一个环境具有生产数据访问:选择此设置时,Azure 机器学习部署到两个环境:一个环境具有有限的数据访问,一个环境具有生产数据访问权限。 如果需要将开发环境和生产环境分开,则此设置很常见。 例如,你可能在组织约束下工作,来使生产数据在任何环境中都可用,或者你可能想要将开发工作与生产工作分开,而不需要因高昂的维护成本而复制比需要的更多的数据。

这种设置的好处是,在开发环境和生产环境之间将职责和访问权限明确分隔开来。 另一个好处是与多环境部署方案相比,资源管理开销更低。

使用此方法,需要为跨工作区的机器学习项目定义开发和推出过程。 此外,它可能需要数据管理和工程工作,使生产数据可用于在开发环境中进行训练。 但这种方法可能需要比多环境工作区部署相对较少的工作量。

Diagram of an environment with limited data access, and an environment with production data access.

区域和资源设置

你的资源、数据或用户的位置可能要求你在多个 Azure 区域创建 Azure 机器学习工作区实例和关联资源。 例如,出于性能、成本和合规性原因,一个项目的资源可能跨西欧和美国东部 Azure 区域。 下面是常见方案:

区域训练:机器学习训练作业在数据所在的同一 Azure 区域中运行。 在此设置中,机器学习工作区部署到数据所在的每个 Azure 区域。 如果需要符合合规性,或者跨区域具有数据移动约束,则这种情况很常见。

此设置的优点是可以在数据所在的数据中心进行试验,且网络延迟最低。 使用此方法,当机器学习管道跨多个工作区实例运行时,它会增加更多的管理复杂性。 跨实例比较试验结果会变得具有挑战性,并会增加配额和计算管理的开销。

如果要跨区域附加存储,但使用一个区域中的计算,Azure 机器学习支持在一个区域中(而非在工作区中)附加存储帐户。 元数据(例如指标)存储在工作区区域中。

Diagram of training jobs operating in the same Azure region as the data.

区域服务: 机器学习服务部署在目标受众所在的位置附近。 例如,如果目标用户位于澳大利亚,并且主要存储和试验区域是西欧,请部署用于西欧试验的机器学习工作区。 然后,在澳大利亚部署 AKS 群集进行推理终结点部署。

这种设置的好处是,可在引入了新数据的数据中心进行推理,从而最大程度地减少延迟和数据移动,并符合本地法规。

使用此方法时,多区域设置提供了多种优势,但也增加了配额和计算管理的开销。 如果要求进行批量推理,则区域服务可能需要多工作区部署。 通过推理终结点收集的数据可能需要跨区域传输,以便重新训练方案。

Diagram of Azure Machine Learning services deployed near where the target audience lives.

区域微调: 基本模型基于初始数据集(例如,来自所有区域的公共数据或数据)进行训练,稍后使用区域数据集进行微调。 由于合规性或数据移动约束,区域数据集可能仅存在于特定区域。 例如,可能需要在区域 A 的工作区中完成基础模型训练,同时微调发生在区域 B 的工作区中。

此设置的优点是可以在数据所在的数据中心内进行合规试验。 你仍然可以利用早期管道阶段中较大数据集的基础模型训练。

此方法支持复杂的试验管道,但它可能会带来更多挑战。 例如,在跨区域比较试验结果时,可能会增加配额和计算管理的开销。

Diagram of an initial dataset deployed using public data or data from all regions, and fine-tuned later with a regional dataset.

参考实现

为了说明在更大的设置中部署Azure 机器学习,本部分说明组织“Contoso”如何设置Azure 机器学习,具体取决于其组织约束、报告和预算要求:

  • Contoso 出于成本管理和报告原因,根据解决方案创建资源组。
  • 为了满足预算要求,IT 管理员只为有资金投入的解决方案创建资源组和资源。
  • 由于数据科学的探索性和不确定性,用户需要一个位置来试验和处理用例和进行数据探索。 通常,探索性工作不能直接关联到特定用例,并且只能关联到 R&D 预算。 Contoso 希望集中资助一些机器学习资源,任何人都可以用于探索目的。
  • 机器学习用例证明在探索环境中取得成功后,团队可以请求资源组。 例如,公司可以设置开发、QA 和生产,以便进行迭代试验项目工作,以及访问生产数据源。
  • 根据数据隔离和合规性要求,开发环境中不能存在实时生产数据。
  • 根据每个环境的 IT 策略,存在不同的 RBAC 要求,例如,在生产环境中,访问更严格。
  • 所有数据、试验和推理都发生在单个 Azure 区域中。

为了遵守上述要求,Contoso 按以下方式设置其资源:

  • Azure 机器学习按项目划分的工作区和资源组,以遵循预算和用例隔离要求。
  • 为了满足成本管理、RBAC 和数据访问要求,对 Azure 机器学习和关联资源采用多环境设置。
  • 专用于探索的单个资源组和机器学习工作区。
  • 每个用户角色和环境不同的 Microsoft Entra 组。 例如,数据科学家在生产环境中可以执行的操作不同于开发环境中的操作,并且访问级别可能因解决方案而异。
  • 在单个 Azure 区域中创建的所有资源。

Diagram of a sample Azure Machine Learning multiple-environment setup for the Contoso organization.

后续步骤

了解有关使用 Azure 机器学习 的机器学习 DevOps 的最佳做法。

了解使用 Azure 机器学习 管理预算、配额和成本时的注意事项。