AutoDL 服务器使用教程:从创建实例到 tmux 长期训练

0 阅读25分钟

适用场景:第一次使用 AutoDL 租 GPU 服务器,准备进行深度学习训练、大模型微调、推理部署、远程开发或长期实验任务。

目标:看完后,你应该能独立完成“创建服务器 -> 连接服务器 -> 上传代码和数据 -> 配置环境 -> 用 tmux 跑任务 -> 查看日志 -> 下载结果 -> 关机省钱”的完整流程。


0. 开始前你需要知道的几个概念

0.1 本地电脑和远程服务器

  • 本地电脑:你手里的 Windows、macOS 或 Linux 电脑。
  • 远程服务器:AutoDL 上租到的 GPU 实例,通常运行 Linux 系统。
  • 本地终端:你电脑上的 PowerShell、Windows Terminal、Terminal、iTerm2 等。
  • 远程终端:通过 SSH 登录到服务器后看到的命令行。

很多新手最容易混淆的一点是:
SSH 命令在本地电脑执行;训练命令在登录服务器之后执行。

0.2 AutoDL 实例

AutoDL 中的“实例”可以理解成一台临时租来的云服务器。它通常包括:

  • CPU
  • 内存
  • GPU
  • 系统盘
  • 数据盘
  • 预装镜像,例如 PyTorch、CUDA、TensorFlow 等环境

0.3 SSH

SSH 是连接远程 Linux 服务器的常用方式。你会看到类似这样的命令:

ssh -p 12345 root@connect.autodl.com

其中:

  • ssh:远程登录命令
  • -p 12345:端口号
  • root:远程用户名
  • connect.autodl.com:远程主机地址

AutoDL 实例页面会给出真实的主机地址、端口和密码。

0.4 tmux

tmux 是服务器上非常重要的工具。它可以让训练任务在你关闭 SSH 窗口、电脑休眠、网络断开后继续运行。

一句话记住:

长时间训练不要直接裸跑,尽量放进 tmux


1. 在 AutoDL 创建服务器实例

1.1 登录 AutoDL

  1. 打开 AutoDL 官网。
  2. 注册或登录账号。
  3. 进入控制台。
  4. 找到“租用实例”“容器实例”或类似入口。

AutoDL 首页和控制台入口

图中右上角标出了“控制台”入口。登录后通常先进入控制台,再从实例或算力市场页面开始租用服务器。

不同版本的 AutoDL 页面名称可能略有变化,但核心流程是:
选择 GPU -> 选择镜像 -> 创建实例 -> 等待启动。

1.2 选择 GPU

创建实例时,通常需要选择 GPU 型号。常见选择思路如下:

需求推荐思路
入门测试代码低价 GPU 即可
普通深度学习训练选择显存能放下模型和 batch size 的 GPU
大模型推理优先看显存大小
LoRA / QLoRA 微调看模型大小和量化方式
多卡训练选择多 GPU 实例,并确认代码支持多卡

选择 GPU 时重点看:

  • 显存大小,例如 16GB、24GB、48GB、80GB
  • 单卡还是多卡
  • 价格
  • 地区
  • 当前是否有空闲机器

如果你不确定选哪张卡,可以先用便宜的实例跑通流程,再换更贵的 GPU 跑正式实验。

AutoDL 算力市场选择 GPU

这张图展示的是算力市场页面。选择时重点看 GPU 型号、显存、空闲数量、价格、系统盘/数据盘容量以及驱动和 CUDA 信息;确认合适后点击对应机器右侧的租用按钮。

1.3 选择镜像

AutoDL 创建实例时通常可以选择镜像。镜像就是预装好的系统和软件环境。

常见镜像类型:

  • PyTorch 镜像
  • TensorFlow 镜像
  • CUDA 镜像
  • Jupyter 镜像
  • 社区镜像
  • 自定义镜像

推荐新手优先选择:

PyTorch + CUDA + Python 已配置好的官方镜像

选择镜像时要注意:

  • 项目要求的 Python 版本
  • 项目要求的 PyTorch 版本
  • 项目要求的 CUDA 版本
  • 是否需要 Jupyter
  • 是否需要特定框架,例如 Transformers、vLLM、DeepSpeed

1.4 选择硬盘

服务器一般有系统盘和数据盘。

  • 系统盘:放系统、基础环境、软件包。
  • 数据盘:放数据集、模型权重、实验输出,更适合存放大文件。

推荐目录习惯:

