联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >
3.2 实验
更新时间:4/29/2022, 5:08:37 PM

实验模块作为可视化建模的主要场景地,是项目各个功能模块的中心高地。
点击左侧导航 【实验】 模块或点击 【实验】 卡片,即可进入实验列表页面。

进入实验

实验模块页面展示如下图:

实验列表

新建实验

点击 【新建实验】 按钮,选择相应的方式进行实验创建。接下来以创建空白实验流程进行讲述。

选择创建方式

点击上图中卡片进入。

创建空白实验流程

指定实验存储路径、填写名称(必填)/描述,点击确定进入实验画布页面。

空白实验
1.创建实验方式:包括新建空白实验、从其他项目导入、从本地文件导入、从分享平台导入。
2.实验支持文件分类管理。

可视化建模

在可视化建模之前,首先介绍实验画布界面功能。
实验的界面主要分为6大功能区,包括:算子选择、流程区域、参数设置区域、帮助区域、实验操作导航区域、项目导航区域。每个区域都有各自的功能体现,如下图所示。

实验功能区

功能区1:算子选择

粉红框1号区域为算子区域。见下图:

算子选择

(1)算子类型
算子类型包含两类:算法算子、数据算子。

  • 算法算子:包括导入导出、预处理、表操作、机器学习、自动机器学习、验证与评估、时间序列、统计、集成学习、图计算等;通过系统内置,无法更改。算法算子详细介绍章节:算子使用说明

  • 数据算子:类似数据集、代码、模型、算子模板这种资产数据自动封装成的算子统称为数据算子。特点在于用户可以自由增删且仅作为数据进行应用。

  • 数据集算子:是指用户创建的数据集自动封装成的算子。数据集的介绍详见章节:数据集

  • 算子模板:根据子流程算子固化得到。即子流程算子在内部搭建实验流程,将整个流程固化封装成单个算子进行复用。算子模板的介绍详见章节:算子模板

  • 代码算子:根据用户通过自定义编程得到。代码的介绍详见章节:代码

  • 模型算子:根据用户训练保存的模型文件自动得到。应用时通过使用“模型写入”算子进行应用。模型的介绍详见章节:模型

  • 算子权限:算子总体分为基础版、高级版,可通过参数控制展示。

(2)算子拖拽使用

算子添加到绿色框2号区域的方式有两种:

表 1. 算子拖入方式
方式A:鼠标左键选中某个算法拖拽至流程区域松开即可形成算子,如下图所示。 方式B:鼠标左键快速双击某个算法,即可自动添加至流程区域形成算子。如下图所示。
算子拖入方式a
算子拖入方式b

(3)数据集算子支持预览

鼠标移入,显示预览入口图标,点击即可预览数据集。如下图所示。

数据集预览

数据集预览详情如下图所示。支持图形探索和数据导出到本地。

数据集预览详情

(4)算子选择框隐藏

表 2. 算子选择隐藏
点击算子选择收起图标,算子选择框隐藏。如下图所示。 点击展开。如下图所示。
算子选择收起
算子选择展开

功能区2:流程区域

绿色框2号区域为流程区域。见下图:

流程区域

(1)连接实验流程

资源库和算子区域中的模块都可以根据需要直接鼠标拖入流程框,进行连接形成实验流程进行运算。

算子连接

连接完成的流程如下图,最后的算子必须连接到下方红色框内的输出端点上,才能执行。

连接输出端口

(2)右击操作

表 3. 支持右击操作的功能点
序号 功能点 操作 隐藏功能

1

算子

右击

删除、禁用、重命名、剪切、复制、进入子流程、从此处运行、运行到此处、运行此算子、查看源代码等

2

算子输入输出端口

右击

查看数据、查看元信息、导出数据等

3

连线

右击

删除(delete快捷键)

4

画布

右击

添加笔记、全选(可鼠标框选) 、粘贴

5

笔记

右击

编辑、删除、背景色、文本颜色、对齐方式(三种)

(3)笔记 笔记除了编辑、删除、背景色、文本颜色、对齐方式(三种)功能外,还支持大小拖拽缩放。

笔记功能

功能区3:参数设置区域

