很多人习惯了「开一台云主机 → SSH 进去 → 装一晚上环境」的流程,第一次用 runwhere 反而会不适应:没有机器要登录,没有环境要装,那任务到底是怎么跑起来的?这篇按官方文档的最短路径,把第一个任务完整走一遍——全程只需要一份 YAML 和四个命令,15 分钟内可以看到第一条云端日志。

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