你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
越来越多的多租户解决方案围绕 AI 和机器学习而构建。 多租户 AI 和机器学习解决方案为任意数量的租户提供基于机器学习的统一功能。 租户通常看不到或共享任何其他租户的数据,但在某些情况下,租户可能会使用与其他租户相同的模型。
多租户 AI 和机器学习体系结构需要考虑数据和模型的要求。 这些体系结构还需要考虑训练模型和执行推理所需的计算资源。 请务必考虑如何部署、分布式和协调多租户 AI 和机器学习模型,并确保解决方案准确、可靠且可缩放。
由大语言模型和小型语言模型提供支持的生成 AI 技术继续普及。 因此,组织必须建立有效的作实践和策略,以便通过采用机器学习作(MLOps)和生成式 AI作(GenAIOps),有时称为 LLMOps,在生产环境中管理这些模型。
关键考虑因素和要求
使用 AI 和机器学习时,请务必单独考虑对培训和推理的要求。 训练的目的是生成基于一组数据的预测模型。 使用模型预测应用程序中的内容时,执行推理。 其中每个过程都有不同的要求。 在多租户解决方案中,应考虑 租户模型 如何影响每个过程。 通过考虑上述每个要求,可以确保解决方案提供准确的结果,在负载下表现良好,经济高效,并可以扩展未来增长。
租户隔离
确保租户不会未经授权或不需要访问其他租户的数据或模型。 使用与训练它们的原始数据类似的敏感度处理模型。 确保租户了解如何使用其数据来训练模型,以及如何在其他租户的数据上训练模型用于对其工作负荷进行推理。
在多租户解决方案中使用机器学习模型的三种常见方法是特定于租户的模型、共享模型和优化的共享模型。
特定于租户的模型
特定于租户的模型仅针对单个租户的数据进行训练,然后将其应用于该单租户。 当租户的数据敏感或无法有效地将一个租户数据的见解应用到另一个租户时,请使用特定于租户的模型。 下图演示了如何为两个租户生成具有特定于租户的模型的解决方案。
共享模型
在使用共享模型的解决方案中,所有租户都基于同一共享模型执行推理。 共享模型可能是你从社区源获取或获取的预先训练的模型。 下图说明了所有租户如何使用单个预先训练的模型进行推理。
还可以从所有租户提供的数据中训练它们来生成自己的共享模型。 下图演示了单个共享模型,该模型根据来自所有租户的数据进行训练。
重要
如果根据租户的数据训练共享模型,请确保租户理解并同意其数据的使用。 确保从租户的数据中删除标识信息。
如果租户对象用于训练另一个租户的模型,请考虑该怎么做。 例如,如果租户对象与其数据用于训练另一个租户的模型,则可能需要从训练数据集中排除该租户的数据。
优化的共享模型
还可以选择获取预先训练的基础模型,然后执行进一步的模型优化,使其适用于每个租户,具体取决于自己的数据。 下图说明了此方法。
可伸缩性
考虑解决方案的增长如何影响 AI 和机器学习组件的使用。 增长是指租户数增加、每个租户存储的数据量、用户数以及对解决方案的请求量。
训练: 有几个因素会影响训练模型所需的资源。 这些因素包括需要训练的模型数、用于训练模型的数据量以及训练或重新训练模型的频率。 如果创建特定于租户的模型,则在租户数量增长时,所需的计算资源和存储量也可能会增加。 如果创建共享模型并使用来自所有租户的数据对其进行训练,则训练资源通常不会以与租户增长相同的速度进行缩放。 但是,随着训练数据总量的增加,它会影响用于训练共享模型和特定于租户的模型的资源。
推理: 推理所需的资源通常与访问模型进行推理的请求数成正比。 随着租户数的增加,请求数也可能会增加。
使用可很好地缩放的 Azure 服务是一种很好的一般做法。 由于 AI 和机器学习工作负载倾向于使用容器,因此 Azure Kubernetes 服务 (AKS) 和 Azure 容器实例往往是 AI 和机器学习工作负载的常见选择。 AKS 通常是一个不错的选择,可用于实现高缩放,并根据需求动态缩放计算资源。 可以将容器实例用于小型工作负荷。 配置起来相对容易,但与 AKS 一样容易缩放。
Performance
考虑解决方案的 AI 和机器学习组件的性能要求,包括训练和推理。 明确定义每个进程的延迟和性能预期,以便根据需要衡量和改进它们。
训练: 训练通常作为批处理执行,这意味着它可能不像工作负荷的其他部分那样区分性能。 但是,需要确保预配足够的资源来高效执行模型训练,包括缩放时。
推理: 推理是一个延迟敏感的过程,通常需要快速甚至实时响应。 即使不需要实时执行推理,请确保监视解决方案的性能并使用相应的服务来优化工作负荷。
考虑对 AI 和机器学习工作负载使用 Azure 高性能计算功能。 Azure 提供了许多不同类型的虚拟机和其他硬件实例。 请考虑解决方案是否可以受益于使用 CPU、GPU、现场可编程门阵列(FPGA)或其他硬件加速环境。 Azure 还提供 NVIDIA GPU 的实时推理,包括 NVIDIA Triton 推理服务器。 对于低优先级计算要求,请考虑使用 AKS 现成节点池。 有关如何优化多租户解决方案中的计算服务的详细信息,请参阅 多租户解决方案中计算的体系结构方法。
模型训练通常需要与数据存储进行许多交互,因此考虑数据策略和数据层提供的性能也很重要。 有关多租户和数据服务的详细信息,请参阅 多租户解决方案中存储和数据的体系结构方法。
请考虑分析解决方案的性能。 例如, Azure 机器学习提供分析功能 ,可在开发和检测解决方案时使用。
实现复杂性
构建使用 AI 和机器学习的解决方案时,可以使用预生成组件或生成自定义组件。 必须做出两个关键决策。 首先,选择要用于 AI 和机器学习 的平台或服务 。 其次,决定是使用预先训练的模型还是生成自己的自定义模型。
平台: 有许多 Azure 服务可用于 AI 和机器学习工作负载。 例如,Azure AI Foundry 提供了用于对预生成模型执行推理的 API,Microsoft管理基础资源。 使用 Azure AI Foundry 可以快速部署新解决方案,但它限制了对训练和推理过程的控制,并且可能不适合每种类型的工作负荷。 相比之下,机器学习是一个平台,可用于生成、训练和使用自己的机器学习模型。 机器学习提供控制和灵活性,但它增加了设计和实现的复杂性。 从 Microsoft查看机器学习产品和技术 ,在选择方法时做出明智的决策。
模型: 即使不使用 Azure AI Foundry 等服务提供的完整模型,仍可使用预先训练的模型来加速开发。 如果预先训练的模型不符合你的需求,请考虑通过应用一种称为 微调 或 转移学习的技术来扩展预先训练的模型。 通过微调,可以扩展现有模型并将其应用到其他域。 例如,如果生成多租户音乐建议服务,则可以考虑从预先训练的音乐建议模型开始,并使用微调来训练模型以使用特定用户的音乐首选项。
通过使用预生成的机器学习平台(如 Azure AI Foundry 或预先训练的模型)可以大幅降低初始研发成本。 使用预生成平台可能会节省你数月的研究,并避免需要招募高素质的数据科学家来训练、设计和优化模型。
成本优化
通常,AI 和机器学习工作负载从模型训练和推理所需的计算资源产生的最大成本比例。 有关如何根据要求优化计算工作负荷成本的详细信息,请参阅 多租户解决方案中计算的体系结构方法。
规划 AI 和机器学习成本时,请考虑以下要求:
确定用于训练和推理的计算 SKU。 可以使用不同的 SKU 进行训练和推理。 选择满足性能和成本要求的 SKU,并在所用区域中可用。 有关详细信息,请参阅 Azure 基础结构 (IaaS) 上 AI 工作负载的计算建议。
监视使用情况。 通过观察计算资源的使用情况,可以确定是应通过部署不同的 SKU 来减少或增加其容量,还是随着需求的变化缩放计算资源。 有关详细信息,请参阅 “监视机器学习”。
优化计算群集环境。 使用计算群集时,监视群集使用情况或配置 自动缩放 以缩减计算节点。
共享计算资源。 考虑是否可以通过跨多个租户共享计算资源来优化计算资源的成本。
考虑预算。 了解你是否具有固定预算并相应地监视消耗量。 可以 设置预算 ,以防止超支,并基于租户优先级分配配额。
要考虑的方法和模式
Azure 提供一组服务来启用 AI 和机器学习工作负载。 在多租户解决方案中使用了几种常见的体系结构方法:
使用预生成的 AI 和机器学习解决方案。
使用机器学习构建自定义 AI 和机器学习体系结构。
使用 Azure 分析平台之一。
使用预生成的 AI 和机器学习服务
最好在可以时尝试使用预生成的 AI 和机器学习服务。 例如,组织可能开始探索 AI 和机器学习,并希望快速与有用的服务集成。 或者,你可能有不需要自定义机器学习模型训练和开发的基本要求。 通过预生成的机器学习服务,无需生成和训练自己的模型,即可使用推理。
Azure 提供多个服务,可在一系列域中提供 AI 和机器学习技术。 这些域包括语言理解、语音识别、知识、文档和表单识别以及计算机视觉。 Azure 通过名为 Azure AI Foundry 的统一 AI 应用程序服务提供预生成的 AI 和机器学习服务。 此服务允许用户访问各种模型,包括 Foundry 模型中的 Azure OpenAI,以前称为 Azure OpenAI 服务。 Azure 还提供一组独立的 AI 服务,包括 Azure AI 搜索 和 Azure AI 文档智能。 每个服务都提供一个简单的界面,用于集成和预先训练和测试的模型集合。 作为托管服务,它们提供服务级别协议,并且几乎不需要配置或持续管理。 无需开发或测试自己的模型才能使用这些服务。
许多托管机器学习服务不需要模型训练或数据,因此通常不存在租户数据隔离问题。 但是,某些托管 AI 和机器学习服务确实提供模型自定义功能:
使用这些服务时,请务必考虑租户数据的 隔离要求 。
考虑解决方案中组件的缩放要求。 例如,Azure AI 服务中的许多 API 支持每秒最大请求数。 如果部署单个 AI 服务资源以跨租户共享,则随着租户数的增加,可能需要 扩展到多个资源。
自定义 AI 和机器学习体系结构
如果解决方案需要自定义模型或在托管机器学习服务未涵盖的域中运行,请考虑构建自己的 AI 和机器学习体系结构。 机器学习 提供一套功能来协调机器学习模型的训练和部署:
使用各种开源机器学习库,包括 PyTorch、 TensorFlow、 Scikit 和 Keras。
持续监视模型的性能指标。
检测 数据偏移,即模型输入数据随时间变化。
触发重新训练以提高模型性能。
在整个机器学习模型的生命周期内应用可审核性和治理。 对所有机器学习项目使用内置的跟踪和世系(即跟踪数据和模型关系)。
在多租户解决方案中工作时,请务必在培训和推理阶段考虑 租户的隔离要求 。 还需要确定模型训练和部署过程。 机器学习提供一个管道来训练模型并将其部署到用于推理的环境。 此过程使模型能够基于新数据生成预测或见解。 在多租户上下文中,考虑模型是应部署到共享计算资源,还是每个租户都有专用资源。 根据 隔离模型 和 租户部署过程设计模型部署管道。
使用开源模型时,可能需要使用转移学习或优化重新训练这些模型。 请考虑如何管理每个租户的不同模型和训练数据,以及每个模型的版本。
下图演示了使用机器学习的示例体系结构。 或者,可以利用 Microsoft Fabric Data Science 体验,该体验提供试验、模型管理和终结点部署等功能。 此示例使用 特定于租户的模型 隔离方法。
集成的 AI 和机器学习解决方案
Azure 提供了多个功能强大的分析平台,可用于各种目的。 这些平台包括 Microsoft Fabric、 Azure Databricks 和 Apache Spark。
如果需要将机器学习功能扩展到大量租户,并且需要大规模计算和业务流程,则可以考虑将这些平台用于 AI 和机器学习。 如果需要针对系统的其他部分(例如数据分析和通过 Power BI 与报表集成)的广泛分析解决方案,还可以考虑使用这些平台。 可以部署支持所有分析和 AI 和机器学习需求的单个平台。 在多租户解决方案中实现数据平台时,请查看 多租户解决方案中存储和数据的体系结构方法。
机器学习作模型
采用 AI 和机器学习(包括生成式 AI 实践)时,最好不断改进和评估组织管理能力。 MLOps 和 GenAIOps 的引入客观上提供了一个框架,用于在组织中持续扩展 AI 和机器学习实践的功能。 有关详细信息,请参阅 MLOps 成熟度模型 和 GenAIOps 成熟度模型。
要避免的反模式
无法考虑隔离要求: 请务必仔细考虑如何 隔离租户的数据和模型 ,以便进行训练和推理。 未能隔离租户的数据和模型可能会违反法律或合同要求。 如果数据大相径庭,还可以降低模型在多个租户数据之间进行训练的准确性。
干扰邻居: 考虑训练或推理过程是否可能受到 干扰邻居问题的影响。 例如,如果有多个大型租户和一个小租户,请确保大型租户的模型训练不会无意中消耗所有计算资源并剥夺较小的租户。 使用资源调控和监视来缓解其他租户活动影响租户计算工作负荷的风险。
供稿人
Microsoft维护本文。 以下参与者撰写了本文。
主要作者:
- Kevin Ashley |适用于 Azure 的高级客户工程师 FastTrack
其他参与者:
- 保罗·伯波 |Azure 的 FastTrack 首席客户工程师
- John Downs |Azure 模式和做法的主要软件工程师
- Vic Perdana |ISV 合作伙伴解决方案架构师
- 丹尼尔·斯科特-伦斯福德 |合作伙伴解决方案架构师
- 阿森·弗拉基米尔斯基 | 客户首席工程师,FastTrack for Azure
- 罗德里戈·罗德里格斯 |高级云解决方案架构师 AI 和 Quantum
若要查看非公开的LinkedIn个人资料,请登录LinkedIn。