LOCAL MODEL LAB / REFERENCE 0005
哪个任务,
完成了什么
查 ID、状态、缓存和验收证据。worker 与节点字段为课程设计,尚未实现。
四种 ID
- prompt_id
- ComfyUI 图的一次排队执行。查询 8188 的
/history/{prompt_id}。 - job_id
- 拟定 worker 的训练、准备或评估任务。查询 8091 的
/jobs/{job_id}。 - artifact_id
- 不可变数据或模型产物引用,另查 manifest 与真实文件 hash。
- service_id
- 拟定 worker 管理的模型服务实例;记录所加载 artifact、进程与端口。
ComfyUI 的 execution_success 只表示图执行成功;异步提交节点可在训练仍 running 时执行结束。原生路由与消息见 Server Routes、WebSocket Messages。
读取状态的顺序
worker:accepted → running → succeeded / failed / cancelled
service:starting → ready → stopped
↘ failed(启动或运行时失败)
这是课程 worker 的状态协议。job 的 succeeded 表示该操作已按其契约结束:prepare 检查数据,sft/grpo 检查更新,eval 产出评估报告。它不能替代独立质量判断;模型效果要读 eval,服务就绪要读 service。
重启后需检查进程和文件,旧的 running/ready JSON 不足以证明任务仍在运行。failed/cancelled 保留日志和错误,部分权重不自动发布为可服务的 artifact。
重复 Queue 怎么处理
| 动作 | 规则 |
|---|---|
| 再次提交 | 同 experiment_id + operation + request_id、同内容返回旧 job;同键不同内容拒绝。 |
| 查询状态 | 用查询图刷新真实状态。缓存失效不能触发新的训练提交。 |
| IS_CHANGED | 若采用官方机制,返回布尔 True 不会强制每次执行;状态读取可采用 NaN 或显式刷新版本。 |
| 点击 Interrupt | 中断 ComfyUI 执行;worker 外部训练需要单独 JobCancel。 |
| 停止服务 | 用 ServiceStop 定位自己创建的实例并回读端口状态,不等同于训练取消。 |
缓存行为见 官方节点属性。幂等键、worker 取消和服务停止是本课程新增的接口设计。
验收时只问这些
| 阶段 | 最低证据 | 单独不足的信号 |
|---|---|---|
| SFT | 有限 loss、真实 optimizer update、参数变化、adapter/融合与重载 | loss 截图、文件存在 |
| GRPO | SFT parent、真实组采样/奖励/优势、实际更新、最终权重重载 | reward 显示、优势模拟器 |
| 模型效果 | 冻结方案后,同题/同解码的原始-SFT-GRPO 评估 | 任务 succeeded、训练奖励上升 |
| 模型服务 | 正确 artifact 实例、健康、模型 ID、原始请求与回包 | service_id、端口监听 |
| 金额正确 | 回包 content 经 严格评分器 检查 | HTTP 200、oracle 替换值 |
服务 receipt 最小内容
request_id + service_id + artifact_id
加载路径 + 权重/config/tokenizer hash
请求时间 + URL + 模型 ID + 完整请求 JSON
HTTP 状态 + 完整原始响应 + content
格式评分 + 金额评分 + 联合正确性
请求中的模型 ID 只是名称,需与启动记录中的 artifact/hash 关联。所选 MLX-LM 版本的 /health 检查生成线程,/v1/models 列可用模型;ready 还需固定 artifact 路径的真实暖机推理。oracle 用于评分或对照,不能替代模型输出。原始接口以 官方服务源码为准,课程已对照 0.32.0 发布版。