AutoDL线上GPU使用

3446 字
9 分钟

AutoDL的核心优势在于其极高的性价比、开箱即用的丰富深度学习环境以及对主流开发工具的完美兼容,是进行日常高频模型训练的首选平台。

Colab

网址:欢迎使用 Colab - Colab

最初我使用的线上GPU平台是Goolgle的Colab。

1774502526234

Colab有很多的优势:

  • d2l官方适配的线上GPU平台,针对想要学习D2L的人,可以做到开箱即用
  • 按照运行时进行计费,只有在运行代码块时,才计算GPU使用时间
  • 提供一定的免费用量,不付费也可以使用一定的计算资源

但是Colab是Google的产品,不一定适合国内用户的需求:

  • 按照会员进行充值,最便宜的一档10$一个月,对于用量少的用户不友好
  • 欧美国家定价,显然性价比不高

所以随着针对线上GPU资源需求的增加,我选择迁移到AutoDL平台。

AutoDl

加下来将记录我如何在AutoDL中创建实例,远程连接,配置环境,并最终保存镜像的过程。

创建实例

我选择了一个相对价格较低的GPU:

1774503232335

选择镜像这里,我只选择了一个基础镜像,后续自己配置环境:

1774503494296

2.7.0(首选推荐): 稳定且生态兼容性好。特别是在做大模型推理或者跑图神经网络(GNN)实验时,相关的核心第三方库(比如用于加速的 xformers、vLLM,或者 PyTorch Geometric)对这个级别的版本支持最为完善。它既包含了成熟的 torch.compile 编译加速特性,又避开了最新版容易出现的依赖冲突。

创建后机器会自动开始运行:

开始运行就开始计费了

1774503558740

初期配置

配置环境时,我们通常根本用不到GPU,但是往往却需要消耗大量的时间。AutoDL提供了无卡开机模式,此时收费低至0.1元/小时。

但是配置也很低:0.5核;2GB内存;无GPU卡

Web登录

最方便的登录方式是直接使用JupyterLab在网页中登录:无需密码,无需配置。

1774505692294

autodl-fs:该路径下挂载网络共享存储。网络共享存储可以挂载在同一地区的所有实例下。

  • 实例间共享,可以多点读写,不受实例释放的影响;此外存储后端有多冗余副本,数据可靠性非常高
  • IO性能一般。

最佳实践:将重要数据或代码存放于文件存储中,所有实例共享,便利的同时数据可靠性也有保障;在训练时,需要高IO性能的数据(如训练数据),先拷贝到实例本地数据盘,从本地盘读数据获得更好的IO性能。如此兼顾便利、安全和性能。

ssh登录

我希望能够在Vscode中使用ssh登录,首先至少需要安装这两个插件:

1774506096332

这里我遇到一个问题:我在使用AutoDL官方提供的ssh连接命令和密码进行登录时,一直失败,所以直接配置了ssh钥匙登录,免去配置密码的烦恼。

在Windows终端中输入命令创建密码:

ssh-keygen -t ed25519 -C "gpu_server_key"

创建好后,我们可以在用户目录下的 .ssh目录中找到公钥,然后添加在AutoDL中:

1774506581657

例如复制的登录指令如下:

ssh -p 56606 [email protected]

然后我们在vscode中编辑.ssh\config文件:

1774506667994

模板如下:

Host <自定义服务器别名>
    HostName <服务器IP或域名>
    Port <端口号>
    User <登录用户名>
    IdentityFile <本地私钥文件的绝对路径>

配置完成后最好重启一下远端服务器,以生效。

D2L环境配置

依次执行命令:

创建conda虚拟环境:

conda create --name d2l python=3.9 -y

激活虚拟环境:

conda activate d2l

安装d2l包:

pip install d2l

接下来查询环境的cuda版本:

(d2l) root@autodl-container-3xq1gbqp6k-ef06e401:~/d2l-zh# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0

这里我的cuda版本为 12.8,所以我需要安装何时版本的torch:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

这一步可以询问AI,让ai推荐合适版本的torch版本

安装ipykernel:

conda install ipykernel -y

将d2l虚拟环境添加到Jupyter内核中:

python -m ipykernel install --user --name d2l --display-name "Python (d2l)"

下载d2l的notebook:

mkdir d2l-zh && cd d2l-zh
curl https://zh-v2.d2l.ai/d2l-zh-2.0.0.zip -o d2l-zh.zip
unzip d2l-zh.zip && rm d2l-zh.zip
cd pytorch

完成这一些列操作后,我们就可以在云主机上运行D2L的Juypter笔记啦:

1774514377573

系统镜像

AutoDL的一个缺点是,如果你使用按量计费的方式,就一定会经常遇到这个问题:

1774514581698

同时每个实例的数据只能保存15天。如果15天内该台实例没有开机运行过,则其中的数据会被清空。为了延长系统数据的保存期限,我们可以打包系统镜像,也方便我们迁移到其他机器上:

1774514788886

保存的AutoDL支持免费保存30GB的系统镜像,打包为镜像后,支持的保存期限变为3个月。

1774514849970

系统盘和数据盘

系统盘

挂载位置:根目录/

用途:

  • 存放操作系统
  • 存放你安装的软件
  • 存放代码文件

关键特性:

  • 随镜像保存:当你选择保存镜像时,系统盘里的所有内容(包括你辛辛苦苦配置的环境)会被打包。下次创建实例时使用这个镜像,环境依然在。
  • 空间有限:通常只有30GB

数据盘

挂载位置:/root/autodl-tmp

用途:

  • 存放海量数据集
  • 存放训练过程中产生的Model Checkpoints(模型权重文件)
  • 存放大型压缩包

关键特性:

  • 不随镜像保存:如果你保存了镜像, /root/autodl-tmp 里的东西是不会被保存的
  • 读写速度快:与系统盘一样,通常是本地磁盘
  • 可弹性扩容