用途:把 GPU 作业派发到用户自己的 Modal 账户,容器在 Modal 云端按指定硬件(gpu/cpu/memory/timeout)运行,计入用户工作区与账单。因涉及用户凭据,需两次授权卡片:作业面与独立的环境设置内核。
主要能力:作业面 host.compute.create('byoc:modal', provider_params={'modal': {...}}) 在 repl 工具中调用,支持 submit_job/result/attach_job/close;.result() 非阻塞,守护进程轮询沙箱并把 out.tar.gz 回收到 hpc/<jobId>/,完成后发出 compute_done 通知,可用 wait_for_notification 等待。环境面 compute_provider({'provider': 'modal', 'code': '…'}) 提供已认证的 Modal SDK Python shell,用于构建镜像、填充模型权重卷、CPU 冒烟探测;该内核拒绝 gpu= 并把 timeout 限制在 30 分钟内,需自行 sb.terminate()。
用法要点:先用 compute_details({provider: 'byoc:modal', mode: 'read'}) 查看账本;用 list_envs()/build_env(name, hydrate=False) 构建镜像,把返回的 im-… 引用传给 provider_params.modal.image,并可用 env 名让随附出口声明生效。inputs= 平铺到工作目录根,dst_filename 只能是裸文件名;仅 ./out/ 与日志会被打包回收,outputs= 只是回收后的筛选。
限制:inputs= 单次上限 1 GiB,超出需用 Volume;上传约 0.65–0.81 MiB/s,1 GiB 约需 20–26 分钟。容器超时默认取设置值,上限为 Modal 24 小时平台寿命减暂存余量(85,500 秒);作业超时可选。超时作业状态为 timed_out,输出仍会被回收。若返回 unknown provider 'byoc:modal',说明未启用,需用户在 Settings → Compute → Modal 中开启。首次环境设置见该技能目录的 env-setup.md。