Browse this library

Chinese source article

4.2 · 环境状态与可恢复训练

以 Orchard 为例说明环境服务如何保存状态、提供验证器和快照,并支撑可恢复的轨迹采样。

View original Markdown ↗

长程训练离不开真实环境。代码任务需要仓库、依赖和测试,GUI 任务需要浏览器状态,研究任务需要可变化的数据源。环境若只是一次性脚本,轨迹很难复现,也无法从中间状态分支或恢复。把环境做成有生命周期的服务,才能让 SFT、RL、评测和失败分析共享同一套事实基础。

环境服务至少要定义创建、观察、动作、验证、快照、恢复和销毁。任务初态绑定镜像与数据版本,动作返回结构化观察,验证器读取实际终态。隔离不只是把进程放进容器,还要防止文件、数据库、网络服务和缓存跨 episode 泄漏。无动作对照若能通过任务,说明初态或验证器已经污染。

1. 环境状态决定轨迹能否复用

一条可训练轨迹需要知道每次动作基于哪个状态,动作以后状态怎样变化。只保存聊天文本,会漏掉文件系统、进程和远端对象;只保存终态,又无法定位哪一步引入错误。事件日志加稳定快照,使研究者能够重放前缀、替换后续策略,并把同一状态交给多个模型比较。

Orchard 环境与轨迹以 Orchard 为例拆解 Env 服务、Recipe 与训练系统的边界。环境提供转移和观测,Recipe 决定采样、奖励与优化算法。论文中某项训练收益不能自动归给环境层;公平比较仍要固定任务、模型、预算和验证器。

2. 快照分支让时间信用可以被测量

终局奖励无法指出早期哪一步有用。若环境能在状态 sts_t 建立快照,并从同一点采样多条 continuation,就可以用后续成功率估计状态价值或动作差异。这比让另一个语言模型事后评价步骤更接近环境事实,代价是额外存储、启动和 rollout。快照还必须覆盖真正影响任务的外部状态,否则分支看似相同,实际已经处在不同世界。

快照分支与训练边界进一步分析分支采样、排队模型、容量规划和跨 Harness 泛化。Orchard 公开材料中的 pause、resume、branching 若仍处在路线图阶段,文中的公式就属于可实现的研究设计与验收条件,不能写成主表已经验证的结果。这条路线最终要回答的是:环境提供了哪些可复位事实,哪些信用仍由训练算法估计,系统瓶颈又如何改变能够收集到的数据分布。

3. 环境层最容易掩盖的偏差

长尾任务占用 sandbox 更久,批量训练若等待最慢样本会空转,先到先用又会让短任务获得更多更新。超时样本若直接删除,数据集还会静默失去最难部分。环境指标因此要包括启动时间、episode 时长分位数、超时与故障原因、快照大小和恢复成功率。训练吞吐上涨以后,也要检查任务长度分布是否发生变化。一个只留下快速成功轨迹的系统可能拥有更漂亮的每小时样本数,却在持续削弱真正需要学习的长程能力。