用途:在用户自己的 Modal 账户上运行 GPU/CPU 作业,容器在 Modal 云端按指定硬件(gpu/cpu/memory/timeout)启动,计入用户账单。
主要能力:通过 host.compute.create('byoc:modal', provider_params={'modal': {...}}) 创建作业句柄,再用 submit_job 提交;.result() 非阻塞,守护进程轮询沙箱并把 out.tar.gz 收割到 hpc/<jobId>/,完成后发出 compute_done 通知。可用 wait_for_notification 等待。环境准备通过 compute_provider({'provider': 'modal', 'code': '…'}) 内核完成,可构建镜像、填充模型权重卷、运行 CPU 冒烟探测。
用法要点:先用 compute_details({provider: 'byoc:modal', mode: 'read'}) 查看已有镜像账本;缺失时在 compute_provider 内核用 list_envs()、build_env(name, hydrate=False) 构建,把返回的 im-… 镜像引用传给 provider_params.modal.image。inputs= 平铺到工作目录根,dst_filename 只能是裸文件名;仅 ./out/ 会被收割,outputs= 只是收割后的过滤。容器超时 timeout 与作业超时 timeout_seconds 均可选,超时作业状态为 timed_out 且部分输出仍被收割。
限制:若返回 unknown provider 'byoc:modal',说明该安装未启用 Modal,需用户在 Settings → Compute → Modal 中启用。inputs= 单次上限 1 GiB,超出需用 Volume;上传速率约 0.65–0.81 MiB/s。compute_provider 内核拒绝 gpu= 并将 timeout 限制在 30 分钟内,且需自行 sb.terminate() 终止沙箱。call_command 仅适用于 SSH,不适用于 byoc: 句柄。首次环境搭建详见该技能目录下的 env-setup.md。