类别

版本

您正在查看9.7 -版的RapidMiner Studio文档点击这里查看最新版本

开发的最佳实践

在本文档中,我们为正在开发和部署RapidMiner流程和模型的团队推荐了最佳实践。

通常,我们建议将您的工作分为开发和生产项目,并为更大或更关键的用例使用中间测试阶段。流程和模型将以一致的方式从一个阶段移动到下一个阶段,平台保持不变快照在每个发展阶段中,任何阶段都可以随时恢复。

一个完整的环境示意图如下图所示,包括:

发展

开始一个项目:

  1. 创建项目在RapidMiner AI Hub内,并确保所有团队成员都有

  2. 然后每个团队成员连接到项目从RapidMiner Studio(或可能的Git客户端)。

注意以下几点:

  • 在项目中,RapidMiner Studio的功能与在项目中相同存储库
  • 项目可以包含任意文件类型,而不仅仅是在RapidMiner中创建的过程和模型。
  • 每个团队成员都有项目的完整副本,并且可以独立工作。
  • 项目的所有副本都是相同的,除了尚未作为快照共享的本地更改。
  • 当您对您的局部更改工作感到满意时,这是一个好时机创建快照
  • 如果你对你的局部变化不满意,你可以放弃局部更改
  • 如果您需要由团队成员创建的快照,您可以得到更新

冲突

为了避免冲突,遵循开发者的一般建议是明智的:保持项目的不同部分尽可能独立。例如,如果一个团队成员负责数据准备,另一个负责建模,那么至少创建两个独立的流程,每个流程都有预期输入和输出的清晰定义。

在发生冲突的情况下,RapidMiner Studio提供了一个带有一些基本属性的用户界面解决冲突,并为每个冲突的文件提供以下选项:

  • 用我的版本
  • 用我同事的版本

请注意,没有任何东西会丢失!所有相关信息保存在快照历史记录中,作为三个不同的快照:您的快照、您同事的快照和包含冲突解决方案的快照。

测试与生产

测试和生产环境与开发环境有着根本的不同,但是在RapidMiner中,它们是由相同的Project概念支持的——不同之处在于如何配置它们以及如何使用它们。

注意以下区别:

  • 权限不同。在开发过程中,团队成员可以访问所有内容。测试和生产通常由机器学习运维管理(取决于公司,可能是IT、DevOps或数据科学团队中的某个特定小组)。乐鱼平台进入

  • 连接指向不同的数据源。即使流程在所有三种环境中通常是相同的,测试连接,特别是生产连接也需要指向特定的数据源。

  • 进程通常被安排为定期运行。

  • 历史变短了。开发快照历史包含创建最终版本所需的所有更改和中间步骤。测试和生产环境只有在部署新版本时才会更改,这意味着只有稳定的最终版本才会包含在它们的历史记录中。

    • 例外:如果过程本身修改了项目,例如,通过添加自动训练的模型或过程输出。
  • 测试环境包括额外的流程,用于测试计划流程的输出在许多标准情况下是否正确,通常包括:

    • 输出数据一致性(如果输出是一个ExampleSet)

    • 模型精度(或任何其他模型性能度量)

    • 潜在的其他指标,如时间、对已知请求的响应等。

生产

设置好环境之后,就可以开始持续集成/持续部署(CI/CD)的循环了。目前,这个循环还不能完全自动化。

创建测试和生产环境

一旦开发团队产生了他们的第一个结果,稳定的快照可以从RapidMiner AI Hub的下载快照历史页面。结果是一个ZIP文件,其中包含快照的完整内容,包括连接。

使用这个快照,可以在测试或生产环境中创建一个新的项目。通常还需要一些额外的步骤:

  • 检查连接,以便它们指向新环境中的正确数据源。
  • 向测试项目添加测试过程。
  • 根据需要配置计划。

更新测试和生产环境

随着开发团队继续他们的工作,将需要额外的部署。建议采取以下步骤:

  1. 在RapidMiner AI Hub web界面中,暂停所有计划与项目相关的。
  2. 启动RapidMiner Studio并连接到相应的开发和测试项目。
  3. 除连接外,删除测试中的项目内容。或者,如果只是部分更改,只需删除受影响的文件夹。
  4. 复制并粘贴开发中的新内容。
  5. 创建新的快照在测试中。
  6. 运行已定义的测试,并确保结果符合预期。
  7. 在RapidMiner AI Hub web界面中,恢复所有日程安排(确保计划的进程没有被重命名或删除)。

对于生产环境,过程取决于用例。

  • 实时得分

  • Web服务

    • 将项目的内容复制到生产服务器的存储库中
    • 确保所有连接都指向正确的数据源。
    • 编辑web服务向他们指出新的过程。
  • RapidMiner AI Hub时间表

    • 将项目的内容复制到生产服务器的存储库中
    • 确保所有连接都指向正确的数据源。
    • 编辑时间表向他们指出新的过程。