开发的最佳实践
在本文档中,我们为开发和部署RapidMiner流程和模型的团队推荐最佳实践。
通常,我们建议将您的工作分成开发项目和生产项目,为更大或更关键的用例提供中间测试阶段。流程和模型将以一致的方式从一个阶段转移到下一个阶段,同时保持平台快照在发展的每个阶段,任何一个都可以在任何时候恢复。
下图提供了一个完整的环境示意图,包括:
发展
开始一个项目:
注意以下几点:
- 在项目中,RapidMiner Studio的功能与在存储库.
- 一个项目可以包括任意的文件类型,而不仅仅是在RapidMiner中创建的流程和模型。
- 每个团队成员都有一个完整的项目副本,并且可以独立工作。
- 项目的所有副本都是相同的,除了尚未作为快照共享的本地更改。
- 当您对本地更改正在工作感到满意时,就可以进行以下操作创建一个快照.
- 如果您不满意您的本地更改,您可以这样做抛弃本地更改.
- 如果您需要一个由团队成员创建的Snapshot,您可以这样做得到更新.
冲突
为了避免冲突,明智的做法是遵循对开发人员的一般建议:让项目的不同部分尽可能独立。例如,如果一个团队成员负责数据准备,另一个负责建模,那么至少创建两个独立的过程,每个过程都对预期的输入和输出有明确的定义。
在发生冲突时,RapidMiner Studio提供了一个具有一些基本的用户界面解决冲突,并为每个冲突的文件设置以下选项:
- 用我的版本
- 用我同事的版本
请注意,没有任何东西会丢失!所有相关信息保存在快照历史中,作为三个不同的快照:您的快照、同事的快照和包含冲突解决方案的快照。
测试和生产
测试和生产环境从根本上不同于开发环境,但它们在RapidMiner中由相同的项目概念支持——区别在于如何配置它们以及如何使用它们。
注意以下区别:
权限是不同的。在开发中,团队成员可以访问所有内容。测试和生产通常由机器学习运维(取决于公司,可能是IT、DevOps或数据科学团队中的某些特定团队)管理。乐鱼平台进入
连接指向不同的数据源。即使所有三个环境中的流程通常是相同的,测试连接,特别是生产连接也需要指向特定的数据源。
进程通常被安排定期运行。
历史较短。开发快照历史包含创建最终版本所需的所有更改和中间步骤。只有在部署新版本时,才会更改测试和生产环境,这意味着只有稳定的最终版本会包含在它们的历史记录中。
- 例外:如果过程本身修改了项目,例如,通过添加自动训练的模型或过程输出。
测试环境包括额外的流程,用于测试调度流程的输出对于许多标准情况是否正确,通常包括:
输出数据一致性(如果输出是一个ExampleSet)
模型精度(或任何其他模型性能度量)
可能还有其他指标,如时间、对已知请求的响应等。
生产
设置好环境之后,就可以开始持续集成/持续部署(CI/CD)的循环了。目前,这个循环还不能完全自动化。
创建测试和生产环境
一旦开发团队产生了他们的第一个结果,稳定的快照可以从RapidMiner AI Hub下载快照历史页面。结果是一个包含Snapshot完整内容(包括连接)的ZIP文件。
使用此Snapshot,可以在测试或生产环境中创建新的项目。通常需要一些额外的步骤:
- 检查连接,使它们指向新环境中的正确数据源。
- 向测试项目添加测试过程。
- 根据需要配置计划。
更新测试和生产环境
随着开发团队继续他们的工作,将需要更多的部署。建议如下:
- 在RapidMiner AI Hub的web界面中,暂停所有的日程安排与项目有关。
- 启动RapidMiner Studio并连接到与开发和测试相对应的项目。
- 在测试中删除项目的内容,连接除外。或者,如果只是部分更改,只需删除受影响的文件夹。
- 复制和粘贴来自开发的新内容。
- 创建新的快照在测试中。
- 运行已定义的测试,并确保结果符合预期。
- 在RapidMiner AI Hub的web界面中,恢复所有的日程安排(确保计划的进程没有被重命名或删除)。
对于生产环境,过程取决于用例。