橙黄色3号区域为参数设置区域。流程框左键点击任一算子,参数区域就是显示该算子所需的所有参数。为解决算子参数较多展示混乱问题,sophon将算子参数进行分类,大致分为三类:IO参数、算子参数、高级参数。

算子参数设置
表 4. 参数类别说明
参数 解释说明

IO参数

即输入输出参数。定义是否选取属性子集以及预测列是否原地置换这样功能点的参数;

算子参数

即算子本身的参数,比如随机森林的“树的最大高度”等参数;

高级参数

部分算子拥有。该参数与分布式计算有关,与算法本身无关。非必填参数。

注:
1、当算子仅有一类参数时,默认无三种tab类型切换,全部平铺显示;
2、当算子仅有两类参数时,默认仅显示该两个类型的tab进行切换。默认优先显示算子参数;
3、当算子拥有三类参数时,支持三类tab类型切换。默认优先显示算子参数。
表 5. 参数类别实例(以随机森林算子为例)
IO参数 算子参数 高级参数
IO
算子参数
高级参数

点击画布,会显示实验的全局参数,见下图,支持配宏等信息。

画布参数

功能区4:帮助区域

蓝色4号区域为帮助区域。会对流程框中选中的算子或画布进行解释。内容包括算子解释、参数等。

表 6. 帮助类别
算子帮助:点击选中算子,帮助区域即出现该算子的帮助信息 画布帮助:点击画布空白处,帮助区域即出现该画布的帮助信息
算子帮助
画布帮助

功能区5:项目导航区域

黄色5号区域为项目导航区域。单个项目包含实验、数据集、代码、模型等多个模块,您可以点击该区域icon切换至其他相应功能模块。

导航功能

功能区6:实验操作导航区域

红色6号区域为实验操作导航区域。该区域主要包含进行实验建模的一系列执行操作,包括:前进/后退、运行、保存/另存为/导出、新建/打开文件、部署、分享、查看历史等。同时包含快速返回实验列表页面入口。点击 【返回实验列表】 ,即可快速返回实验列表页面。

实验操作导航

实验推荐式建模

对于非资深建模人员,sophon提供简单的推荐式建模功能。当用户不知道某个算子后面接何种算子较合适时,可以通过点击单个算子的输出端口,系统自动推荐几个较大几率的算子供用户选择。

推荐式建模1

用户选择想要连接的算子,点击灰色算子,会自动连接上该算子。

推荐式建模2

实验断点调试

实验创建过程中,支持对实验进行断点调试。右击实验算子,支持三种调试方式:运行到此处、从此处运行、运行此算子。对于数据集算子,只支持从此处运行操作。

断点调试1
表 7. 调试方式说明
调试方式 说明解释

运行到此处

指实验从流程中第一个段子运行到该算子

运行此算子

指实验只运行该算子(初次运行时,由于该算子输入端口无数据输入,默认从头执行该实验)

从此处运行

指实验从该算子按流程向后执行(默认非初次运行,该算子有数据输入)

常规操作流程说明:

第一步:运行到此处
创建实验流程,选中某算子,右击选中点击 【运行到此处】 操作,实验开始运行,调试日志框自动弹出,实时查看运行日志。

第二步:运行此算子
根据第一步的运行结果进行某个算子的参数调试,右击该算子选择点击 【运行此算子】 操作,进行该算子的调试。

第三步:从此处运行

调试好某个算子之后,右击该算子选择点击 【从此处运行】 操作,完整运行实验或进行下一个算子的调试,减少全部实验运行时间。

断点调试2


算子功能操作

操作流程:双击或拖入算子进入画布>右击算子>点击执行相关操作

1、下表为几种类型算子的操作区别:

算子类型 数据集算子 常规算子 子流程算子 深入调试算子

代表算子

数据样例算子

随机森林

子流程\算子模块

交互式预处理

相同功能

删除、禁用、重命名、剪切、复制;从此处运行

删除、禁用、重命名、剪切、复制;从此处运行

删除、禁用、重命名、剪切、复制;从此处运行

删除、禁用、重命名、剪切、复制;从此处运行

不同功能

设为API服务输入;查看数据

运行到此处、运行此算子

运行到此处、运行此算子

预处理编辑;运行到此处、运行此算子

不同点的操作动作

直接选中点击

直接点击

双击算子进入子流程