/root/autodl-tmp/project
/root/autodl-tmp/data
/root/autodl-tmp/models
/root/autodl-tmp/outputs
/root/autodl-tmp/logs

如果 AutoDL 当前实例提供 /root/autodl-tmp 作为数据盘或临时大容量目录,建议优先把项目、数据和输出放在这里。

1.5 创建并启动实例

确认配置后点击创建实例。等待状态变为“运行中”或类似状态后,就可以连接。

创建实例并开机

创建实例页面会汇总计费方式、主机规格、GPU 数量、数据盘和镜像。确认无误后点击“创建并开机”。正式创建前要再看一眼价格和磁盘配置,避免选错规格。

创建完成后,实例页面通常会显示:

  • SSH 登录命令
  • SSH 主机地址
  • SSH 端口
  • 用户名
  • 密码
  • Jupyter 或 Web 终端入口
  • 关机、重启、释放等操作按钮

1.6 费用提醒

AutoDL 这类 GPU 云服务器通常按运行时间计费。请养成习惯:

  • 不训练时及时关机。
  • 释放实例前确认重要数据已经保存。
  • 长时间不用的实例不要一直挂着。
  • 训练完成后先下载结果,再清理或释放。

2. 认识 AutoDL 实例界面

实例创建好以后,控制台一般会提供几个常用操作。

2.1 开机

实例关机后,需要点击开机才能再次使用。

开机后等状态变为运行中,再尝试 SSH 登录。

2.2 关机

关机通常表示停止计算资源,适合暂时不用但还想保留实例数据的情况。

注意:不同平台、不同存储类型的数据保留规则可能不同,关机前务必看清页面提示。

2.3 重启

如果服务器卡住、环境异常、进程无法正常结束,可以尝试重启。

重启会中断正在运行的训练任务,所以不要在训练中随便点。

2.4 释放

释放一般表示彻底删除或退还实例资源。

释放前一定确认:

  • 代码是否已经同步到 Git 或本地
  • 数据是否需要保留
  • 模型权重是否已下载
  • 日志和结果是否已备份

如果不确定,先不要释放。

2.5 SSH 信息

实例页面通常会给出类似:

ssh -p 端口号 root@主机地址

实例列表中的 SSH 登录信息和开关机按钮

图中右侧区域展示了 SSH 登录命令、密码复制按钮、JupyterLab、实例监控、关机和开机等入口。后续所有命令行连接都以这里显示的 SSH 信息为准。

你需要复制这条命令,在本地电脑的终端里执行。


3. 使用 SSH 登录服务器

3.1 Windows 登录方式

推荐使用:

  • Windows Terminal
  • PowerShell
  • VSCode 内置终端

打开终端后,粘贴 AutoDL 提供的 SSH 命令:

ssh -p 12345 root@connect.autodl.com

Windows 终端通过 SSH 登录 AutoDL

图中是在本地 Anaconda Prompt / Windows Terminal 中执行 SSH 登录。第一次连接会要求输入 yes 确认主机指纹,然后输入实例密码;成功后会进入 Ubuntu 服务器,并显示 AutoDL 的目录、CPU、内存、GPU 和数据盘信息。

把上面的端口和主机地址换成你实例页面显示的真实信息。

第一次连接时,可能看到:

Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入:

yes

然后输入密码。Linux 终端输入密码时通常不会显示字符,这是正常现象。输入完直接按回车。

3.2 macOS / Linux 登录方式

打开系统自带 Terminal,执行 AutoDL 提供的 SSH 命令:

ssh -p 12345 root@connect.autodl.com

后续流程和 Windows 类似。

3.3 登录成功的判断

登录成功后,命令行前缀可能变成类似:

root@container-xxxx:~#

这说明你现在已经在远程服务器里了。

可以执行:

hostname
pwd
nvidia-smi

如果 nvidia-smi 能看到 GPU 信息,说明服务器 GPU 可见。

3.4 常见 SSH 登录失败

情况一:Connection timed out

可能原因:

  • 实例没有开机
  • 网络不稳定
  • 主机地址或端口填错
  • 本地网络限制

处理方式:

  1. 确认 AutoDL 实例状态为运行中。
  2. 重新复制 SSH 命令。
  3. 换一个网络环境。
  4. 尝试使用 AutoDL 提供的 Web 终端。

情况二:Permission denied

可能原因:

  • 密码输入错误
  • 用户名错误
  • 使用了错误的 SSH Key

