作为一名研三学生,我使用AutoDL平台已有两年,累计投入两千余元用于模型训练。那些日夜监控训练进度、为指标提升欣喜若狂、因进展停滞而焦虑不安的日子,如今终于告一段落。这是我的第一篇博客,希望能与大家分享使用服务器训练的心得体会,欢迎各位批评指正,一起交流经验!

一、官网界面介绍

1.1 算力市场

选择合适的显卡,进行租用,目前3080系的显卡仍是最抢手的,关于租用可在2.1 整体创建流程查看。
在这里插入图片描述

1.2 控制台

这个界面可以总览实例的相关信息,以及你的余额,此外认证学生升级炼丹会员后使用服务器可以便宜一点点点。
在这里插入图片描述

1.3 容器实例

在这里插入图片描述

这个界面可以看出具体实例信息,在详细解释红框中的功能前,我先介绍两个概念:

  • 镜像与实例
    • 实例:通过算力市场初始化并创建的是实例,实例是有释放时间的,如图中所示。那么问题来了,如果放假了,或者第一篇论文写完了,暂时不用这个实例了,但是你在这个实例中装了很多python库,并且之后还会用,那么你就需要用镜像来保持这个环境。
    • 镜像:对实例环境的复制,供其他实例使用,避免重复配置系统环境。
  • 系统盘vs数据盘
    • 系统盘:/,IO速度一般,实例关机不会丢失,可存放代码等。会随保存镜像一起保存。
    • 数据盘:/root/autodl-tmp,IO速度非常快,实例关机数据不会丢失,但不会随保存镜像一起保存。
    • 文件存储:/root/autodl-fs, 这个是需要在多个实例间进行文件同步共享才考虑存放的路径,不受实例关机和保存镜像的影响。

红框这里主要使用的是无卡开机模式保存镜像以及克隆实例,其他功能见名知其义:

  • 克隆实例:这个非常重要,因为我们大多数人都是按量计费,包年包月实在太贵。那么就肯定会有开机关机的时候。今天我把环境装好,数据包上传好了,项目跑通万事大吉,但是明天开机的时候,发现GPU已经被别人用了,完了,不会又要重新装一遍环境,上传一遍数据集吧(大几个G的数据集是最费时间)。此时我们就需要克隆实例,可以在同一个地区选择一个空闲GPU进行克隆。克隆完毕后只需要修改python解释器以及相关配置即可(这里我在后面详细说)。
  • 无卡开机模式: 这个也非常常用,理解后能省不少钱,使用这个模式的场景主要有:配置环境,装所需依赖,上传数据,下载相关结果,查看服务器代码等。也就是说,你只要没开始训练使用GPU,那么就可以先用无卡开机模式。但是有一个弊端就是(在此期间,这个GPU可能会被别人使用,若真遇到这种情况,你可以进行克隆实例,或者今天配置完,明天使用GPU)。
  • 保存镜像:可以将系统盘所有数据保存为镜像,这下在创建实例的时候,就可以还原以前跑实验的环境,无需重装所需依赖,而且镜像不会过期。

1.3 镜像

这个界面看到的就是镜像相关的信息,一个有用的功能就是你可以把你创建的镜像分享给其他人,或者是你的其他账号,这样的话,可以减少重新导入依赖环节。
在这里插入图片描述

1.4 帮助文档

官网的帮助文档其实已经涵盖了我们大部分需求,我这里更多的是作为补充,你们可以结合着阅读。
在这里插入图片描述

二、实践演示

2.1 整体创建流程

  1. 首先进入算力市场,根据你模型的复杂度,选择相应的显卡,好一点的显卡的显存多,计算效率也会提升。金钱换时间:在后期超参数调优时,可以并行开启多个实例,使用不同参数运行模型,并记录结果以加速迭代。
    此外,我现在的图中的GPU资源很充足,是因为周六周日,平时如果想常用同一个显卡的话,可以选择低峰时间,如早上七八点左右,晚上十点左右。
    在这里插入图片描述
  2. 选择一个可租用的显卡,接下来就是选择镜像,从图中可以看出,有三种镜像选择方式:
  • 基础镜像:就是内置好了相应的框架,因此我们需要根据论文中开源代码的readme文件选择相应版本的框架。
  • 社区镜像:热门项目的镜像,如YOLO系列,DeepSeek等,可以即刻拥有创建即用的算法运行环境。
  • 我的镜像:这个就是创建适用于自己的镜像,之前保存的镜像。
    在这里插入图片描述
  1. 创建并开机后,会出现如下界面,我们主要关注的是状态和SSH登录中的信息。
    在这里插入图片描述
  2. 接下来,我们就使用开发工具连接SSH服务,这里我们以Pycharm为例,我们先找到连接入口,最快的方式就是右下角进入
    在这里插入图片描述
    如果右下角找不到,那就去Settings中搜索Interpreter。
    在这里插入图片描述
  3. 连接SSH
    复制网页中SSH登录指令,这里演示使用的是:ssh -p 35290 root@connect.westb.seetacloud.com

