驰骋AI Challenger赛场神器 UCloud AI训练平台使用技巧

阅读 137
收藏 4
2017-09-18
原文链接:blog.ucloud.cn

近日,由创新工场联合搜狗、今日头条发起的“AI Challenger全球AI挑战赛”已经启动,中国领先云计算服务商UCloud作为大赛唯一的AI GPU合作方,为大赛独家提供AI模型训练服务(UCloud AI Train)。为便于AI Challenger参赛选手更好地准备竞赛和答题,UCloud为大赛官方提供一系列AI训练平台使用技巧讲解活动。

官方支持

2017年9月12日晚20:00,UCloud实验室人工智能专家范融为参赛选手和AI爱好者提供了一场精彩的讲解,内容涵盖了AI训练服务概述和功能特性、简单的Tensorflow Mnist案例及竞赛使用技巧等几个方面。

UCloud AI训练服务核心优势

  • 基于P40显卡集群、12TFlops的单精度性能,能够帮助选手快速提交训练任务;
  • 利用Docker容器技术,选手无需安装运行环境,仅需本地拥有Docker客户端,即可通过UCloud提供的基础镜像和自动打包工具,将本地代码打包至Docker容器,验证运行结果;
  • 使用按需收费策略。只有当选手提交的训练任务实际启动时才会计算费用。并且,通过对任务的实时监控,选手可在任意时间点中止训练,帮助选手将每一分钱都用在刀刃上。

 

UCloud AI训练服务功能特性

1.本地代码一键打包

  • 代码打包过程

选手代码–>引入uflag.py替换参数–>调用tf_deploy.py打包工具–>本地CPU镜像验证代码–>提交训练任务(选择对应GPU镜像)。

2.在线训练实时监控

  • 执行阶段监控:待执行、启动中、执行中、停止中、异常、中止、完成;
  • 训练实时日志:5秒轮训刷新,历史日志在UFile;
  • TensorBoard实时图表:实时查看,数据上传UFile。

 

简单几步Tensorflow Mnist轻松上线

在了解了AI训练服务的特性以后,下面将以Tensorflow官网的Mnist数字识别算法为案例,看看如何经过几步轻松的调整,就能将一个普通的AI训练任务在UCloud AI训练平台上运行起来。

第一步:调整代码参数引用
假设现已经有了从TensorFlow官网拷贝下来的mnist_summary.py文件。要改写这个文件的前提是它能被UCloud AI训练服务使用。那么,首先需要在本地安装UCloud SDK,安装方式如下文所述。改写代码的主要目的是使原有训练代码的传参方式符合AI训练服务的规范。参考代码已经给出了改写完成的mnist_summary.py。

1.下载SDK:
git clone https://github.com/ucloud/uai-sdk
cd uai-sdk
sudo python setup.py install

2.参考代码
https://github.com/ucloud/uai-sdk/blob/master/examples/tensorflow/train/mnist_summary_1.1/mnist_summary.py

3.本地代码修改方法

3.1增加import uflag
34行:from uaitrain.arch.tensorflow import uflag

3.2检查UCloud固定参数只可引用,不可修改

  • 程序执行路径(FLAGS.work_dir):/data
    一般不涉及引用
  • 输入数据根路径(FLAGS.data_dir):/data/data

44行: mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)

  • 输出数据根路径(FLAGS.output_dir):/data/output

180行: save_path = saver.save(sess, FLAGS.output_dir + “/model.ckpt”)

  • TensorBoard数据根路径(FLAGS.log_dir):/data/output

144行: train_writer = tf.summary.FileWriter(FLAGS.log_dir + ‘/train’, sess.graph)

145行: train_writer = tf.summary.FileWriter(FLAGS.log_dir + ‘/test’)

3.3(可选)其他可变参数使用tf.app.flags注册

第二步:一键打包

1.拷贝工具tf_deploy.py

2.调用参数:

2.1<>参数与UCloud账号相关

  • 需要用到参赛选手注册的UCloud账号、密码、公钥、私钥、镜像仓库等信息,获取方法详见参赛注册邮件中的《Docker使用指南》。

2.2绿色参数与代码存放路径层次相关(见图)

  • code_path为训练代码所在根路径,必须以相对路径形式填写;
  • test_data_path,test_output_path为训练数据和训练结果的本地测试路径,这两个路径必须以绝对路径填写。

