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

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

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

点击上图中卡片进入。

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

1.创建实验方式:包括新建空白实验、从其他项目导入、从本地文件导入、从分享平台导入。 2.实验支持文件分类管理。 |
可视化建模
在可视化建模之前,首先介绍实验画布界面功能。
实验的界面主要分为6大功能区,包括:算子选择、流程区域、参数设置区域、帮助区域、实验操作导航区域、项目导航区域。每个区域都有各自的功能体现,如下图所示。

功能区1:算子选择
粉红框1号区域为算子区域。见下图:

(1)算子类型
算子类型包含两类:算法算子、数据算子。
-
算法算子:包括导入导出、预处理、表操作、机器学习、自动机器学习、验证与评估、时间序列、统计、集成学习、图计算等;通过系统内置,无法更改。算法算子详细介绍章节:算子使用说明
-
数据算子:类似数据集、代码、模型、算子模板这种资产数据自动封装成的算子统称为数据算子。特点在于用户可以自由增删且仅作为数据进行应用。
-
数据集算子:是指用户创建的数据集自动封装成的算子。数据集的介绍详见章节:数据集
-
算子模板:根据子流程算子固化得到。即子流程算子在内部搭建实验流程,将整个流程固化封装成单个算子进行复用。算子模板的介绍详见章节:算子模板
-
代码算子:根据用户通过自定义编程得到。代码的介绍详见章节:代码
-
模型算子:根据用户训练保存的模型文件自动得到。应用时通过使用“模型写入”算子进行应用。模型的介绍详见章节:模型
-
算子权限:算子总体分为基础版、高级版,可通过参数控制展示。
(2)算子拖拽使用
算子添加到绿色框2号区域的方式有两种:
方式A:鼠标左键选中某个算法拖拽至流程区域松开即可形成算子,如下图所示。 | 方式B:鼠标左键快速双击某个算法,即可自动添加至流程区域形成算子。如下图所示。 |
---|---|
![]() |
![]() |
(3)数据集算子支持预览
鼠标移入,显示预览入口图标,点击即可预览数据集。如下图所示。

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

(4)算子选择框隐藏
点击算子选择收起图标,算子选择框隐藏。如下图所示。 | 点击展开。如下图所示。 |
---|---|
![]() |
![]() |
功能区2:流程区域
绿色框2号区域为流程区域。见下图:

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

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

(2)右击操作
序号 | 功能点 | 操作 | 隐藏功能 |
---|---|---|---|
1 |
算子 |
右击 |
删除、禁用、重命名、剪切、复制、进入子流程、从此处运行、运行到此处、运行此算子、查看源代码等 |
2 |
算子输入输出端口 |
右击 |
查看数据、查看元信息、导出数据等 |
3 |
连线 |
右击 |
删除(delete快捷键) |
4 |
画布 |
右击 |
添加笔记、全选(可鼠标框选) 、粘贴 |
5 |
笔记 |
右击 |
编辑、删除、背景色、文本颜色、对齐方式(三种) |
(3)笔记 笔记除了编辑、删除、背景色、文本颜色、对齐方式(三种)功能外,还支持大小拖拽缩放。

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

参数 | 解释说明 |
---|---|
IO参数 |
即输入输出参数。定义是否选取属性子集以及预测列是否原地置换这样功能点的参数; |
算子参数 |
即算子本身的参数,比如随机森林的“树的最大高度”等参数; |
高级参数 |
部分算子拥有。该参数与分布式计算有关,与算法本身无关。非必填参数。 |
注: 1、当算子仅有一类参数时,默认无三种tab类型切换,全部平铺显示; 2、当算子仅有两类参数时,默认仅显示该两个类型的tab进行切换。默认优先显示算子参数; 3、当算子拥有三类参数时,支持三类tab类型切换。默认优先显示算子参数。 |
IO参数 | 算子参数 | 高级参数 |
---|---|---|
![]() |
![]() |
![]() |
点击画布,会显示实验的全局参数,见下图,支持配宏等信息。