双击算子或右击预处理编辑进入编辑页

类似算子

所有数据集算子

大部分的操作算子

子流程、跨域子流程、循环、按列循环

交互式预处理、自定义代码算子

2、算法源代码可追溯 从2.4版本开始,基本算法算子提供代码调用接口支持查看算法的scala代码及python代码,以便用户查看。
操作流程:右击算法算子>点击“查看源代码”操作>弹出代码弹框,查看源代码

test 查看代码


实验导入导出

实验创建完成,您可以导出您所创建的实验。导出的实验流程包含数据集、模型、代码模块内容。

1、实验导出

实验导出包含两种操作方法。

表 8. 实验导出操作方法
方法一:在实验界面点击导出按钮,实验导出,浏览器自动下载zip文件 方法二:在实验列表界面点击导出按钮
ui test14
ui test16

实验支持批量导出,选中需要导出的实验并点击导出按钮。不支持文件夹导出。

2、实验导入

实验支持json和zip文件的导入。点击 【新建实验】 ,跳出新建弹框。

ui test17

选择 【从本地文件导入】 ,点击。

ui test18

在导入界面可以选择json或者zip文件格式的文件,并填写实验位置、实验名称以及实验描述。

ui test19

实际实验导入时会存在一些问题,需要注意:

表 9. 实验导入注意事项
类别 详情

Json文件导入

sophon 1.2版本以及之前的版本导出为json格式。使用json格式进行导入,不包含一些外部资源,因此可能存在如下问题:
1、执行实验时,可能会出现"找不到xx"错误。需要自行替换相应的算子。
2、在对json导入的实验进行导出时,可能会出现"找不到xx"错误。

zip文件导入

1、单个导出实验导入:选择单个实验导出的zip文件,并填写实验位置、实验名称以及实验描述,点击确定。
2、批量导出实验导入:对于批量导出的实验,要先进行解压,再对解压后得到的每个zip文件进行导入。
3、sophon 1.3导出的zip文件进行导入:sophon1.3版本导出的zip文件需按照提示先解压zip文件,再将解压后的文件进行重命名,增加.json后缀,最后使用json文件进行导入。

实验导入可能存在的其他问题

如使用不正确的zip文件,可能出现提示信息:
1、无法导入实验流程,请先解压
说明zip文件是批量导出的实验,需要先进行解压,再对得到的每个zip文件进行导入。 2、无法导入实验流程,请不要使用导出的项目文件
说明使用项目导出的zip文件进行导入,请参考项目导入。
3、请先解压zip文件,重命名文件为.json格式,然后导入
说明使用sophon 1.3导出的zip文件进行导入,请按照提示先解压zip文件,再将解压后的文件进行重命名,增加.json后缀,最后使用json文件进行导入。
4、无法导入实验流程,请提供正确的zip文件
说明zip文件并不是由sophon导出生成的,请检查zip文件的正确性。

算子模板

为满足用户对于部分实验流程的复用,本平台支持对子流程算子进行固化,固化后的算子可以在实验中反复应用,提高建模效率及降低建模难度。

算子模板

算子模板包含:我的算子模板、公共算子模板。

  • 我的算子模板:用户个人固化的算子模板,仅支持个人在实验中应用。

  • 公共算子模板:我的算子模板通过发布审批通过后会进入到公共算子模板中,管理员进行审批、分类管理,支持全部用户在实验中应用。

具体流程如下:

1、构建子流程

创建实验,拖入子流程算子。

拖入子流程

双击子流程算子(或者右击算子选择“进入编辑”)进入二级页面,在子流程内部构建想要复用的实验流程。

构建子流程

调试流程保证子流程的健康。

2、子流程固化

返回主流程,右击子流程算子,选择 【固化为算子模板】 操作,进行子流程固化。

子流程固化

点击后跳出固化弹框,指定保存位置及名称、描述即可。

固化弹框

固化成功后,在算子模板/我的算子模板列表中会新增模板记录。

我的算子模板

3、我的算子模板的应用

个人固化好的算子模板,仅支持预览,不支持二次编辑。在实验应用时,直接作为算子拖入画布即可。

算子模板应用

双击算子可以看到子流程的内容。

