GPU云环境的使用

一、模型训练的构成

1. 本地搭建一个模型训练环境,都需要些什么?

2. 环境准备的痛点

成本问题
  • 购买高性能显卡,成本高且利用率不高
维护问题
  • 硬件机器、软件环境构建和维护都会花费不少时间成本
容量问题
  • 对于大模型,受限于显卡容量

二、本地化问题及解决方案

痛点解决方案:

  • 使用GPU云环境

优点:

  • 成本低
    • 通过租用GPU云环境,可以做到按使用量付费,不使用就关闭环境,避免购买机器费用和折旧费
  • 维护简单
    • GPU云环境一般都预制了适用于训练的环境
    • 例如:Ubuntu、Python、 Pytorch、CUDA等,用户只需关注自己任务的训练
  • 灵活度高
    • 对显存要求高的场景,可以灵活扩展GPU显存,以满足需求

三、GPU云环境的使用方法

GPU云方案对比

通用流程:

1. 登录服务

2. 检查环境

3. 准备训练框架

4. 准备训练数据

5. 准备训练脚本

6. 训练


阿里云使用方法

注册账号
  1. 访问 ModelScope , 按照提示,完成魔搭社区账号的注册。
  2. 访问 阿里云, 按照提示,完成阿里云账号的注册。
  3. 在魔搭社区绑定阿里云,可以获得一些免费GPU算力。
使用方法
1. 登录服务

        登录魔搭社区,切换至我的Notebook→选择PAI-DSW服务→GPU环境→启动。

2. 检查环境
  • 因为GPU云服务器已经预装了ubuntu、Python、PyTorch等,所以我们只需要简单检查一下环境即可。
  • 由于咱们要使用YOLO,所以打开YOLO官网,查看它建议的python版本,3.8-3.12都是可以的。

  •  打开Terminal,输入以下命令来检查python版本、cuda版本,确保满足模型训练所需的环境。 
# 检查python版本
python --version

# 检查cuda版本
nvcc --version
3. 准备训练框架

以YOLO为例,进行训练框架的准备工作。

按照官网推荐的pip install方式进行安装

# Install the ultralytics package from PyPI
pip install ultralytics

安装完毕

新建一个notebook,文件命名为:【VerifyInstallation.ipynb】,验证YOLO是否安装成功

from ultralytics import YOLO
import ultralytics

print(ultralytics.__version__)

运行

4. 准备训练数据

上传数据

文件上传完毕后,使用unzip命令解压训练数据

unzip dataset.zip
5. 准备训练脚本

新建notebook后,准备训练脚本并配置训练数据data的目录;

data对应训练数据的保存路径,可以通过 pwd 命令查看。

from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolo11n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")

# Export the model to ONNX format
success = model.export(format="onnx")
6. 开始训练

配置相应的训练参数后,运行训练代码,即可开始训练。

  • epochs: 训练轮数
  • imgsz: 图像尺寸
  • batch: 批次大小

注意:batch的大小设置与显存占用有关,如果设置太大的话,意味着一个批次数据量过多,显存容纳不下可能会异常;如果设置太小,意味着显存的利用率不够。

7. 完成训练

训练完毕后,会在训练脚本同一目录下生成runs目录,里面包含训练的日志,以及训练的模型。


驱动云使用方法

注册账号
使用方法
1. 登录服务
  • 登录账号后,点击右上角的创建项目
  • 创建项目后,选择相应的机器配置以及镜像环境
  • 确认之后,点击立即启动。待右上角出现【 进入开发环境 】按钮,点击即可进入
2. 检查环境
  • 驱动云提供了2种开发环境,【JupyterLab】和【网页终端】。咱们这里使用JupyterLab。
  • 然后打开Terminal,这里检查环境可以省略,因为前面新建项目的时候已经选择了环境配置。

3. 准备训练框架

在趋动云平台上,由于数据存储大小限制,我们需要根据实际的场景选择不同的处理方式。

小体积情况

  • 对于体积小的框架(如:YOLO只有56M),可使用pip命令安装,具体方法同阿里云操作说明。
  • 优点是不涉及繁琐的上传流程,但环境持久化保存(即环境下次打开可直接使用)有次数限制。
  • 环境持久化保存的方式:在关闭环境时,选择保存环境→临时环境。

大体积情况

  • 对于大模型(如:Qwen模型)动辄10G以上存储空间的情况,需使用趋动云提供的sftp上传方式来进行。
4. 准备训练数据

同上,对于体积小的数据,可以直接使用图示中的上传文件功能。对于体积大的情况,需要使用趋动云提供的sftp上传上传方式。

上传数据集:点击【修改】-【创建数据】,编辑完信息,点【创建】,然后上传文件。

上传成功后,在线解压,方便操作。

接着,我们演示SFTP上传的方式。

  • 第一步:安装上传软件Xftp
  • https://www.xshell.com/zh/free-for-home-school/
  • 第二步:停止并销毁趋动云环境
  • 第三步:创建数据
  • 第四步:开启SFTP传输
  • 第五步:填写连接信息后开始连接
  • 第六步:上传数据
  • 第七步:上传完毕后,在趋动云页面中关闭传输通道并进行确定操作
  • 第八步:修改项目中的数据选项,重新启动开发环境即可
  • 第九步:按照官方提示,切换到 /gemini/data-1 目录,即可查看到上传的数据。
5. 准备训练脚本

新建notebook后,配置对应目录的数据路径

from ultralytics import YOLO

# 1,构建模型
model = YOLO("yolov8n-cls.yaml") 

if __name__ == "__main__":
    # 2,训练模型
    results = model.train(data="/gemini/data-1/data/data.yaml", 
                          epochs=100, 
                          imgsz=128,
                          batch=8
                        )
6. 开始训练

配置相应的训练参数后,运行训练代码,即可开始训练。

7. 完成训练

训练完毕后,在notebooke同目录下会生成runs目录。

如果希望把训练结果下载到本地,可以切换到Terminal,使用zip命令打包后下载。

# 基本语法:zip [选项] [打包后的文件名] [要打包的文件或目录列表]
zip -r train.zip train
注意事项
  • /gemini/code目录是可以读写的,但是/gemini/data等其他目录只能读,不能写。
  • /gemini/code目录的数据,在销毁环境后是可以保留的,但是不建议在云端保存。
  • 如果 关闭环境 时没有选择 保存临时环境 ,那么安装过的依赖会重置,在下次启动时需要重新安装。

四、常见问答

Q1:云环境重新启动后,运行YOLO的代码,提示No module named 'ultralytics',请问是什么原因?

A:云环境重启之后,一般会重置环境,导致之前安装的依赖不存在了。

解决办法:

1. 可以通过`pip list`命令进一步排查是否有ultralytics。

2. 如果没有ultralytics,则重新使用pip命令安装即可。

Q2:在趋动云环境里,我上传的数据会不会在关闭云服务器后丢失?

A:趋动云环境中,/gemini/code目录是可以保留数据的,即服务关闭再打开,该目录下的数据是保留上次的。 不过,建议重要的数据、代码在本地维护保存,云环境只作为临时环境训练模型使用。

Q3:在阿里云环境里,我上传的数据会不会在关闭云服务器后丢失?

A:阿里云环境的/mnt/workspace/目录,经测试数据会进行保留。不过,还是建议重要数据、代码在本地维护保存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值