很多同学习惯了「开一台云主机 → SSH 进去 → 装一晚上环境」的流程,第一次用 runw 时反而会不适应:没有机器要登录,没有环境要装,那任务到底是怎么跑起来的?
这篇按官方文档的最短路径,把第一个任务完整走一遍。全程只需要一份 YAML 和四个命令。
准备:云账号和 Token(约 5 分钟)
runw 本身不持有算力,任务实际跑在你自己的云账号里,所以第一次使用前要先把云账号接进来:
- 手机号注册 RunWhere 控制台;
- 在「云账号」页面选择云厂商和区域,按向导点一键模板创建角色信任(RAM Role 授权,随时可以收回);
- 回到控制台验证,状态变成
healthy就说明接好了。
然后在「API Keys」页面生成一个 Token,待会儿 CLI 登录要用。
安装和登录(约 1 分钟)
pip install runw
runw login --endpoint https://api.runwhere.ai
login 会提示粘贴刚才生成的 API Token。粘贴回车后用 runw whoami 验证一下身份,能显示账号信息就说明 CLI 这一侧通了。
写一份最小 YAML(约 3 分钟)
runw 的任务是声明式的:你不描述「怎么做」,只描述「要什么」。一份能跑的最小 YAML 长这样:
kind: Training
version: v1
job:
name: hello
environment:
image: pytorch/pytorch:2.4.1-cuda12.1-cudnn9-runtime
command: python train.py
resources:
gpuNum: 1
gpuType: t4
storage:
workdirs:
- path: "."
四个字段组各管一件事:
job:任务名字,之后logs、stop都靠它找到这个任务;environment:运行镜像和启动命令。除了直接指定镜像,也可以用 condaenvironment.yml或requirements.txt让平台复现环境;resources:GPU 数量和型号。第一次强烈建议用t4这类低成本卡试水,链路跑通再换大卡;storage.workdirs:哪些目录要同步到云端。.表示当前目录。
跑起来:sync → submit → logs(约 3 分钟)
runw sync -f train.yaml
sync 把变更文件上传到云端,并按 YAML 准备环境。只有变更的文件会传输,改几行代码重新 sync 通常秒级完成。
runw submit -f train.yaml
提交后任务进入调度:先 pending,分配到节点后变 running。环境就绪后,你的 command 就开始执行。
runw logs hello -f
实时跟踪日志,和在本机跑脚本看到的输出一样。任务进程退出后,平台会自动释放 GPU 并停止计费——不用惦记关机这件事。
如果中途想停:
runw stop job hello
runw delete job hello
第一次最该注意的:先查价,再提交
gpuType: t4 只是「我要一张 T4」的声明,具体用哪个报价(哪个云、哪个区域、什么计费模式)决定最终价格。提交生产任务前,建议先让 CLI 推荐一下:
runw price recommend -f train.yaml --top 3
输出里每个报价都有一个 gpuSkuKey,把选中的那个写回 YAML:
resources:
gpuNum: 1
gpuSkuKey: "从这里粘贴"
这样一次比价结果就固化成了可复用的资源方案,下次提交不用再挑。控制台的「价格」页也能按厂商和计费模式筛选报价,适合提交前先摸清行情。
费用方面记住一句话:平台只收订阅,GPU 费用由你的云账号按官方价直接结算。控制台「账务」页能看到消费明细、账单和发票。
第一次容易踩的坑
- Token 粘贴错或过期:
runw whoami报错就重新生成 Token 再 login 一次; - 忘记挂 workdir:任务起来后找不到代码,基本都是
storage.workdirs没配对; - 镜像拉取慢:自定义镜像第一次使用需要拉取,之后有缓存会快很多。想快可以先用平台预置的框架镜像(PyTorch / TensorFlow / JAX / vLLM);
- 一上来就用大卡:先用
t4把链路跑通,确认日志、产物、账单都符合预期,再换a100-80g跑正式训练,能省下不少试错成本。