在ssh -p 35290 root@connect.westb.seetacloud.com命令中, 各个参数的含义为:
用户名:root
主机host: connect.westb.seetacloud.com
端口号:35290
在这里插入图片描述

去网页复制粘贴密码,点next。
在这里插入图片描述
6. 创建环境,这一步非常关键
在这里插入图片描述
我们先需要修改Base interpreter,配置远程Python解释器地址为/root/miniconda3/bin/python{版本}。(如果您在miniconda中安装了其他的虚拟环境,那么虚拟环境的python解释器路径在/root/miniconda3/envs/{对应的虚拟环境名称}/bin/python)
在这里插入图片描述
接着配置同步目录Sync folders
在这里插入图片描述
然后勾选相关操作

  • Inherit global site-packages:启用时虚拟环境中可以使用你全局 Python 安装路径下已经安装的包。(通常需要勾选),这样才能使用AutoDL预置的框架。
  • Execute code with root privileges via sudo:执行带有 sudo 的命令,从而拥有“root 权限”来安装软件、修改系统配置等。(不勾选!不勾选!不勾选!)
  • Automatically upload project files to the server:IDE会自动将你本地项目文件上传到服务器上的工作目录中,实现代码同步。(分情况勾选)
    • 勾选:如果你的项目是第一次上传,那么可以勾选
    • 不勾选:如果你的项目通过克隆实例,并且你的代码并没有做出任何修改,那么你可以选择不同步,但是你需要把同步目录设置的与上一个实例一样。

我举个例子:
我今天创建了一个实例A,同步目录为/tmp/pycharm_project_745,第二天我的GPU被占了,我只能选择克隆实例得到实例B,在配置实例B同步目录的时候,我需要选择与实例A一样的同步目录也就是/tmp/pycharm_project_745。同时不勾选Automatically upload project files to the server。
这样就避免了相同代码再次进行同步,从而节省了时间。

勾选完后点击创建即可完成连接。在这里插入图片描述

2.2 使用细节

配置完成后,相应的红框会发生变化,分别是:

  • Remote Host:这个如果首次配置可能没有,需要手动开启(下文会说)。如果有,可以点开刚才配置对应的同步目录,我们可以看到745文件夹有底色,这就说明本地目录映射到远程服务器的745目录。
  • 默认服务器(最底下的左边红框):设置了默认部署服务器后,IDE会默认将代码文件上传到这个指定的服务器上,而不需要每次选择服务器。
  • 解释器:已经设置为远程的python解释器。

需要说明的是如果没有自动切换到对应的服务器(判断依据为端口号port是否与SSH中的对应),需要手动切换,即修改绿色箭头指向的位置。
在这里插入图片描述

接下来,我们了解Tools中的Deployment,它最主要的功能就是上传文件到服务器,你可以选择手动或自动上传文件。我这里一般是自动上传文件,这样比较方便,修改一个数,一个标点都直接同步上传了。
绿色框是开启左侧远程服务器目录的选项。
在这里插入图片描述
关于我们如何安装自己所需的python库,首先我们需要打开远程服务器的命令行窗口,选择对应的的服务器
在这里插入图片描述
显示出相关信息后,我们就可以进行pip下载了,这里偷个懒,无需切换目录,直接下载就行。

在这里插入图片描述

2.3 数据上传与下载

我们使用GPU肯定少不了数据集,不同领域的数据集大小肯定不一样,我有幸训练过图像领域的模型,一言难尽。因此有几种方式可以上传到服务器。再次强调,数据集你只需要上传一次,如果下次你换显卡,请选择克隆实例,不要傻乎乎的重新上传数据集,遭老罪了

  1. 如果你的数据集比较热门(如ImageNet100),你可以尝试在公用数据中找一找,如果有复制路径,在服务器中找到解压到自己数据盘中即可。
    在这里插入图片描述

  2. 如果你的数据集非常大几个G以上,并且公共没有,你就需要使用官方推荐的方式,在控制台点击AutoPanel,可以进入如下页面,点击公网网盘,设置独立密码,就可以看到网盘列表,这里就阿里最方便,其他的不是cookie就是公私钥。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    授权完毕,你就可以下载你的数据集到相应的服务器路径下了。
    在这里插入图片描述

  3. 如果你的数据集不大,或者要上传其他文件,可以优先考虑一些如XShell软件支持管理SSH连接的工具,上传下载都很方便。当然直接在Pycharm中上传下载也是可以的,只不过速度很慢。
    在这里插入图片描述

​​ 三、一些闲聊与感悟

最初是打算在第三章说说自己的训练心得的,但是发现这也需要花费大量篇幅,总之,祝你们论文多多,早日完成实验,做自己想要做的事!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