类别

版本



CI/CD的最佳实践

参见最佳实践项目文档。

为了有效地扩展您的AI计划,您需要创建一个系统,该系统允许对项目修订进行测试并自动发布到生产中——所有这些都不会破坏企业任何其他部分的工作流程。为了帮助您做到这一点,RapidMiner建立了一系列基于敏捷编程方法并适用于数据科学项目的最佳实践。乐鱼平台进入

在本文中,我们将分享这些最佳实践,并探讨企业如何使用RapidMiner在其组织中建立民主化的数据科学开发管道(CI/CD) -允许他们扩展其AI计划,同时提供结构和保障以确保生产完整性。乐鱼平台进入

RapidMiner AI Hub环境结构

分离开发环境和生产环境是软件开发生命周期的核心原则。建立独立的环境是一种行之有效的方法,可以鼓励创新和实验,而不会产生意想不到的下游后果。

由于RapidMiner的多角色用户的性质,其中许多人没有软件开发背景,我们建议三到四个独立的,版本一致的AI Hub环境,以支持您组织的敏捷而安全的整体架构:

环境1:发展(DEV)

此环境通常用于安全地构建新流程、尝试想法或更改数据管道,而不会影响其他任何内容。项目变更间接影响了整个不同地方的工作流,这对公司来说可能是毁灭性的,因此开发通常在单独的“沙盒”环境中进行,以避免不必要的风险。此环境的乐鱼体育安装资源往往是标准化的,并且仅取决于活动用户的数量。一般的经验法则是每64GB单位有10-20个活跃用户。这种环境不能保证正常运行时间的可靠性,尽管备份已经到位,但回滚并不常见;工作流和模型处于版本控制之下,以便跟踪更改和实验。需要注意的是,这些限制在沙盒环境中是意料之中的,也是正常的。DEV的许可是慷慨的,并鼓励实验。

环境2:测试(TEST)

新项目开发完成后,在发布之前应该进行内部测试。测试可以进一步分为alpha或beta等阶段,最佳实践是在不中断DEV或PROD的半稳定版本中进行测试,通常称为test或QA(即质量保证)。这与软件工程的“集成测试”阶段相匹配。这个TEST环境使用真实数据和流程的样本来发现新部署中的潜在缺陷。TEST上的权限通常类似于DEV,但是对于TEST环境来说,通常是按一定的节奏进行“清理”,以确保所有进入PROD的进程都有一个标准化的测试周期。

环境3:分期(分期)

该环境是PROD的直接克隆,用于测试端到端部署,而不会影响PROD Hub。对于运行在云基础设施(如AWS、Azure或GCP)中的AI Hubs,根据需要让这个实例上下旋转是经济有效的。权限是非常有限的,正常运行时间保证99.99%以上,而旋转。

环境4:生产环境(PROD)

此AI Hub主要是一个只读环境,运行流程以生成业务价值。在此环境中出现的问题需要花费真正的金钱,因此不应受到前面任何阶段的影响。出于这个原因,权限是非常有限的,正常运行时间保证99.99%以上。部署使用专用RAM/存储进行容器化,以确保稳定性。变化是不频繁和可控的。

RapidMiner CI/CD生命周期

下面是一个典型的RapidMiner CI/CD生命周期的示例。

请注意,在“B.更改”项下,更改可能有两种类型:

  • 软件的更改
  • 机器学习模型的变化

与传统的软件开发相比,机器学习开发的一个显著特征是需要偶尔对模型进行再训练,以提高它们在面对新数据时的性能。例如,如果传入数据的分布发生了变化,则可能不需要对软件进行任何更改,但是您仍然需要更新模型以保持其性能。

A.初始部署

  1. 工程师Eddie是一名RapidMiner认证的数据工程师/机器学习专业人员,他在DEV上构建了一个他希望部署的git版本的RapidMiner项目。这可能是由外部web服务、RapidMiner仪表板、RapidMiner通过电子邮件或短信发出警报、将数据推送回数据库或Excel表的预定ETL作业等消耗的模型评分。这被认为是“测试版”完成后,并命名埃迪-部署- 0.1

  2. Eddie请同事Elizabeth工程师(rapidminer认证的平台管理员)检查和测试他的部署。Elizabeth向Eddie提供反馈,并确保他的部署是安全的、可靠的、文档完备的、不过度消耗资源的,并且在设计上与整个组织中的其他部署保持一致。随着新变化的应用,伊丽莎白和埃迪一致认为这是现在埃迪-部署- 0.2

  3. 埃迪提交埃迪-部署- 0.2系统管理员Sandra负责监督整个CI/CD管道,并拥有对STAGING和PROD的完全管理权限。Sandra或Sandra团队中具有适当权限的人将Eddie的项目加载到STAGING中。她最终决定部署这个项目,并决定应该分配哪些资源。乐鱼体育安装

  4. Sandra将Eddie的项目从STAGING移动到PROD,并通知Eddie他的部署现在是live埃迪-部署- 1.0。她共享所有相关的url并向Eddie分配权限,以便他可以按照设计使用部署。Sandra将此部署添加到她在PROD中监视的其他部署列表中,并根据需要设置警报。Sandra还安排了3个月后对Eddie的审计,以评估他的部署情况。

b更改

  1. 在部署之后的某个时刻,Eddie希望对他的一个流程进行一些改进。他在DEV中工作并提交埃迪-部署- 1.1他的项目报告。

  2. Eddie经历了与他最初发布部署时完全相同的阶段。然而,这个过程会更快,因为项目的大部分内容保持不变。如果成功,Sandra将通知所有用户埃迪-部署- 1.0它将在某个时间和日期进行升级,以最小化对生成的业务价值的总体影响。当活着的时候,这就是现在埃迪-部署- 2.0

C.季度回顾

在最新版本上线三个月后埃迪-部署- 2.0, Sandra和她的团队会见了Eddie和这个部署的其他用户。他们审查绩效和资源分配。如果建议修改代码,Eddie遵循b中所示的过程。如果评审建议弃用,他遵循D节中概述的过程。

d .弃用

  1. 在初始部署18个月后进行的季度审查中,Sandra和Eddie一致认为他的部署不再产生业务价值,应该弃用。分析师Alyssa一直在研究这个业务问题的新解决方案,并准备开始将她的部署(Alyssa -deployment-0.1)从DEV迁移到TEST的过程。Sandra提醒所有现有用户埃迪-部署- 2.0它将在某个特定的日期和时间被弃用——提前得足够远,以便可以对时间紧迫的应用程序进行调整。

  2. 在指定的日期和时间,桑德拉移除埃迪-部署- 2.0将生产过程和所有日志存档以备审核。她将资源移动到一般池中,以供乐鱼体育安装另一个部署使用。

项目部署的管理工具

所有最终被部署的进程、ExampleSets和相关对象都应该始终驻留在RapidMiner项目中。从技术上讲,这些项目是git支持的,因此部署到不同的环境相当于在git中进行“克隆/复制/推送”操作。

远程访问和控制AI Hub可以自动执行任务,包括访问项目。这是通过a实现的rest api

管理扩展

即使是像这样的高级主题,也要完全接受无代码方法管理扩展被创建。只需一个操作员,用户就可以部署项目从一个AI中心到另一个完全在RapidMiner生态系统内。

用户将需要具有适当权限的连接凭据连接两个AI Hub(例如从DEV到TEST),以创建专门的AI Hub连接对象。这些是操作员的输入,源和目标项目在参数面板中定义。

由于不同的环境通常具有不同的数据源(例如数据库),因此管理员应该考虑不部署连接,而是创建具有相同名称的连接,这些连接指向新环境的适当数据源。