关于PAI平台的几点建议

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,5000CU*H 3个月
简介:
接触PAI平台也快1年了,感觉PAI平台应用起来很强大,很方便。而且2017 年 3 月 29 日,阿里云重磅推出升级版的机器学习平台 PAI 2.0,可以大幅度降低人工智能门槛以及开发成本。PAI 2.0 提供 100 余种算法组件,涵盖了分类、回归、聚类等常用场景,还针对主流的算法应用场景,提供了偏向业务的算法,包含文本分析、关系分析、推荐三种类别。
PAI 2.0 新增了参数服务器(Parameter Server)架构的算法。不仅能进行数据并行,同时还可将模型分片,把大的模型分为多个子集,每个参数服务器只存一个子集,全部的参数服务器聚合在一起拼凑成一个完整的模型。其创新点还在于失败重试的功能。在分布式系统上,成百上千个节点协同工作时,经常会出现一个或几个节点挂掉的情况,如果没有失败重试机制,任务就会有一定的几率失败,需要重新提交任务到集群调度。PS 算法支持千亿特征、万亿模型和万亿样本直至 PB 级的数据训练,适合于电商、广告等数据规模巨大的推荐场景。
从操作界面来看,PAI 没有繁琐的公式和复杂的代码逻辑,用户看到的是各种分门别类被封装好的算法组件。每一个实验步骤都提供可视化的监控页面,在深度学习黑箱透明化方面,PAI 也同时集成了各种可视化工具。
PAI平台现在用起来已经很方便了,不过我希望最好还能增加以下一些优化的小功能。
1,图形界面的算法导出代码,或者查看界面的代码的功能。图形界面虽然操作起来很方便,可是如果是需要经常变换特征,调整参数等工作,用图形界面要挨个点每个控件,操作起来比较繁琐。而如果直接写代码的话,则需要查找每个空间的名称,参数等等,也比较繁琐。所以如果能先用图形界面建立算法,然后导出成代码,在IDE里面慢慢调整特征、参数,应该是比较理想的一种做法。
2,希望能支持简单的变量。一个简单的例子,对于如下代码:
--模型训练
drop offlinemodel if exists  GBDT_test_model_v1;
drop table if exists GBDT_test_model_Importance;

PAI -name gbdt_lr -project algo_public -DfeatureSplitValueMaxSize="500" -DrandSeed="0" -Dshrinkage="0.05" -DmaxLeafCount="32" -DlabelColName="lable" 
-DinputTableName="portscan_train" 
-DoutputImportanceTableName="GBDT_test_model_Importance" 
-DminLeafSampleCount="500" -DsampleRatio="0.6" -DmaxDepth="6" -DmetricType="0" 
-DmodelName="GBDT_test_model_v1" 
-DfeatureRatio="0.6" -DtestRatio="0" 
-DfeatureColNames="sip_client_ip_n,sip_client_ip_dn_cnt,sip_connect_n,sip_connect_n_max,sip_hashuserid_dn,sip_connect_n_avg,port" 
-DtreeCount="250";

--模型预测
drop table if exists portscan_pre_result;
PAI -name prediction -project algo_public -DdetailColName="prediction_detail" -DappendColNames="client_port,source_ip,ds" 
-DmodelName="GBDT_test_model_v1" 
-DitemDelimiter="," -DresultColName="prediction_result" -Dlifecycle="28" 
-DoutputTableName="portscan_pre_result" 
-DscoreColName="prediction_score" -DkvDelimiter=":" 
-DfeatureColNames="port,sip_client_ip_n,sip_client_ip_dn_cnt,sip_connect_n,sip_connect_n_max,sip_hashuserid_dn,sip_connect_n_avg" 
-DinputTableName="portscan_test" 
-DenableSparse="false";


模型和预测都要用到特征列名称,如果能定义变量,比如:
DEF FeatureCols="port,sip_client_ip_n,sip_client_ip_dn_cnt,sip_connect_n,sip_connect_n_max,sip_hashuserid_dn,sip_connect_n_avg" 

那么这个算法后面每个需要特征列的地方都可以直接用:
-DfeatureColNames=FeatureCols

修改起来会更方便,也不容易出错。
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
6月前
|
前端开发 JavaScript 小程序
系统刷JavaScripit 构建前端体系(语法篇)
系统刷JavaScripit 构建前端体系(语法篇)
39 1
|
运维 测试技术 区块链
链动2+1模式系统开发指南流程丨成熟案例丨功能设计丨测试部署丨方案项目丨逻辑需求丨源码出售
链动2+1模式系统开发方案是指一个较为复杂的系统开发模式,其中包含两个公链和一个私链的组合。
|
移动开发 监控 小程序
聊聊我在店铺开放域做性能优化的体会
聊聊我在店铺开放域做性能优化的体会
188 1
|
存储 负载均衡 应用服务中间件
项目实战典型案例17——环境混用来带的影响
项目实战典型案例17——环境混用来带的影响
90 0
|
存储 应用服务中间件 测试技术
【项目实战典型案例】17.环境混用带来的影响
【项目实战典型案例】17.环境混用带来的影响
|
Java C++ Python
7-2 然后是几点
7-2 然后是几点
216 0
|
数据采集 存储 监控
谈谈企业中参考数据的管理
对于业务和技术人员不来说,参考数据会影响日常业务的运营。为了优化数据的使用和可用性,我们需要知道什么是参考数据,什么不是(即主数据),为什么它很重要,以及如何用技术手段有效地管理它。
谈谈企业中参考数据的管理
|
SQL 运维 测试技术
卓越项目【商城版本】完整实施过程(持续更新,最终为VIP版本)
卓越项目【商城版本】完整实施过程(持续更新,最终为VIP版本)
101 0
|
SQL 敏捷开发 前端开发
技术分享 | 做为测试,那些必须掌握的测试技术体系
技术分享 | 做为测试,那些必须掌握的测试技术体系
|
JSON 运维 前端开发
开发中遇到的问题&解决方案(十一)
前天不是开工嘛,然后刚刚到公司前端说测试环境好像挂了,开工就直接王炸了,找了运维,运维说服务器过年关机了回来发现有个配件坏了,暂时修不好。那我就本地部署一套当测试环境用,我同步了一份生产库到本地,然后问题就来了,之前好好的功能全部出现了问题,因为年前有需求改动,debug了好几遍代码也没有查出问题,然后突然想到MySQL版本不对。
142 0
开发中遇到的问题&解决方案(十一)