【教程】5分钟在PAI算法市场发布自定义算法
概述
在人工智能领域存在这样的现象,很多用户有人工智能的需求,但是没有相关的技术能力。另外有一些人工智能专家空有一身武艺,但是找不到需求方。这意味着在需求和技术之间需要一种连接作为纽带。

今天PAI正式对外发布了“AI市场”以及“PAI自定义算法”两大功能,可以帮助用户5分钟将线下的spark算法或是pyspark算法发布成算法组件,并且支持组件发布到AI市场供更多用户使用。有了以上功能,算法开发者和算法需求双方可以基于PAI的开放框架和平台实现算法交易,实现生态和PAI的共融。
详细使用说明
价格说明
使用SQL、SPARK2.0、PYSPARK2.0 3种算法框架自行开发出的算法上传到PAI-STUDIO中,运行产生的费用按照PAI资源成本价收取,费用为1元/计算时。
功能详解
1.控制台说明
首先进入PAI控制台,找到Studio-可视化建模下的“算法发布”功能。

2.开发算法代码
基于本地调试文档https://help.aliyun.com/document_detail/126887.html,开发算法包。本文使用官方提供的pyspark案例介绍,请前往https://help.aliyun.com/document_detail/126889.html下载。
3.点击“创建自定义算法”

- 算法名称:算法组件的名字
- 算法唯一标示:算法的后台唯一标识,可以用来查询日志等信息
- 算法框架:sql、spark、pyspark
- 算法包:如果是sql算法,需要上传sql脚本。spark算法提交的是打包好的jar包。pyspark提交的是工程打包好的zip文件
- 算法种类:算法包发布到PAI-STUDIO后所在的文件夹
- 入口参数:sql组件不需要、spark需要写jar包的入口类(例:com.aliyun.odps.spark.examples.simhash.SimHashSpark)、pyspark需要写入口的py文件和入口函数(中间用.分隔)
本文使用官方提供的pyspark算法包,上传pyspark.zip文件,输入入口文件和入口函数
read_example.mainFunc
如图:

4.编辑版本
提交算法包后,在控制台可以看到算法包实例,这时候需要为算法包配置UI展示相关内容。

这里的版本指的是组件的UI展示形式,只有配置了版本的才可以发布。
点击添加版本:

点击前往配置进入组件配置界面,所有算法组件的配置可以通过拖拽的形式可视化操作。

5.组件UI编辑
组件的输入和输出桩可以在下图部分自由控制,本案例实现的是读一个表然后把其中两个字段写到另一个表里,对应代码中的inputTable1和outputTable1,如果多个输入输出桩可以在代码中定义inputTable2、inputTable3等,组件桩会自动映射。
#定义输入节点
INPUT_TABLE = arg_dict["inputTable1"]
OUTPUT_TABLE = arg_dict["outputTable1"]
ID_COL = arg_dict["idCol"]
CONTENT_COL = arg_dict["contentCol"]
本案例只使用了一个输入和一个输出,这部分不需要修改。

接下来编辑配置信息,在上述代码中除了inputTable和outputTable这两个参数,剩下的所有参数都要对应到组件的基础控件。本案例中idCol和contentCol两个参数对应的是输入表中选择的两个字段,都是单选。在左侧基础控件中找到“单字段填写控件”,因为是两个参数,所以拖两个出来。

单击第一个控件,在右侧基础信息中进行配置。

- Name(必选项):算法代码中参数的映射项,本案例应该写idCol。设置好后,说明算法代码中拿到的idCol信息就是该组件的输入
- 标签:该控件的展示名
- converter:一般不用填写
- 绑定输入/输出:组件输入输出桩的绑定,本案例选择输入#1
- 支持的数据类型:默认全部支持
分别配置两个控件的信息对应到idCol和contentCol。
6.发布组件
编辑好UI版本,记得点击下方的保存按钮。

回到控制台,刷新页面,点击“使用此版本”

这时候组件就可以发布了,

发布分两种:
- 发布到PAI-STUDIO:发布到PAI-STUDIO需要选择区域和项目,发布过去的组件只能在当前项目下使用,并且主子账号共享
- 发布到数加智能市场:生成的组件会发布到AI市场,供所有PAI用户下载使用
7.组件调用
进入组件发布的PAI-STUDIO项目,在左侧“组件”tab下找到“自定义算法”文件夹,可以找到发布的算法并使用

