适用场景:第一次使用 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
- 打开 AutoDL 官网。
- 注册或登录账号。
- 进入控制台。
- 找到“租用实例”“容器实例”或类似入口。
图中右上角标出了“控制台”入口。登录后通常先进入控制台,再从实例或算力市场页面开始租用服务器。
不同版本的 AutoDL 页面名称可能略有变化,但核心流程是:
选择 GPU -> 选择镜像 -> 创建实例 -> 等待启动。
1.2 选择 GPU
创建实例时,通常需要选择 GPU 型号。常见选择思路如下:
| 需求 | 推荐思路 |
|---|---|
| 入门测试代码 | 低价 GPU 即可 |
| 普通深度学习训练 | 选择显存能放下模型和 batch size 的 GPU |
| 大模型推理 | 优先看显存大小 |
| LoRA / QLoRA 微调 | 看模型大小和量化方式 |
| 多卡训练 | 选择多 GPU 实例,并确认代码支持多卡 |
选择 GPU 时重点看:
- 显存大小,例如 16GB、24GB、48GB、80GB
- 单卡还是多卡
- 价格
- 地区
- 当前是否有空闲机器
如果你不确定选哪张卡,可以先用便宜的实例跑通流程,再换更贵的 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 登录命令、密码复制按钮、JupyterLab、实例监控、关机和开机等入口。后续所有命令行连接都以这里显示的 SSH 信息为准。
你需要复制这条命令,在本地电脑的终端里执行。
3. 使用 SSH 登录服务器
3.1 Windows 登录方式
推荐使用:
- Windows Terminal
- PowerShell
- VSCode 内置终端
打开终端后,粘贴 AutoDL 提供的 SSH 命令:
ssh -p 12345 root@connect.autodl.com
图中是在本地 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
可能原因:
- 实例没有开机
- 网络不稳定
- 主机地址或端口填错
- 本地网络限制
处理方式:
- 确认 AutoDL 实例状态为运行中。
- 重新复制 SSH 命令。
- 换一个网络环境。
- 尝试使用 AutoDL 提供的 Web 终端。
情况二:Permission denied
可能原因:
- 密码输入错误
- 用户名错误
- 使用了错误的 SSH Key
处理方式:
- 确认用户名是否为
root。 - 重新复制密码。
- 如果配置过 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
把 HostName 和 Port 改成你的真实信息。
以后连接只需要:
ssh autodl
5. 使用 VSCode 远程开发
VSCode 适合写代码、改配置、查看文件,但长时间训练仍建议放进 tmux。
5.1 安装插件
本地 VSCode 安装插件:
Remote - SSH
5.2 添加 SSH 主机
在 VSCode 中:
- 按
Ctrl+Shift+P。 - 输入
Remote-SSH: Add New SSH Host。 - 粘贴 AutoDL 的 SSH 命令,例如:
ssh -p 12345 root@connect.autodl.com
- 选择保存到本地 SSH config。
左侧 Remote Explorer 面板中可以看到 SSH 主机列表。点击加号或添加按钮,可以新增一台远程服务器。
在顶部输入框中粘贴 AutoDL 提供的完整 SSH 命令,注意端口、用户名和主机地址都要保留。
主机添加成功后,左侧 SSH 列表会出现新的远程地址。点击连接按钮即可开始连接服务器。
5.3 连接服务器
在 VSCode 左下角点击远程连接按钮,选择刚添加的主机。
连接成功后,VSCode 会在服务器上安装远程组件。第一次可能稍慢。
如果没有配置 SSH 免密登录,VSCode 会要求输入服务器密码。这里输入的是 AutoDL 实例页面显示的密码。
左下角状态栏显示 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。
操作方式:
- 在 AutoDL 实例列表中找到正在运行的实例。
- 点击右侧快捷工具里的
JupyterLab。 - 浏览器打开 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 连接失败
处理顺序:
- 先确认普通 SSH 能否连接。
- 如果普通 SSH 都失败,先解决 SSH。
- 删除 VSCode 中旧的远程配置后重新添加。
- 检查本地
~/.ssh/config。 - 重启 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
- 创建实例。
- 选择 PyTorch / CUDA 镜像。
- 启动实例。
- 复制 SSH 命令。
- 本地终端 SSH 登录。
- 执行
nvidia-smi检查 GPU。 - 创建项目目录。
- 上传或克隆代码。
- 配置 Python 环境。
- 跑一个小测试脚本。
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 训练完成后
- 查看日志最后部分。
- 检查输出目录。
- 下载结果。
- 记录实验结论。
- 清理不需要的中间文件。
- 确认无任务后关机。
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 控制台:
- 选择 GPU。
- 选择 PyTorch 镜像。
- 创建实例。
- 等待实例运行中。
- 复制 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. 参考资料
- AutoDL 快速开始:www.autodl.com/docs/quick_…
- AutoDL SSH 远程连接:api.autodl.com/docs/ssh/
- AutoDL VSCode 远程开发:www.autodl.com/docs/vscode…
- AutoDL 配置环境:www.autodl.com/docs/env/
- AutoDL SSH 隧道:www.autodl.com/docs/ssh_pr…