4、发布为公共算子模板
个人固化好的算子模板,如果想要开放给所有用户进行使用,则需要进行发布,经管理员审核后开放给所有人。

算子发布

点击上图中 【发布】 操作,进行编辑。

发布弹框

发布成功后,会走管理员审批流程,流程通过后,发布的算子模板会自动添加到“公共算子模板”中。公共算子模板仅支持管理员进行编辑,普通用户仅能查看使用。
审批流程详情介绍章节:审批管理我的消息

实验模板

为了方便用户更好的学习各类算子的使用,Sophon为每个算法算子提供对应的实验模板样例,种类繁多。

ui test21

用户可以直接打开实验样例进行执行,但实验样例不支持用户做其他编辑,若用户想要编辑,可以将该实验样例另存为个人实验,进行调试。

ui test22

在复杂项目或者项目里有多个实验的时候,你往往想通过变量来参数化这些实验。在Sophon里,这些用于参数化的变量就称为

宏主要用于流程中,相当于一组key value对,然后流程中的所有参数可以用这个key来替换,比如我定义了一个宏 A,其值是 value。 那么在算子的参数中我可以填写 ${A} is a macro,在后端这个 ${A} 会被替换成 value,所以最终的参数是 value is a macro

如何设置宏

基本上有以下2种方式来设置宏,一种是通过实验右侧参数面板上的 全局映射参数,一种是通过宏相关算子来设置。

1、方法一:使用全局映射
随意点击实验画板任意位置,右侧参数面板中的 全局映射 就是设置宏的地方。

表 10. 设置宏
全局映射:随意点击实验画板任意位置,右侧参数面板中的 全局映射 就是设置宏的地方 设置宏:点击全局映射右侧最大化按钮
global
global1
建议使用大写加下划线来命名宏,比如 MACRO_NAME_ABC

当用户输入全局参数后(如下图)

global 1

点击右上角的按钮可视化的编辑全局参数(如下图)

global 2

该API服务部署上线后,测试时“macros”里出现宏名称(如下图)

global 3

点击【测试】按钮后(如下图)

global 4

右侧的执行结果中出现“宏”的映射值(如下图)

global 5

对比没有输入全局参数的测试结果(如下图)

global 6

其中“macros”为空,执行结果中也不会出现“宏”的映射值。

2、方法二:使用宏算子

除了使用全局映射,可以使用我们提供的宏相关算子来设置宏。

macro ops
  • 添加宏:直接添加宏的key-value对,与全局映射类似

  • 提取宏:从输入的数据集中提取宏

  • 生成宏:通过bash脚本命令输出来生成宏

  • 删除宏:删除在前面生成的宏

其他一些算子会自动生成一些宏,比如 按列循环,他会生成当前循环的列名方便子流程使用。具体请参考对应算子的文档。

如何使用宏

当你设置了宏以后,所有的算子参数都可以用宏来替换。

规则是参数字符串中包含 ${MACRO_A} 的会被替换为宏 MACRO_A 对应的值。

宏使用案例

我们使用 按列循环 这个算子来看一下宏的使用场景。(详见按列循环算子实验样例)

比如我们需要将输入中所有的数值列取平方根,但 幂运算 只支持设置一个输入,一旦数据多了每一列加一个算子非常麻烦。这个时候 我们就可以用到宏。

首先我们选取需要做处理的数据集,比如这里用golf,其中temperature,humidity两列是数值类型,需要处理。将其连到 按列循环 算子。 这里设置 列名对应的宏COL,既每次循环的时候,将当前循环的列名设为宏 COL。所以第一次循环 COL 为 temperature,第二次 为 humidity

表 11. 按列循环参数设置
IO参数 算子参数
macro1
macro4

然后我们双击 按列循环 算子进入子流程,进行我们的预处理操作。使用 幂运算 算子, 设置输入列名为 ${COL}, 输出列名为 ${COL}_sqrt} 。这样,在每次循环时参数中的 ${COL} 会被替换成当前循环的列名。

表 12. 幂运算参数设置
IO参数 算子参数
macro3
macro5

最终结果如下,可以看到我们生成了两列temperature_sqrt和humidity_sqrt。通过使用宏,我们不需要重复添加 幂运算 算子。 当需要有大量相同的重复操作时,合理应用宏可以极大提高效率。

macro2