功能区4:帮助区域
蓝色4号区域为帮助区域。会对流程框中选中的算子或画布进行解释。内容包括算子解释、参数等。
算子帮助:点击选中算子,帮助区域即出现该算子的帮助信息 | 画布帮助:点击画布空白处,帮助区域即出现该画布的帮助信息 |
---|---|
![]() |
![]() |
功能区5:项目导航区域
黄色5号区域为项目导航区域。单个项目包含实验、数据集、代码、模型等多个模块,您可以点击该区域icon切换至其他相应功能模块。

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

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

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

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

调试方式 | 说明解释 |
---|---|
运行到此处 |
指实验从流程中第一个段子运行到该算子 |
运行此算子 |
指实验只运行该算子(初次运行时,由于该算子输入端口无数据输入,默认从头执行该实验) |
从此处运行 |
指实验从该算子按流程向后执行(默认非初次运行,该算子有数据输入) |
常规操作流程说明:
第一步:运行到此处
创建实验流程,选中某算子,右击选中点击 【运行到此处】
操作,实验开始运行,调试日志框自动弹出,实时查看运行日志。
第二步:运行此算子
根据第一步的运行结果进行某个算子的参数调试,右击该算子选择点击 【运行此算子】
操作,进行该算子的调试。
第三步:从此处运行
调试好某个算子之后,右击该算子选择点击 【从此处运行】
操作,完整运行实验或进行下一个算子的调试,减少全部实验运行时间。

算子功能操作
操作流程:双击或拖入算子进入画布>右击算子>点击执行相关操作
1、下表为几种类型算子的操作区别:
算子类型 | 数据集算子 | 常规算子 | 子流程算子 | 深入调试算子 |
---|---|---|---|---|
代表算子 |
数据样例算子 |
随机森林 |
子流程\算子模块 |
交互式预处理 |
相同功能 |
删除、禁用、重命名、剪切、复制;从此处运行 |
删除、禁用、重命名、剪切、复制;从此处运行 |
删除、禁用、重命名、剪切、复制;从此处运行 |
删除、禁用、重命名、剪切、复制;从此处运行 |
不同功能 |
设为API服务输入;查看数据 |
运行到此处、运行此算子 |
运行到此处、运行此算子 |
预处理编辑;运行到此处、运行此算子 |
不同点的操作动作 |
直接选中点击 |
直接点击 |
双击算子进入子流程 |
双击算子或右击预处理编辑进入编辑页 |
类似算子 |
所有数据集算子 |
大部分的操作算子 |
子流程、跨域子流程、循环、按列循环 |
交互式预处理、自定义代码算子 |
2、算法源代码可追溯 从2.4版本开始,基本算法算子提供代码调用接口支持查看算法的scala代码及python代码,以便用户查看。
操作流程:右击算法算子>点击“查看源代码”操作>弹出代码弹框,查看源代码

实验导入导出
实验创建完成,您可以导出您所创建的实验。导出的实验流程包含数据集、模型、代码模块内容。
1、实验导出
实验导出包含两种操作方法。
方法一:在实验界面点击导出按钮,实验导出,浏览器自动下载zip文件 | 方法二:在实验列表界面点击导出按钮 |
---|---|
![]() |
![]() |
实验支持批量导出,选中需要导出的实验并点击导出按钮。不支持文件夹导出。
2、实验导入
实验支持json和zip文件的导入。点击 【新建实验】
,跳出新建弹框。

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

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

实际实验导入时会存在一些问题,需要注意:
类别 | 详情 |
---|---|
Json文件导入 |
sophon 1.2版本以及之前的版本导出为json格式。使用json格式进行导入,不包含一些外部资源,因此可能存在如下问题: |
zip文件导入 |
1、单个导出实验导入:选择单个实验导出的zip文件,并填写实验位置、实验名称以及实验描述,点击确定。 |
实验导入可能存在的其他问题 |
如使用不正确的zip文件,可能出现提示信息: |
算子模板
为满足用户对于部分实验流程的复用,本平台支持对子流程算子进行固化,固化后的算子可以在实验中反复应用,提高建模效率及降低建模难度。

