CuES中的探索
CuES希望人类可以输入一个探索的方向(例如一句话),并且交互沙盒可以提供一套概念池, 在具体实现中,这个概念池的创建是通过读取交互沙盒中100个种子任务,让llm提取这种子task里名词/概念。 这也就是CeUS所说的自上而下的引导。
CuES另外一个功能是自下而上的探索,实际上是让运行沙盒首先提供一个system prompt作为环境的初始观察Observation0, 然后考虑概念池和探索方向,在当前状况下,探索至多20步,生成至多20个triplets, 在20个连续的步骤结束后,他会重新使用LLM 对当前这个env_id/task_id下所有生成的triplets计算exploratory memory, 这个memory将会被用在新任务合成阶段,作为指导。
history = [init_obs] #这里将沙盒提供的system prompt也作为历史
....
obs_str = env.step(action) #这一步将推理出的action传入沙盒执行
...
save_history = history[1:]
Triplet(
env_id=env_id,
history="\n".join(save_history=[-3:]),
action=str(action),
observation=obs_str
)
CuES中的任务合成
即通过上一步针对每一个task_id/env_id下,生成的所有triplets 和env_id/task_id对应的探索记忆,来合成新的任务,任务里同样包含预测trajectory steps, 这个预测的完成合成task的路径就会被保存作为ground_truth。
CuES合成任务的验证
同理,合成的任务将在对应的task_id/env_id下执行,这个这行也是multi-turn的执行,最终的主要验证合成任务的可执行性的标准是将执行的steps和合成的task传给一个llm, 即使用llm-as-a-judge的方式判定这个问题是否争取的完成
成功执行的合成任务再改写
注意,这里并不是改写之前成功执行的合成任务的ground_truth, 而是改写执行成功的合成任务的query, 来让他变难还是变简单,再次扩展出新的合成任务。


Top comments (0)