本文作者:傲海
本文为云栖社区原创内容,未经允许不得转载。
【教程】5分钟在PAI算法市场发布自定义算法的更多相关文章
- GC算法精解(五分钟教你终极算法---分代搜集算法)
GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们 ...
- GC算法精解(五分钟让你彻底明白标记/清除算法)
GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底 ...
- 柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布
柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布 由于JAVA和Android的平台型,所以APP很容易被反编译,这对于我们开发者来说,是一个不想要 ...
- Azure 镜像市场发布商指南
Azure 镜像市场发布商指南 本指南提供独立软件供应商产品上架到 Azure 镜像市场(以下简称 Azure 镜像市场)需要遵循的全流程. 文档适用范围 本指南适用于希望通过由世纪互联运营的Micr ...
- 算法市场 Algorithmia
算法市场 官网:(需要***,fan qiang,不然可能访问不了或登录不了) https://algorithmia.com/ 官方的例子: 我不用 curl 发请求,把 curl 命令粘贴给你们用 ...
- 市场清仓价格算法 python求矩阵不同行不同列元素和的最大值
问题描述 求矩阵不同行不同列元素和的最大值(最小值) 问题求解 1.通过scipy库求解 scipy.optimize库中的linear_sum_assignment方法可以求解 输入一个矩阵,参数m ...
- 数据挖掘十大算法--K-均值聚类算法
一.相异度计算 在正式讨论聚类前,我们要先弄清楚一个问题:怎样定量计算两个可比較元素间的相异度.用通俗的话说.相异度就是两个东西区别有多大.比如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能 ...
- PHP-密码学算法及其应用-对称密码算法
转自:http://www.smatrix.org/bbs/simple/index.php?t5662.html ////////////////////////////////////////// ...
- (转载)微软数据挖掘算法:Microsoft 神经网络分析算法原理篇(9)
前言 本篇文章继续我们的微软挖掘系列算法总结,前几篇文章已经将相关的主要算法做了详细的介绍,我为了展示方便,特地的整理了一个目录提纲篇:大数据时代:深入浅出微软数据挖掘算法总结连载,有兴趣的童鞋可以点 ...
随机推荐
- hbase master一直报启动不起来问题(region空洞和region卡在spilt)
数据不重要或者一直卡着的情况下,可以切换hdfs用户到hbase的wal目录下对spilting的数据进行重命名.具体步骤如下 1.关闭hbase集群 2.切换hdfs用户 3.到hbasewal目录 ...
- Android开发 Camera2开发_2_预览分辨率或拍照分辨率的计算
前言 不管在Camera1或者Camera2在适配不同手机/不同使用场景的情况下都需要计算摄像头里提供的分辨率列表中最合适的那一个分辨率.所以在需要大量机型适配的app,是不建议不经过计算直接自定义分 ...
- python urllib模块中的方法
1.urllib.urlopen(url[,data[,proxies]]) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作.本例试着打开google >>> ...
- Odoo Documentation : Recordsets
Other recordset operations Recordsets are iterable(可迭代的) so the usual Python tools are available for ...
- HZOI20190906模拟38 金,斯诺,赤
题面:https://www.cnblogs.com/Juve/articles/11479415.html T1:高精度gcd,其实不用写高精度取模,gcd还有一种求法 int gcd(int a, ...
- html常用标签7-多媒体标签
1.html4中的标签:embed 定义嵌入的内容,可以插入多种形式的多媒体(有建瓯让问题,会用即可) <embed src="路径" type="类型" ...
- LUOGU P1903 [国家集训队]数颜色 / 维护队列
传送门 解题思路 带修莫队,第一次写,其实和普通莫队差不多,就是多了个时间轴,块分n^(2/3)最优,时间复杂度O(n^(5/3)). #include<iostream> #includ ...
- vue.js_11_路由的2中参数传递和路由的嵌套
1.以?的形式传递参数 <router-link to="/login?id=10&name=zs">登录</router-link> 发送参数 ...
- SVN 提交时文件锁定 svn: E155004: '' is already locked
1.先安装TortoiseSVN TortoiseSVN安装成功后,找到工作路径下的项目右键 TortoiseSVN --> Clean up... --> Break locks 勾选上 ...
- 微信小程序之组件的集合(三)
看看音乐播放组件是如何实现完成的音乐的播放的!!! 一.音乐music组件的开发 1.页面以及页面样式的开发 // music组件页面开发 <view hidden="{{hidden ...