类别

版本

开发的最佳实践

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

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

下图提供了一个完整的环境示意图,包括:

发展

开始一个项目:

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

  2. 那么每个团队成员连接到项目从RapidMiner Studio(或者可能是一个Git客户端)。

注意以下几点:

  • 在项目中,RapidMiner Studio的功能与在存储库
  • 一个项目可以包括任意的文件类型,而不仅仅是在RapidMiner中创建的流程和模型。
  • 每个团队成员都有一个完整的项目副本,并且可以独立工作。
  • 项目的所有副本都是相同的,除了尚未作为快照共享的本地更改。
  • 当您对本地更改正在工作感到满意时,就可以进行以下操作创建一个快照
  • 如果您不满意您的本地更改,您可以这样做抛弃本地更改
  • 如果您需要一个由团队成员创建的Snapshot,您可以这样做得到更新

冲突

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

在发生冲突时,RapidMiner Studio提供了一个具有一些基本的用户界面解决冲突,并为每个冲突的文件设置以下选项:

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

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

测试和生产

测试和生产环境从根本上不同于开发环境,但它们在RapidMiner中由相同的项目概念支持——区别在于如何配置它们以及如何使用它们。

注意以下区别:

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

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

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

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

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

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

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

    • 可能还有其他指标,如时间、对已知请求的响应等。

生产

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

创建测试和生产环境

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

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

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

更新测试和生产环境

随着开发团队继续他们的工作,将需要更多的部署。建议如下:

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

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

  • 实时得分

  • Web服务

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

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