2.3橘色参数用户可自定义

  • uhub_imagename,uhub_imagetag是打包后的镜像名称和标签,选手可以自行命名;
  • train_params与上一步中自定义参数呼应,可传入用户自定义参数(在本例中为learning_rate的参数),该参数不会固化在镜像中,而是用于生成训练启动命令,用户可以在每次提交任务时,对参数值进行修改。

3.调用结果:

3.1本地测试:CPU镜像、“CMD for CPU local test”命令

3.2记录信息:GPU镜像名称、“CMD Used for deploying”命令

第三步:提交训练数据

1.上传数据
使用官方数据可省略此步,直接使用官方路径URL。

2.获取地址
截取URL地址到前缀,形如:http://yourbucket.ufile.ucloud.com.cn//yourprefix/。

第四步:提交训练任务

参数说明:
1.公钥、私钥:见《UFile使用指南》
2.代码镜像路径:切换“用户镜像”选择打包工具生成的GPU镜像
3.数据输入路径:
自加工数据:截取URL地址到前缀,形如:http://yourbucket.ufile.ucloud.com.cn//inputprefix/

官方数据,按照赛道填写:
图像中文描述:http://ai-challenger-caption.cn-bj.ufileos.com//ai_challenger_caption_train_20170902/
场景分类:http://ai-challenger-scene.cn-bj.ufileos.com//ai_challenger_scene_train_20170904/
人体骨骼关键点:http://ai-challenger-keypoint.cn-bj.ufileos.com//ai_challenger_keypoint_train_20170902/
数据输出路径:可在输入路径上修改,形如:http://yourbucket.ufile.ucloud.com.cn//outputprefix/

4.训练启动命令:uaitrain_cmd.txt文件“CMD Used for deploying”命令

小结:TensorFlow训练程序迁移
第一步:改写代码引用uflag固定参数(Flag.data_dir,Flag.output_dir,Flag.log_dir);
第二步:使用tf_deploy.py打包上传镜像;
第三步:训练数据上传Ufile(可省略);
第四步:填写“创建训练任务”表单。

竞赛使用Tips
1.使用本地CPU镜像做验证
利用本地打包工具生成的CPU可行性镜像做好本地测试验证,以免在服务端再报错,浪费训练赠予的时间。
2.自己加工TFRecords训练数据
使用TFRecords加工训练数据,并在UFile中提交自己的训练数据,这样可大大节省数据加载时间(官方数据集加载时间约4小时 )。
3.控制日志打印频率
控制训练过程中的标准输出流打印频率,过多打印日志会带来不必要的IO交互,减缓训练程序的运行。
4.及时中止异常训练
充分利用实时日志及TensorBoard图表监控训练异常,如果出现数据趋势不符合预期或过拟合的情况,应及时停止训练,调整参数。
5.做好checkpoint保存和加载
做好checkpoint保存和加载,在训练达到最大时间或训练所在服务器异常时,能保证中间训练结果保存到UFile。以便后续可以重启任务继续训练,不必重头开始。

UCloud人工智能解决方案

除了上面介绍的AI训练服务之外,UCloud拥有一套完整的公有云AI解决方案:在IaaS层,UCloud提供P40显卡为核心的强大GPU云主机;在PaaS层,提供AI在线服务、AI训练服务。这能够让用户专注算法,屏蔽项目落地过程中可能出现的技术问题(如选型深度学习框架、搭建运行环境、保障集群高可用等)。最后,UCloud安全屋会保证数据交互的保密性、完整性和可追踪性。希望这整套解决方案,能帮助越来越多优秀的个人、高校、企业及团队实现AI项目的落地,推动国家科技进步。

附录
以下是6个使用指南视频,希望能够帮助大家更快地使用UCloud AI产品。
1.如何获取项目名称:v.qq.com/x/page/z054…
2.如何获取API公钥私钥:v.qq.com/x/page/o054…
3.如何使用UHub上传下载训练代码镜像:v.qq.com/x/page/r054…
4.如何使用UFile上传下载训练数据:v.qq.com/x/page/j054…
5.如何使用AI Train启动训练任务:v.qq.com/x/page/v054…
6.实名认证:v.qq.com/x/page/d054…

想要获取更多技术和活动资讯,可扫描以下二维码,关注“UCloud技术公告牌”微信公众号;或搜索微信ID:ucloud_tech进行关注。

Post Views: 735
评论