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

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

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

  • 团队结构:你的数据科学团队是如何组织的,以及如何就项目的给定用例和数据隔离或成本管理要求进行协作。

  • 环境:用作开发和发布工作流程的一部分的环境,用于将开发与生产分开。

  • 区域:你的数据的位置,以及需要将你的机器学习解决方案提供给的受众。

团队结构和工作区设置

工作区是 Azure 机器学习中的顶级资源。 它会存储在使用机器学习、托管计算,以及指向附加资源和关联资源的指针时生成的项目。 从可管理性的角度来看,作为 Azure 资源管理器资源的工作区允许 Azure 基于角色的访问控制 (Azure RBAC)、通过策略进行管理,并可用作成本报告的单元。

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

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

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

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

按每个项目的工作区:如果需要按项目分离数据和试验资产,或者在项目级别具有成本报告和预算要求,请选择对每个项目使用一个工作区。 例如,如果一个组织具有 4 个机器学习团队,每个团队运行 3 个项目,则该组织可能会创建 12 个工作区实例。

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

使用此方法时,需要注意将试验结果和资产隔离开来。 由于资产分布在多个工作区实例中,可能更难发现和重复使用资产。

单个工作区: 选择将一个工作区用于非团队或非项目相关工作,或者当成本无法直接关联到特定计费单位(例如 RD&) 时。

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

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

环境和工作区设置

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

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

单一环境工作区部署:选择单一环境工作区部署时,Azure 机器学习部署到一个环境中。 此设置通常适用于以研究为中心的方案。在这些方案中,无需根据机器学习项目在不同环境中所处的阶段来发布这些项目。 此设置有意义的另一种情况是,在环境中仅部署推理服务,不部署机器学习管道。

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

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

Single environment deployment

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

此设置的优点是:

  • 分步推出机器学习工作流和项目。 例如,跨环境的模型,可能提高敏捷性并缩短部署时间。

  • 增强了资源的安全性和控制,因为你可在下游环境中分配更多的访问限制。

  • 针对非开发环境中的生产数据训练方案,因为你可向一组特选的用户授予访问权限。

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

Multiple environment deployment

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

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

使用此方法时,需要注意的是需要跨工作区为机器学习项目定义开发和推出过程。 另一个注意事项是,可能还需要进行数据管理和工程工作,来使生产数据可用于开发环境中的训练。 但是,与多环境工作区部署相比,它可能需要更少的工作量。

One environment with limited data access, one environment with production data access

区域和资源设置

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

区域训练:机器学习训练作业在数据所在的同一 Azure 区域中运行。 在此设置中,会将一个机器学习工作区部署到数据所在的每个 Azure 区域。 当你按照合规性操作时,或者当你具有跨区域的数据移动约束时,这种情况很常见。

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

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

Regional training

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

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

使用此方法时,需要注意多区域设置提供了若干优点,但也增加了配额和计算管理的开销。 如果需要批量推理,区域服务可能需要多工作区部署。 对于重新训练场景,通过推理终结点收集的数据可能需要跨区域传输。

Regional serving

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

这种设置的好处是,试验符合数据所在的数据中心的要求,并且在早期管道阶段仍然利用更大数据集上的基础模型训练。

需要考虑的是,通过这种方法可实现复杂的试验管道,但它可能也带来了更多挑战。 例如,跨区域比较试验结果,增加配额和计算管理的开销。

Regional fine-tuning

参考实现

为了说明 Azure 机器学习在更大的环境中的部署,本部分概述了“Contoso”组织如何根据其组织约束、报告和预算要求来设置 Azure 机器学习:

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

为了符合上述要求,Contoso 已经按以下方式设置了其资源:

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

Contoso reference implementation

后续步骤

若要了解使用 Azure 机器学习的机器学习 DevOps 的最佳做法,请参阅机器学习 DevOps 指南

若要了解管理 Azure 机器学习的预算、配额和成本时的注意事项,请参阅在组织级别管理 Azure 机器学习的预算、成本和配额