手把手教你免费使用百度云GPU算力提交深度学习任务

深度学习任务,就算力来说,我们经常遇到两个问题:一是算力不够,二是价格太贵。

最近百度的同学发布了一个免费使用百度云GPU算力提交深度学习任务的工具PaddleCloud,能够帮助你一键快速发布深度学习任务,让我们一起来看一看这个工具是怎么做到的吧!

PaddleCloud介绍

PaddleCloud能够帮助您一键发起深度学习任务,为您提供免费底层计算资源、或提供快速打通云上计算资源通道,支持您快速发起单机/分布式飞桨框架训练任务,致力于推动AI应用更广泛地落地。

1、核心优势

使用PaddleCloud您将不需要配置繁琐复杂的运行环境,内置飞桨框架帮您一键发起单机/分布式深度学习任务,同时,为您提供免费底层计算资源、或提供快速打通云上计算资源通道,即使是无算力、不懂框架的小白,十分钟即可发起训练任务!

简单易用:十分钟即可开始PaddlePaddle训练任务

自定义:可自定义构建PaddlePaddle训练代码

任务管理:集成了训练任务管理的能力

免费资源:提供一定量的免费GPU资源(针对每位用户每天提供100分钟的免费训练资源)

按需付费:付费GPU资源可按需使用

以下是原有云付费的使用流程 vs PaddleCloud的使用流程对比

2、应用场景 

1)需要GPU计算资源,但本地没有GPU资源

2)本地有少量GPU资源,临时需要按需使用云上GPU资源

3)集成到本地环境中,实现本地+云端一体化体验


PaddleCloud的使用流程

结合房价预测模型的训练为例,进行步骤讲解,

fit-a-line(房价预测示例,是一个线性回归房价预测示例(单机示例),本示例是基于paddle1.6版本,源代码fit_a_line:https://github.com/PaddlePaddle/book/blob/for_paddle1.6/01.fit_a_line, 示例说明文档fit-a-line文档:https://github.com/PaddlePaddle/book/blob/for_paddle1.6/01.fit_a_line/README.cn.md。

对于使用房价预测示例提交任务且反馈意见的用户,我们将挑选10位最佳反馈用户赠送百度定制礼品,期望您来体验和分享。意见反馈QQ:864714313

 

 一、代码结构

示例代码目录结构

├── job: 示例任务父目录,用paddlecloud命令行提交任务时配置--file=./job,可将该目录提交到计算集群上

│ ├── data: data目录用来存放训练和测试数据集的本地目录,提交训练任务后,该目录会被整体上传到计算集群中

│ │ ├── train_data: 训练数据集的目录,可将训练数据放到该目录下,提交任务时会将该目录上传(或者挂载)到集群的计算节点上

│ │ ├── test_data: 测试数据集的目录,可将测试数据放到该目录下,提交任务时会将该目录上传(或者挂载)到集群的计算节点上

│ ├── run.sh: 训练任务的启动脚本,主要用来调起任务的python脚本,例如:python train.py,该脚本是在计算集群上被调用

│ ├── train.py: 具体的算法代码,此处的是房价预测的paddle组网代码

├── submit.sh: 提交任务的脚本,该脚本会调用paddlecloud命令行工具,将训练数据data和训练代码train.py、运行脚本run.sh提交到计算集群中,需要在自己的机器上执行,并且需要先下载并安装paddlecloud命令行工具,该脚本仅支持linux和mac上使用

说明

1)data目录用来存放训练和测试数据集的本地目录,提交训练任务后,该目录会被整体上传到计算集群中;该目录名称可以按需修改为其他名称,在训练代码中使用时需要相应修改。

2)train.py是训练相关的代码,run.sh是任务运行脚本,提交训练任务后,这些脚本都将被上传到集群中,并且在集群中运行

3)train_data和test_data是data的子目录,用来区分训练数据集和测试数据集,作为data的子目录,提交训练任务后,该目录会被整体上传到计算集群中。

在计算集群上获取该路径的方法是:

LOCAL_DATA_PATH = os.getenv("LOCAL_MOUNT_PATH") # LOCAL_MOUNT_PATH内置的环境变量,直接获取该值即可

cluster_train_dir = LOCAL_DATA_PATH + "/data/train_data" # 计算节点上训练数据的路径

  二、使用说明

【第一步 准备环境 】

  1)安装python3环境和依赖库

自行安装Python3和pip3(Python3包安装和管理工具)