算子模板包含:我的算子模板、公共算子模板。
-
我的算子模板:用户个人固化的算子模板,仅支持个人在实验中应用。
-
公共算子模板:我的算子模板通过发布审批通过后会进入到公共算子模板中,管理员进行审批、分类管理,支持全部用户在实验中应用。
具体流程如下:
1、构建子流程
创建实验,拖入子流程算子。

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

调试流程保证子流程的健康。
2、子流程固化
返回主流程,右击子流程算子,选择 【固化为算子模板】
操作,进行子流程固化。

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

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

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

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

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

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

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

宏
在复杂项目或者项目里有多个实验的时候,你往往想通过变量来参数化这些实验。在Sophon里,这些用于参数化的变量就称为 宏
。
宏主要用于流程中,相当于一组key value对,然后流程中的所有参数可以用这个key来替换,比如我定义了一个宏 A
,其值是 value
。 那么在算子的参数中我可以填写 ${A} is a macro
,在后端这个 ${A}
会被替换成 value
,所以最终的参数是 value is a macro
。
如何设置宏
基本上有以下2种方式来设置宏,一种是通过实验右侧参数面板上的 全局映射参数
,一种是通过宏相关算子来设置。
1、方法一:使用全局映射
随意点击实验画板任意位置,右侧参数面板中的 全局映射
就是设置宏的地方。
全局映射:随意点击实验画板任意位置,右侧参数面板中的 全局映射 就是设置宏的地方 |
设置宏:点击全局映射右侧最大化按钮 |
---|---|
![]() |
![]() |
建议使用大写加下划线来命名宏,比如 MACRO_NAME_ABC |
当用户输入全局参数后(如下图)

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

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

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

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

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

其中“macros”为空,执行结果中也不会出现“宏”的映射值。
2、方法二:使用宏算子
除了使用全局映射,可以使用我们提供的宏相关算子来设置宏。

-
添加宏:直接添加宏的key-value对,与全局映射类似
-
提取宏:从输入的数据集中提取宏
-
生成宏:通过bash脚本命令输出来生成宏
-
删除宏:删除在前面生成的宏
其他一些算子会自动生成一些宏,比如 按列循环
,他会生成当前循环的列名方便子流程使用。具体请参考对应算子的文档。
如何使用宏
当你设置了宏以后,所有的算子参数都可以用宏来替换。
规则是参数字符串中包含 ${MACRO_A}
的会被替换为宏 MACRO_A
对应的值。
宏使用案例
我们使用 按列循环
这个算子来看一下宏的使用场景。(详见按列循环算子实验样例)
比如我们需要将输入中所有的数值列取平方根,但 幂运算
只支持设置一个输入,一旦数据多了每一列加一个算子非常麻烦。这个时候 我们就可以用到宏。
首先我们选取需要做处理的数据集,比如这里用golf,其中temperature,humidity两列是数值类型,需要处理。将其连到 按列循环
算子。 这里设置 列名对应的宏
为 COL
,既每次循环的时候,将当前循环的列名设为宏 COL
。所以第一次循环 COL
为 temperature,第二次 为 humidity
IO参数 | 算子参数 |
---|---|
![]() |
![]() |
然后我们双击 按列循环
算子进入子流程,进行我们的预处理操作。使用 幂运算
算子, 设置输入列名为 ${COL}
, 输出列名为 ${COL}_sqrt}
。这样,在每次循环时参数中的 ${COL}
会被替换成当前循环的列名。
IO参数 | 算子参数 |
---|---|
![]() |
![]() |
最终结果如下,可以看到我们生成了两列temperature_sqrt和humidity_sqrt。通过使用宏,我们不需要重复添加 幂运算
算子。 当需要有大量相同的重复操作时,合理应用宏可以极大提高效率。