处理方式:

  1. 确认用户名是否为 root
  2. 重新复制密码。
  3. 如果配置过 SSH Key,检查本地 ~/.ssh/config

情况三:端口填错

AutoDL 的 SSH 通常不是默认的 22 端口,而是页面分配的端口。
一定要带上 -p 端口号


4. 配置 SSH 免密登录

每次输入密码比较麻烦,建议配置 SSH Key。

4.1 检查本地是否已有 SSH Key

在本地终端执行:

ls ~/.ssh

如果看到:

id_rsa
id_rsa.pub

或:

id_ed25519
id_ed25519.pub

说明本地已经有密钥。

4.2 生成新的 SSH Key

如果没有,可以执行:

ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可。生成后通常会得到:

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub

其中:

  • id_ed25519 是私钥,不能泄露。
  • id_ed25519.pub 是公钥,可以上传到服务器。

4.3 查看公钥

本地执行:

cat ~/.ssh/id_ed25519.pub

复制输出内容。

Windows PowerShell 中也可以执行:

Get-Content ~/.ssh/id_ed25519.pub

4.4 添加公钥到服务器

如果 AutoDL 控制台支持直接配置 SSH 公钥,优先在控制台添加。

如果需要手动添加,可以先用密码登录服务器,然后执行:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

把本地公钥粘贴进去,保存退出后执行:

chmod 600 ~/.ssh/authorized_keys

之后重新登录,应该可以免密进入。

4.5 配置本地 SSH config

为了以后不用每次输入一长串命令,可以编辑本地:

~/.ssh/config

添加:

Host autodl
    HostName connect.autodl.com
    User root
    Port 12345
    IdentityFile ~/.ssh/id_ed25519

HostNamePort 改成你的真实信息。

以后连接只需要:

ssh autodl

5. 使用 VSCode 远程开发

VSCode 适合写代码、改配置、查看文件,但长时间训练仍建议放进 tmux

5.1 安装插件

本地 VSCode 安装插件:

Remote - SSH

5.2 添加 SSH 主机

在 VSCode 中:

  1. Ctrl+Shift+P
  2. 输入 Remote-SSH: Add New SSH Host
  3. 粘贴 AutoDL 的 SSH 命令,例如:
ssh -p 12345 root@connect.autodl.com
  1. 选择保存到本地 SSH config。

VSCode Remote-SSH 添加入口

左侧 Remote Explorer 面板中可以看到 SSH 主机列表。点击加号或添加按钮,可以新增一台远程服务器。

VSCode 输入 SSH 连接命令

在顶部输入框中粘贴 AutoDL 提供的完整 SSH 命令,注意端口、用户名和主机地址都要保留。

VSCode 主机添加成功

主机添加成功后,左侧 SSH 列表会出现新的远程地址。点击连接按钮即可开始连接服务器。

5.3 连接服务器

在 VSCode 左下角点击远程连接按钮,选择刚添加的主机。

连接成功后,VSCode 会在服务器上安装远程组件。第一次可能稍慢。

VSCode 输入远程服务器密码

如果没有配置 SSH 免密登录,VSCode 会要求输入服务器密码。这里输入的是 AutoDL 实例页面显示的密码。

VSCode 远程连接成功

左下角状态栏显示 SSH: 主机地址,说明 VSCode 已经连到远程服务器。此时再打开文件夹,打开的是服务器上的目录,而不是本地电脑目录。

5.4 打开项目目录

推荐打开:

/root/autodl-tmp/project

如果目录还不存在,可以先在服务器终端执行:

mkdir -p /root/autodl-tmp/project

5.5 VSCode 使用建议

  • 写代码、改配置:适合用 VSCode。
  • 看日志:可以用 VSCode,也可以用终端。
  • 长时间训练:不要依赖 VSCode 终端,建议在 SSH + tmux 中运行。
  • 上传小文件:可以直接拖进 VSCode。
  • 上传大数据:建议用 scp、SFTP 或 AutoDL 数据工具。

6. 服务器目录与文件管理

6.1 推荐目录结构

登录服务器后,先创建常用目录:

mkdir -p /root/autodl-tmp/project
mkdir -p /root/autodl-tmp/data
mkdir -p /root/autodl-tmp/models
mkdir -p /root/autodl-tmp/outputs
mkdir -p /root/autodl-tmp/logs

推荐含义:

目录用途
/root/autodl-tmp/project放代码项目
/root/autodl-tmp/data放数据集
/root/autodl-tmp/models放模型权重
/root/autodl-tmp/outputs放训练输出、checkpoint
/root/autodl-tmp/logs放日志

6.2 查看当前目录

pwd

6.3 查看文件

ls
ls -lh
ls -lah

6.4 进入目录

cd /root/autodl-tmp/project

返回上一级:

cd ..

回到用户目录:

cd ~

6.5 查看磁盘空间

df -h

查看某个目录大小:

du -sh /root/autodl-tmp/*

如果训练中突然报错 No space left on device,优先检查磁盘是否满了。

6.6 上传代码

方法一:Git 克隆

如果你的项目在 GitHub、GitLab 或 Gitee:

cd /root/autodl-tmp/project
git clone https://github.com/yourname/yourproject.git
cd yourproject

方法二:VSCode 上传

连接远程后,可以把本地文件拖到 VSCode 的远程文件窗口中。

适合小文件和少量代码。

方法三:JupyterLab 拖拽上传

如果只是临时上传少量代码、配置文件、Notebook 或小数据文件,也可以直接使用 AutoDL 实例页面里的 JupyterLab。

操作方式:

  1. 在 AutoDL 实例列表中找到正在运行的实例。
  2. 点击右侧快捷工具里的 JupyterLab
  3. 浏览器打开 JupyterLab 后,在左侧文件列表中进入目标目录。
  4. 把本地文件直接拖进左侧文件区域,等待上传完成。

JupyterLab 文件管理和拖拽上传

JupyterLab 上传很直观,适合新手快速传文件。但如果是很大的数据集、模型权重或整个项目目录,还是更推荐使用 scp、SFTP、Git 或 AutoDL 提供的数据工具。

方法四:scp 上传

在本地电脑终端执行:

scp -P 12345 local_file.py root@connect.autodl.com:/root/autodl-tmp/project/

上传文件夹:

scp -P 12345 -r ./yourproject root@connect.autodl.com:/root/autodl-tmp/project/

注意:

  • scp 用大写 -P 指定端口。
  • ssh 用小写 -p 指定端口。

6.7 下载结果

在本地电脑终端执行:

scp -P 12345 root@connect.autodl.com:/root/autodl-tmp/outputs/result.zip ./

下载整个输出目录:

scp -P 12345 -r root@connect.autodl.com:/root/autodl-tmp/outputs ./outputs

7. Linux 常用命令速查

7.1 基础命令

功能命令
查看当前路径pwd
查看文件ls -lh
查看隐藏文件ls -lah
进入目录cd path
创建目录mkdir -p path
复制文件cp source target
移动或重命名mv source target
删除文件rm file
删除目录rm -r dir
查看文本cat file.txt
分页查看less file.txt
查看前几行head file.txt
查看后几行tail file.txt
实时看日志tail -f train.log

删除命令要谨慎,尤其是:

rm -rf

不要在不理解路径的情况下使用。

7.2 查看系统和 GPU

查看 GPU:

nvidia-smi

动态刷新 GPU 状态:

watch -n 1 nvidia-smi

查看 CPU 和内存:

top

如果安装了 htop

htop

查看进程:

ps aux

查找 Python 进程:

ps aux | grep python

7.3 查看端口占用

netstat -tulnp

或:

ss -tulnp

8. Python / Conda 环境管理

8.1 查看 Python 版本

python --version
which python

8.2 查看 Conda 环境

conda env list

8.3 激活环境

例如已有环境名为 base

conda activate base

如果激活失败,可能需要先初始化 Conda,或使用镜像中提供的环境路径。可以先查看:

which conda
conda env list

8.4 创建新环境

conda create -n myenv python=3.10 -y
conda activate myenv

8.5 安装依赖

如果项目提供 requirements.txt

pip install -r requirements.txt

如果网络较慢,可以尝试使用国内镜像源:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

8.6 查看 PyTorch 和 CUDA

python -c "import torch; print(torch.__version__); print(torch.version.cuda); print(torch.cuda.is_available())"

如果输出 True,说明 PyTorch 能使用 GPU。

8.7 常见环境问题

ModuleNotFoundError

错误示例:

ModuleNotFoundError: No module named 'xxx'

说明缺少依赖,通常执行:

pip install xxx

或:

pip install -r requirements.txt

CUDA out of memory

错误示例:

CUDA out of memory

可能处理方式:

  • 减小 batch size
  • 减小输入长度
  • 使用梯度累积
  • 使用混合精度
  • 换更大显存的 GPU
  • 检查是否有其他进程占用显存

CUDA 版本不匹配

如果 PyTorch、CUDA、驱动版本不匹配,可能导致 GPU 不可用。
建议优先使用 AutoDL 已经配置好的官方镜像,不要一上来重装 CUDA。


9. 运行训练或推理任务

9.1 进入项目目录

cd /root/autodl-tmp/project/yourproject

9.2 激活环境

conda activate myenv

9.3 测试脚本能否运行

先运行一个短命令确认环境:

python -c "import torch; print(torch.cuda.is_available())"

如果项目有测试脚本:

python test.py

9.4 运行训练命令

示例:

python train.py \
  --data_dir /root/autodl-tmp/data \
  --output_dir /root/autodl-tmp/outputs/exp001 \
  --epochs 10 \
  --batch_size 8

如果只想使用第 0 张 GPU:

CUDA_VISIBLE_DEVICES=0 python train.py

如果有多张 GPU,想使用第 0、1 张:

CUDA_VISIBLE_DEVICES=0,1 python train.py

9.5 保存日志

推荐把训练输出保存到日志文件:

python train.py 2>&1 | tee /root/autodl-tmp/logs/train_exp001.log

含义:

  • 2>&1:把错误输出也合并到标准输出。
  • tee:一边在屏幕显示,一边写入日志文件。

9.6 查看日志

实时查看:

tail -f /root/autodl-tmp/logs/train_exp001.log

查看最后 100 行:

tail -n 100 /root/autodl-tmp/logs/train_exp001.log

9.7 中断任务

如果训练在当前终端前台运行,按:

Ctrl+C

如果任务在后台或其他会话里,需要先找到进程:

ps aux | grep train.py

再根据 PID 结束:

kill PID

如果进程无响应,再考虑:

kill -9 PID

kill -9 比较强硬,建议只在普通 kill 无效时使用。


10. 重点:使用 tmux 管理长期任务

10.1 为什么必须学 tmux

如果你直接在 SSH 窗口中运行:

python train.py

一旦本地电脑断网、终端关闭、SSH 连接断开,训练任务很可能中断。

tmux 的作用是创建一个服务器内部的持久终端。
你可以离开 SSH,但 tmux 里的训练还在服务器上继续跑。

10.2 检查 tmux 是否安装

tmux -V

如果显示版本号,例如:

tmux 3.2a

说明已安装。

如果没有安装,可以尝试:

apt update
apt install tmux -y

10.3 创建 tmux 会话

建议每个实验创建一个独立会话:

tmux new -s train

这里 train 是会话名,你可以改成:

tmux new -s exp001
tmux new -s qwen_lora
tmux new -s tensorboard

进入后,你会看到一个新的终端界面。此时你已经在 tmux 里面了。

10.4 在 tmux 中运行训练

进入项目目录:

cd /root/autodl-tmp/project/yourproject

激活环境:

conda activate myenv

创建日志目录:

mkdir -p /root/autodl-tmp/logs

启动训练:

python train.py 2>&1 | tee /root/autodl-tmp/logs/train_exp001.log

10.5 离开 tmux 但不中断任务

按键顺序:

Ctrl+b

松开后再按:

d

屏幕会回到普通 SSH 终端,并显示类似:

[detached from session train]

这表示你已经退出 tmux 界面,但训练还在里面继续运行。

10.6 重新进入 tmux 会话

先查看会话:

tmux ls

可能看到:

train: 1 windows (created Thu May 28 10:00:00 2026)

重新进入:

tmux attach -t train

也可以写短一点:

tmux a -t train

10.7 关闭 tmux 会话

如果训练已经结束,在 tmux 里执行:

exit

或者从外部关闭:

tmux kill-session -t train

关闭前确认任务已经完成,否则会中断里面的进程。

10.8 tmux 常用快捷键

tmux 默认前缀键是:

Ctrl+b

常用操作:

操作快捷键
退出会话但保持运行Ctrl+b 然后 d
新建窗口Ctrl+b 然后 c
下一个窗口Ctrl+b 然后 n
上一个窗口Ctrl+b 然后 p
窗口列表Ctrl+b 然后 w
左右分屏Ctrl+b 然后 %
上下分屏Ctrl+b 然后 "
切换面板Ctrl+b 然后方向键
关闭当前面板输入 exit

10.9 推荐 tmux 工作流

每次训练建议按这个顺序:

ssh -p 12345 root@connect.autodl.com
tmux new -s exp001
cd /root/autodl-tmp/project/yourproject
conda activate myenv
python train.py 2>&1 | tee /root/autodl-tmp/logs/exp001.log

然后按:

Ctrl+b
d

之后即使关闭本地电脑,服务器里的任务仍会继续运行。

回来查看:

ssh -p 12345 root@connect.autodl.com
tmux attach -t exp001

10.10 tmux 和 nohup 的区别

nohup 也能让任务后台运行,例如:

nohup python train.py > train.log 2>&1 &

但新手更推荐 tmux,因为:

  • 可以重新进入原来的终端界面。
  • 可以直接看到程序交互输出。
  • 可以同时开多个窗口。
  • 更适合调试和长期实验。

如果只是简单后台任务,nohup 也可以;如果是训练实验,优先用 tmux


11. 日志与实验管理

11.1 推荐每次实验单独建目录

mkdir -p /root/autodl-tmp/outputs/exp001
mkdir -p /root/autodl-tmp/logs

训练命令中指定输出目录:

python train.py \
  --output_dir /root/autodl-tmp/outputs/exp001 \
  2>&1 | tee /root/autodl-tmp/logs/exp001.log

11.2 实验命名建议

不要只用:

test
new
final
final2

建议包含:

  • 日期
  • 模型
  • 数据集
  • 关键参数

例如:

2026-05-28_qwen7b_lora_lr2e-4_bs4

11.3 保存实验记录

可以在项目目录中新建:

experiments.md

记录:

### exp001

- 时间:2026-05-28
- 模型:xxx
- 数据:xxx
- 命令:python train.py ...
- 参数:lr=2e-4, batch_size=4
- 输出目录:/root/autodl-tmp/outputs/exp001
- 结果:xxx
- 问题:xxx

11.4 日志文件推荐模板

EXP_NAME=exp001
mkdir -p /root/autodl-tmp/logs
python train.py 2>&1 | tee /root/autodl-tmp/logs/${EXP_NAME}.log

如果当前 shell 不习惯变量,也可以直接写完整路径。


12. TensorBoard、Jupyter、Gradio 和端口转发

训练时经常需要在浏览器里看服务,例如:

  • TensorBoard:通常用 6006 端口。
  • Jupyter Notebook / Lab:常用 8888 端口。
  • Gradio:常用 7860 端口。
  • FastAPI:常用 8000 端口。

这些服务运行在远程服务器上,本地浏览器不能直接访问时,就需要端口转发。

12.1 启动 TensorBoard

在服务器中执行:

tensorboard --logdir /root/autodl-tmp/outputs --host 0.0.0.0 --port 6006

建议单独开一个 tmux 会话:

tmux new -s tensorboard
tensorboard --logdir /root/autodl-tmp/outputs --host 0.0.0.0 --port 6006

12.2 SSH 本地端口转发

在本地电脑终端执行:

ssh -p 12345 -L 6006:127.0.0.1:6006 root@connect.autodl.com

然后打开本地浏览器访问:

http://127.0.0.1:6006

含义:

  • 第一个 6006:本地电脑端口
  • 127.0.0.1:6006:服务器内部服务地址和端口
  • -p 12345:连接 AutoDL 的 SSH 端口

12.3 Gradio 示例

服务器中启动:

python app.py

如果 Gradio 使用 7860 端口,本地转发:

ssh -p 12345 -L 7860:127.0.0.1:7860 root@connect.autodl.com

本地浏览器打开:

http://127.0.0.1:7860

12.4 Jupyter 示例

服务器中启动:

jupyter lab --ip 0.0.0.0 --port 8888 --no-browser --allow-root

本地转发:

ssh -p 12345 -L 8888:127.0.0.1:8888 root@connect.autodl.com

本地浏览器打开:

http://127.0.0.1:8888

终端里会显示 token,复制到浏览器中即可。

12.5 端口打不开的常见原因

  • 服务没有启动。
  • 端口号写错。
  • 本地端口被占用。
  • 服务只监听了错误地址。
  • SSH 转发命令没有保持连接。
  • AutoDL 控制台提供了独立的端口映射方式,需要按平台说明操作。

检查服务器端口:

ss -tulnp | grep 6006

13. Git 与代码同步

13.1 克隆项目

cd /root/autodl-tmp/project
git clone https://github.com/yourname/yourproject.git
cd yourproject

13.2 拉取最新代码

git pull

13.3 查看代码状态

git status

13.4 提交改动

git add .
git commit -m "Update training config"
git push

13.5 .gitignore 建议

项目中建议忽略:

data/
datasets/
outputs/
checkpoints/
logs/
*.pt
*.pth
*.ckpt
*.safetensors
__pycache__/
.ipynb_checkpoints/

不要把大数据集、模型权重、训练输出直接提交到 Git 仓库。


14. 常见故障排查

14.1 SSH 连不上

检查:

实例是否运行中?
SSH 命令是否完整?
端口是否正确?
密码是否正确?
本地网络是否可用?

可以先尝试 AutoDL 控制台里的 Web 终端。

14.2 VSCode 连接失败

处理顺序:

  1. 先确认普通 SSH 能否连接。
  2. 如果普通 SSH 都失败,先解决 SSH。
  3. 删除 VSCode 中旧的远程配置后重新添加。
  4. 检查本地 ~/.ssh/config
  5. 重启 VSCode。

14.3 tmux 会话找不到

执行:

tmux ls

如果显示:

no server running

说明当前没有正在运行的 tmux 会话。可能原因:

  • 从未创建过。
  • 会话已经退出。
  • 服务器重启过。
  • 实例被关机或释放后任务已结束。

14.4 训练突然停止

检查:

nvidia-smi
tail -n 100 /root/autodl-tmp/logs/exp001.log
df -h

常见原因:

  • 显存不足。
  • 磁盘满了。
  • 数据路径错误。
  • 依赖缺失。
  • 服务器重启或关机。
  • 代码报错。

14.5 GPU 显存被占用

查看:

nvidia-smi

找到占用 GPU 的 PID 后:

kill PID

如果无效:

kill -9 PID

操作前确认这是你自己的进程。

14.6 磁盘满了

查看磁盘:

df -h

查看大目录:

du -sh /root/autodl-tmp/*

常见可清理内容:

  • 旧 checkpoint
  • 临时日志
  • 重复数据集
  • 无用缓存

谨慎清理,不要删除自己还需要的模型和数据。

14.7 Python 包安装很慢

尝试镜像源:

pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple

或:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

14.8 CUDA 不可用

先检查:

nvidia-smi
python -c "import torch; print(torch.cuda.is_available())"

如果 nvidia-smi 正常但 PyTorch 显示 False,多半是 PyTorch 版本或环境问题。

建议:

  • 确认激活了正确 Conda 环境。
  • 使用镜像自带 PyTorch。
  • 不要随意重装系统 CUDA。
  • 根据 PyTorch 官方命令安装匹配版本。

15. 安全、费用与数据备份

15.1 安全注意事项

  • 不要把 SSH 密码发到公开群或仓库。
  • 不要泄露私钥文件。
  • 不要在公共仓库提交 token、API key。
  • 不要随便执行来源不明的命令。

15.2 费用控制

每次实验结束后检查:

nvidia-smi
tmux ls

确认没有任务需要继续运行后,在 AutoDL 控制台关机。

建议养成习惯:

  • 开始训练前确认预计耗时。
  • 长任务用 tmux
  • 训练结束下载结果。
  • 不用就关机。

15.3 备份重要数据

需要备份的内容:

  • 代码
  • 配置文件
  • 训练日志
  • 最优 checkpoint
  • 实验结果
  • 数据处理脚本

不建议只把重要结果放在一台临时 GPU 实例上。


16. 推荐完整工作流

16.1 第一次使用 AutoDL

  1. 创建实例。
  2. 选择 PyTorch / CUDA 镜像。
  3. 启动实例。
  4. 复制 SSH 命令。
  5. 本地终端 SSH 登录。
  6. 执行 nvidia-smi 检查 GPU。
  7. 创建项目目录。
  8. 上传或克隆代码。
  9. 配置 Python 环境。
  10. 跑一个小测试脚本。

16.2 每次开始实验

ssh -p 12345 root@connect.autodl.com
tmux new -s exp001
cd /root/autodl-tmp/project/yourproject
conda activate myenv
nvidia-smi
python train.py 2>&1 | tee /root/autodl-tmp/logs/exp001.log

然后按:

Ctrl+b
d

16.3 查看正在运行的实验

ssh -p 12345 root@connect.autodl.com
tmux ls
tmux attach -t exp001

如果只是看日志:

tail -f /root/autodl-tmp/logs/exp001.log

16.4 训练完成后

  1. 查看日志最后部分。
  2. 检查输出目录。
  3. 下载结果。
  4. 记录实验结论。
  5. 清理不需要的中间文件。
  6. 确认无任务后关机。

16.5 关机前检查清单

执行:

nvidia-smi
tmux ls
df -h

确认:

  • 没有还需要继续跑的训练。
  • 重要输出已经保存。
  • checkpoint 已经下载或备份。
  • 日志已经保留。

然后再去 AutoDL 控制台关机。


17. 常用模板

17.1 SSH 登录模板

ssh -p <SSH端口> root@<SSH主机地址>

示例:

ssh -p 12345 root@connect.autodl.com

17.2 SCP 上传模板

scp -P <SSH端口> -r <本地路径> root@<SSH主机地址>:<服务器路径>

示例:

scp -P 12345 -r ./yourproject root@connect.autodl.com:/root/autodl-tmp/project/

17.3 SCP 下载模板

scp -P <SSH端口> -r root@<SSH主机地址>:<服务器路径> <本地路径>

示例:

scp -P 12345 -r root@connect.autodl.com:/root/autodl-tmp/outputs ./outputs

17.4 tmux 训练模板

ssh -p <SSH端口> root@<SSH主机地址>
tmux new -s <会话名>
cd /root/autodl-tmp/project/<项目名>
conda activate <环境名>
python train.py 2>&1 | tee /root/autodl-tmp/logs/<实验名>.log

退出但不中断:

Ctrl+b
d

重新进入:

tmux attach -t <会话名>

17.5 TensorBoard 转发模板

服务器中:

tensorboard --logdir /root/autodl-tmp/outputs --host 0.0.0.0 --port 6006

本地电脑中:

ssh -p <SSH端口> -L 6006:127.0.0.1:6006 root@<SSH主机地址>

浏览器打开:

http://127.0.0.1:6006

18. 最小可行操作示例

如果你只想最快跑起来,可以按下面这个极简流程。

18.1 创建实例

在 AutoDL 控制台:

  1. 选择 GPU。
  2. 选择 PyTorch 镜像。
  3. 创建实例。
  4. 等待实例运行中。
  5. 复制 SSH 命令。

18.2 登录服务器

本地电脑终端:

ssh -p 12345 root@connect.autodl.com

18.3 准备目录

服务器中:

mkdir -p /root/autodl-tmp/project
mkdir -p /root/autodl-tmp/logs
mkdir -p /root/autodl-tmp/outputs

18.4 上传或克隆代码

服务器中:

cd /root/autodl-tmp/project
git clone https://github.com/yourname/yourproject.git
cd yourproject

18.5 安装依赖

pip install -r requirements.txt

18.6 用 tmux 跑训练

tmux new -s train
cd /root/autodl-tmp/project/yourproject
python train.py 2>&1 | tee /root/autodl-tmp/logs/train.log

退出但不中断:

Ctrl+b
d

18.7 回来看训练

ssh -p 12345 root@connect.autodl.com
tmux attach -t train

18.8 下载结果

本地电脑终端:

scp -P 12345 -r root@connect.autodl.com:/root/autodl-tmp/outputs ./outputs

18.9 关机

确认任务结束、结果保存后,到 AutoDL 控制台关机。


19. 新手最容易踩的坑

19.1 把 SSH 命令放到服务器里执行

错误理解:

我已经登录服务器了,还要继续执行 SSH。

正确理解:

SSH 是从本地电脑连接服务器用的。登录成功后,就在服务器里执行训练命令。

19.2 直接跑训练,不用 tmux

风险:

本地网络一断,训练可能中断。

建议:

超过几分钟的任务都放进 tmux

19.3 忘记保存日志

没有日志时,训练失败后很难排查。

推荐:

python train.py 2>&1 | tee /root/autodl-tmp/logs/train.log

19.4 输出目录写到系统盘

如果 checkpoint 很大,容易把系统盘写满。

推荐把大文件放到:

/root/autodl-tmp

19.5 训练完忘记关机

GPU 服务器运行中会持续计费。训练结束后,确认结果已保存,然后及时关机。


20. 一句话总结

AutoDL 的核心流程可以压缩成一句话:

创建实例,SSH 登录,把项目和数据放到 /root/autodl-tmp,配置环境,用 tmux 跑训练,用日志记录过程,训练结束下载结果并关机。


21. 参考资料