安装Python依赖库

pip3 install requests

pip3 install rsa

  2)下载命令行工具

PaddleCloud当前只支持命令行方式使用,暂时还不支持web方式

             linux & mac

bash -c "$(curl -X GET http://ppoc-filecenter.bj.bcebos.com/install_paddlecloud_stable.sh)"; source ~/.bashrc

             Windows

                  暂未开放,敬请期待


【第二步 申请并配置Token】

  1)填入企业或组织邮箱,申请token,等待邮件通知(注意:有些邮件供应商可能会屏蔽该邮件或将邮件判别为垃圾邮件)

paddlecloud gen_token --email=

例如:paddlecloud gen_token [email protected]

2)将邮件中的token填入命令行工具的配置文件

登陆自己的邮箱,查收Baidu PaddleCloud邮件,将token对应的ak/sk依次填入命令行中

paddlecloud gen_token --email=

create_token...

Paste your ak here:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Paste your sk here:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

create_token done

也可以将token对应的ak/sk复制并粘贴到~/bin/paddlecloud/conf/client.conf文件中(先找到该文件并用编辑器打开后在粘贴)

// 注:如下内容仅为示例,以自己收到的邮件中的内容为准

[main]

debug = 0

userid: xxx

ak: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

sk: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

【第三步 提交任务】

直接执行如下命令即可将任务提交到计算集群上运行

// linux中使用该命令

sh submit.sh

也可以将submit.sh中的内容拿出来单独执行,例如:

paddlecloud submit_job --files=job --start_cmd="sh run.sh"

// --files用来指定本地代码和数据的目录,本地的job目录会被整体上传到计算集群中

// --start_cmd指定任务的启动命令,该命令会在计算集群上被执行

【第四步 查看任务】

1、查看任务详情

$ paddlecloud query_job --job_id=job-d22c1fffb768d9b0748def85b158f303

bos_url: paddlecloud-public.bj.bcebos.com/dd9d92e3dad72633c5053c718203204d/job

create_time: 2020-05-18 11:24:53

error_msg:

finish_time: 2020-05-18 11:26:14

instance_count: 1

instance_ids_list:

job_id: job-d22c1fffb768d9b0748def85b158f303

job_name: tmp_job

job_status: success

job_type: gpu

kill_flag: 0

public_bcc: 1

public_bos: 1

queue_reason:

start_cmd: sh run.sh

start_time: 2020-05-18 11:25:12

wall_time: 00:30:00

2. 查看作业目录

$ paddlecloud get_files --job_id=job-d22c1fffb768d9b0748def85b158f303

2285758331454547565081a3eb37e538/job/output/job-d22c1fffb768d9b0748def85b158f303/ 0 2020-05-19T06:39:03Z

2285758331454547565081a3eb37e538/job/output/job-d22c1fffb768d9b0748def85b158f303/log/trainer-0.log 9649 2020-05-19T06:39:53Z

2285758331454547565081a3eb37e538/job/output/job-d22c1fffb768d9b0748def85b158f303/rank-0/__model__ 5322 2020-05-19T06:39:47Z

2285758331454547565081a3eb37e538/job/output/job-d22c1fffb768d9b0748def85b158f303/rank-0/fc_0.b_0 28 2020-05-19T06:39:47Z

2285758331454547565081a3eb37e538/job/output/job-d22c1fffb768d9b0748def85b158f303/rank-0/fc_0.w_0 78 2020-05-19T06:39:47Z

....

3. 查看作业日志

下载作业日志

$ paddlecloud get_files --job_id=job-d22c1fffb768d9b0748def85b158f303 --download=1

查看日志列表

$ ll output/2285758331454547565081a3eb37e538/job/output/job-d22c1fffb768d9b0748def85b158f303/log

drwxrwxr-x 3 work work 4096 May 18 11:29 ./

drwxrwxr-x 3 work work 4096 May 18 11:29 ../

drwxrwxr-x 2 work work 4096 May 18 11:29 trainer-0.log

查看日志

$ cat output/2285758331454547565081a3eb37e538/job/output/job-d22c1fffb768d9b0748def85b158f303/log/trainer-0.log

以上就是PaddleCloud产品的使用流程,想要了解更多,点击https://github.com/PaddlePaddle/PaddleCloud 快速体验!

你可能感兴趣的:(手把手教你免费使用百度云GPU算力提交深度学习任务)