DataArts Studio串联ModelArts作业
0.概要介绍
数据治理中心DataArts Studio(原DGC)使用指南:
https://support.huaweicloud.com/usermanual-dgc/dgc_01_0007.html
数据治理中心DataArts Studio(原DGC)用于编排任务,串联大数据与AI作业。如下图所示为一个简单的串联作业案例:

1. 准备工作
1.1 创建DataArts作业
开始界面如下,点击“数据开发”进入作业编排界面。

点击新建作业如下:

选择批处理并创建:

1.2 选择节点
节点说明:
https://support.huaweicloud.com/usermanual-dgc/dgc_01_0442.html
数据湖探索DLI使用说明:
https://support.huaweicloud.com/dli/
AI开发平台ModelArts使用说明:
https://support.huaweicloud.com/modelarts/
进入作业编辑作业,ModelArts作业选用Rest Client节点,DLI相关作业选用DLI相关节点,其余大数据侧节点同理。

1.3 配置作业参数
多次执行作业时,需要通过时间戳区分作业名称和作业的存储位置,可在作业参数配置中进行设置:

例如参数cur_time的值为如下表达式,返回参数20220811-180000,在节点中配置${cur_time}的地方,则自动替换为20220811-180000。
#{DateUtil.format(DateUtil.addDays(Job.planTime,0),"yyyyMMdd-HHmmss")}
EL表达式使用说明:
https://support.huaweicloud.com/usermanual-dgc/dgc_01_0494.html
2. 创建DLI节点
训练作业需要从对象存储系统OBS中读取训练数据,因此需要在DLI作业中将数据写入OBS,参考DLI说明文档,例如:
https://support.huaweicloud.com/sqlreference-dli/dli_08_0076.html
3. 创建ModelArts作业节点
3.1 Rest Client节点使用
执行ModelArts作业或者查询ModelArts作业,通过Rest Client节点调用rest请求的方式实现。点击节点进行编辑,代理集群名称点加号选择,接口认证方式选择“华为IAM认证”:

URL地址与HTTP方法参考《ModelArts快速获取Rest接口json结构》:
https://bbs.huaweicloud.com/blogs/238421
3.1.1 获取URL地址与HTTP方法
在ModelArts创建训练作业时,点击F12,得到如下界面,以创建训练作业为例,点击training-jobs,点击Headers,得到region和project_id信息,HTTP方法对应图中Request Method显示的POST:

因此URL地址为如下格式,将region与project_id填入:
https://modelarts.${region}.myhuaweicloud.com/v2/${project_id}/training-jobs
3.1.2 获取请求消息体
在刚才的界面点击Payload,点击view source,复制请求体。

3.2 配置节点参数
3.2.1 创建训练作业
点击节点填写如下参数:
| 参数名 | 参数值 |
|---|---|
| 节点名称 | 创建训练作业 |
| URL地址 | https://modelarts.${region}.myhuaweicloud.com/v2/${project_id}/training-jobs |
| HTTP方法 | POST |
| 请求消息体 | 如下图所示 |
| 响应消息体解析为传递参数定义 | job_id=metadata.id |
如图所示为请求消息体填写示例,具体内容请参考3.1.2部分内容,获取创建训练作业的确切参数,再在基础上添加需要统一配置的作业参数,例如${cur_time}。

3.2.2 查询训练作业状态
| 参数名 | 参数值 |
|---|---|
| 节点名称 | 查询训练作业状态 |
| URL地址 | https://modelarts.${region}.myhuaweicloud.com/v2/${project_id}/training-jobs/${job_id} |
| HTTP方法 | GET |
| 是否需要判断返回值 | YES |
| 返回值字段路径 | status.phase |
| 请求成功标志位 | Completed |
| 请求失败标志位 | Failed |
| 请求间隔时间(秒) | 30 |
如图所示,选择“是否需要判断返回值”为YES后,自动出现以下参数框:

3.2.3 导入AI应用
| 参数名 | 参数值 |
|---|---|
| 节点名称 | 导入AI应用 |
| URL地址 | https://modelarts.${region}.myhuaweicloud.com/v1/${project_id}/models |
| HTTP方法 | POST |
| 请求消息体 | 如下图所示 |
| 响应消息体解析为传递参数定义 | model_id=model_id |
请求消息体示例,具体配置根据F12获取并修改:

3.2.4 查询AI应用状态
| 参数名 | 参数值 |
|---|---|
| 节点名称 | 查询AI应用状态 |
| URL地址 | https://modelarts.${region}.myhuaweicloud.com/v2/${project_id}/models/${model_id} |
| HTTP方法 | GET |
| 是否需要判断返回值 | YES |
| 返回值字段路径 | model_status |
| 请求成功标志位 | published |
| 请求间隔时间(秒) | 30 |
3.2.5 部署推理服务
- 若服务不存在,需要部署新推理服务
| 参数名 | 参数值 |
|---|---|
| 节点名称 | 部署推理服务 |
| URL地址 | https://modelarts.${region}.myhuaweicloud.com/v1/${project_id}/services |
| HTTP方法 | POST |
| 请求消息体 | 如下图所示 |
| 响应消息体解析为传递参数定义 | service_id=service_id |
请求消息体示例,具体配置根据F12获取并修改:

- 若服务已存在,需要更新推理服务
对已有推理服务进行修改时,点击F12,根据已有服务的service_id,获取rest请求体:

下列参数中的service_id需要填写固定值,而不是通过前面的节点获取。
| 参数名 | 参数值 |
|---|---|
| 节点名称 | 更新推理服务 |
| URL地址 | https://modelarts.${region}.myhuaweicloud.com/v1/${project_id}/services/${service_id} |
| HTTP方法 | PUT |
| 请求消息体 | 如下图所示 |
请求消息体示例,具体配置根据F12获取并修改:

3.2.6 查询服务状态
| 参数名 | 参数值 |
|---|---|
| 节点名称 | 查询服务状态 |
| URL地址 | https://modelarts.${region}.myhuaweicloud.com/v2/${project_id}/services/${service_id} |
| HTTP方法 | GET |
| 是否需要判断返回值 | YES |
| 返回值字段路径 | status |
| 请求成功标志位 | running |
| 请求间隔时间(秒) | 30 |
4. 测试运行
节点和作业参数配置完毕后,点击测试运行:

测试运行立即开始,可查看运行日志:

5.周期性调度
设置调度配置后,在指定时间,会自动以最新提交版本的状态运行作业。
5.1 提交版本
如图提交新版本:

5.2 调度配置
如图选择调度配置,选择周期性调度,则从即日起每天20点执行一次作业:

5.3 执行调度
点击执行调度后出现弹窗,点击“前往运维中心”:

可查看各节点执行状态:

6. 拓展配置
6.1 IF语句控制节点运行
右键点击节点前的箭头,选择设置条件:

IF语句使用说明:
https://support.huaweicloud.com/usermanual-dgc/dgc_01_0583.html
例如根据推理服务是否存在,来选用不同的节点。以下表达式表示如果服务存在,则运行后续节点。
#{${service_exists} == "true" ? "true" : "false"}
6.2 其他节点
若需要查询ModelArts上训练作业状态,模型信息等可通过如下API,相应设置Rest Client节点进行查询。
ModelArts作业API使用说明:
https://support.huaweicloud.com/api-modelarts/modelarts_03_0002.html
- 点赞
- 收藏
- 关注作者
评论(0)