Lecture20
\makecscover
来源审计:从“被动小猫”到开放世界智能体
这堂课的核心问题不是“如何再做一个更强的 Minecraft bot”,而是如何把 foundation model 的广泛先验接入一个能够观察、行动、接受后果并持续积累技能的闭环。Jim Fan 先用经典视觉发展实验说明主动经验的重要性,再把 MineDojo、MineCLIP、Voyager、Eureka 与 VIMA 串成一条系统路线:开放环境提供无穷任务,互联网提供人类知识,foundation model 提供可迁移表示,而 reward、code、memory、curriculum 与 simulator feedback 让这些先验真正进入行动。
官方课堂边界与证据层级
本次重写以 Stanford Online 官方录像 wwQ1LQA3RCU 为课堂顺序来源,课堂日期为 2023 年 10 月 24 日,录像时长 47 分 48 秒,并提供人工 en-US 字幕。61 个教学状态从 1080p 录像中恢复,覆盖所有实际承担概念、架构、结果或例子作用的页面;重复播放帧与纯过渡帧不重复计入。论文只用于核对术语与机制,不能反过来把 2023 年 10 月之后的结果写成课堂已知事实。
| 证据层 | 本地材料 | 在讲义中的职责 |
|---|---|---|
| 官方录像 | 47:48、61 个教学状态 | 决定讲授顺序、视觉证据、demo 与课堂结论边界 |
| 官方人工字幕 | 985 条 caption、timed transcript | 恢复动机、警告、比喻、限制条件和章节转场 |
| Primary sources | MineDojo、Voyager、Eureka、VIMA、VPT、RT-2、RoboCat | 核对训练目标、架构名称、实验对象与公式含义 |
| 覆盖与视觉审计 | manifest、selection TSV、coverage matrix、PDF QA | 证明每张教学图被使用且成品可读,不以“文件存在”替代验收 |
时间边界与证据边界
本文讲的是 2023 年课堂里的 generalist-agent research agenda。MineDojo、Voyager 或 Eureka 在某个 simulator 和指标上取得优势,不等于已经得到跨环境、跨 embodiment 的通用智能;VIMA、RT-2、RoboCat 展示多模态与机器人迁移,也不等于解决了安全、长期记忆、开放世界评价或真实世界数据瓶颈。
Held–Hein 实验:相同视觉输入为何产生不同能力
课程从 Held 与 Hein 的“两只小猫”实验切入,是为了把 embodiment 从“拥有一副机器人身体”提升为更严格的学习条件:\term{embodiment(具身)}指智能体的感知与动作通过身体和环境动力学形成闭环,动作会改变下一时刻看到什么,也会产生可归因的成功、失败与代价。主动小猫控制转盘运动,被动小猫获得近似匹配的视觉流,却没有相同的行动因果关系。
\lecturefigure{slide-01-two-kittens.jpg}{Held--Hein 两只小猫实验:主动行动与被动观看}{官方录像恢复幻灯片 V001;00:03:18}
读图:不要只比较“看了多少”
图中两只小猫获得相近的视觉刺激,但左侧被动个体的运动由右侧主动个体驱动。先比较谁决定动作,再比较视觉流;关键差异不是像素数量,而是 action 与 observation 之间是否存在可学习的因果对应。实验支持主动 sensorimotor experience 很重要,但它本身不能证明所有认知能力都必须从零开始通过 physical interaction 获得。
智能体与环境的最小闭环可以写成:
其中 \(s_t\) 是环境真实状态,\(o_t\) 是可见 observation,\(a_t\) 是 action,\(\pi_\theta\) 是参数为 \(\theta\) 的 policy,\(P\) 是环境动力学,\(r_t\) 是反馈或 reward,\(h_t\) 是由历史构成的内部状态。被动观看只提供部分 \(o_t\);主动学习还拥有“我执行了哪个 \(a_t\),为何得到 \(o_{t+1}\) 与 \(r_t\)”这一因果链。
\teachervoice{讲者把 ChatGPT 称为极其强大的“passive kitten”:它从互联网吸收了巨量人类知识,却主要以观察者身份学习。课堂主张不是丢掉 pretraining、让机器人从零探索,而是在强大的被动先验之上增加主动闭环,使模型学会行动后果、可供性与长期任务。}
本讲的起点不是 pretraining 与 embodiment 二选一
互联网预训练解决“人类已经知道什么”,主动交互解决“我的动作在当前身体与环境中会造成什么”。Generalist agent 需要把二者组合:用 foundation model 提供 broad prior,用环境反馈校准 grounding、skill 与 control。
本章小结
本章确定了来源、时间与证据边界,并用两只小猫实验建立全讲主张:相同 observation 并不等于相同 learning signal,行动控制权与反馈闭环不可缺失。后文所有系统都可以看作在回答同一个问题:如何把 passive internet knowledge 转换为可执行、可验证、可积累的 active competence。
什么是 Generalist Agent:目标、知识与任务跨度
前一章说明了为何需要主动闭环,本章进一步定义闭环要服务的能力范围。\term{generalist agent(通才智能体)}不是“在一个 benchmark 上覆盖很多关卡”的 specialist,而是能面对不断出现的新目标、调用广泛世界知识,并在大量异质任务之间迁移的系统。这里的\term{open-ended objective(开放式目标)}指任务集合没有固定终点,目标可以被用户、环境或智能体持续提出,并且成功标准未必能由一个手写布尔函数完全描述。
从固定 reward 到开放式目标
经典游戏智能体通常接受一个环境、一个动作空间和一个固定 reward;训练可以非常强,却仍只优化预先定义的目标。开放世界要求系统处理新的对象、新组合、新约束和新的语言描述,因此不能把“玩得很好”直接等同于 generality。课程用三条要求把讨论从宣传词汇变成可检查的设计规范。
\lecturefigure{slide-02-generalist-agent-definition.jpg}{Generalist agent 的三项能力要求}{官方录像恢复幻灯片 V002;00:05:39}
读图:三项要求必须同时成立
先看左侧 open-ended objectives:任务不能被一张固定清单穷尽;再看中间 world knowledge:系统要知道对象、规则、常识和人类策略;最后看 massively multi-task:能力必须跨大量任务共享。只满足第三项的多任务 benchmark 仍可能是封闭集合,只满足第二项的聊天模型又缺少行动与反馈。
若任务来自分布 \(\mathcal{T}\),每个任务 \(\tau\) 有目标 \(g_\tau\) 与回报 \(R_\tau\),generalist policy 的训练目标可以抽象为:
其中 \(\tau\) 表示任务,\(g_\tau\) 是语言或多模态目标,\(H_\tau\) 是任务时长,\(r_t^{(\tau)}\) 是任务相关 reward,\(\gamma\) 是时间折扣,\(\theta\) 是共享 policy 参数。公式的难点不在求期望,而在 \(\mathcal{T}\) 本身会增长、reward 未必可写、测试任务又不能只靠记忆训练清单。
\lecturefigure{slide-03-generalist-agent-requirements.jpg}{构建 generalist agent 的三个 ingredients}{官方录像恢复幻灯片 V003;00:05:45}
三个 ingredients 是系统依赖关系
开放环境决定“还能提出什么问题”,internet-scale knowledge base 决定“可以借用哪些人类经验”,foundation model 决定“如何把 observation、语言、记忆与 action 统一表示”。缺少任一环,系统都容易退化为封闭 benchmark、无知识探索或不可迁移的专用控制器。
\teachervoice{讲者先对比 Atari、Go 等 specialist agent,再给出 generalist 的三项要求,是在提醒读者不要用单一高分替代能力定义。一个 agent 即使把固定目标优化到超人水平,只要目标、环境和反馈函数都被冻结,它仍没有回答开放世界中的“下一件值得做的事是什么”。}
Ingredient 1:环境复杂度是能力上限
第一个 ingredient 是\term{open-ended environment(开放式环境)}:对象、地形、规则组合和任务路径足够丰富,智能体不会很快穷尽所有可发现结构。环境不是被动的测试容器;它决定可产生哪些 observation、可执行哪些 action、可构造哪些 curriculum,也决定评估能否暴露长期规划与组合泛化。
\lecturefigure{slide-04-open-ended-environment.jpg}{开放环境决定智能体可以学到的能力上界}{官方录像恢复幻灯片 V004;00:06:18}
读图:环境不是越大越好,而是要有可组合结构
图中强调 agent capability 被 environment complexity 上界限制。先问环境是否包含对象交互、资源依赖、长期状态变化和多条解法,再问地图面积。纯随机的大空间可能只增加搜索成本;真正有教学价值的是规则与对象能够组合,使旧技能成为新任务的 building block。
\lecturefigure{slide-07-minecraft-open-world.jpg}{Minecraft 作为程序生成、可组合的开放世界}{官方录像恢复幻灯片 V007;00:09:39}
Minecraft 的优势不是“流行”本身,而是拥有 procedural generation、采集与制作依赖、战斗、生存、建造和近乎任意的创作目标。读图时先看世界中的资源、工具和空间结构,再看第一人称视角:同一个动作会改变 inventory、地形、危险和后续可达任务。它仍是 simulator,不包含真实机器人全部动力学,却为长期、组合式 agent research 提供了可扩展中间层。
\teachervoice{讲者的表述很直接:agent intelligence 的上限受到 environment complexity 限制。这个判断也提醒我们,若 benchmark 只允许短 horizon、单一 reward 和有限对象,模型再大也可能只是在更快地记住封闭任务,而不是形成开放探索能力。}
Ingredient 2:Internet-scale World Knowledge
第二个 ingredient 是\term{world knowledge(世界知识)}:关于对象属性、规则、配方、因果关系、人类策略和语言约定的可复用先验。对于 Minecraft,它不仅是百科事实,还包括“玩家遇到这个局面通常怎样做”、视频里的操作序列、论坛中的失败经验,以及把自然语言目标拆成技术树步骤的过程知识。
\lecturefigure{slide-05-internet-knowledge-base.jpg}{互联网知识库为智能体提供人类参考手册}{官方录像恢复幻灯片 V005;00:06:57}
读图:knowledge base 不等于网页数量
数据库图标代表的是可检索、可对齐、可转化的知识。先区分 declarative knowledge(物品是什么)与 procedural knowledge(怎样完成任务),再检查它是否能与 agent 当前 observation、inventory 和 goal 对齐。未经 grounding 的网页文本可能正确,却不能直接变成当前世界里的 action。
Ingredient 3:Foundation Model 作为统一接口
第三个 ingredient 是 flexible foundation model。这里的作用不是只生成自然语言,而是把目标、视觉状态、代码、反馈、记忆和 action representation 接进同一个序列建模接口。模型必须既能调用 broad prior,又能接受环境返回的 executable evidence;否则它仍只是离线问答系统。
\lecturefigure{slide-06-foundation-model-for-agents.jpg}{Foundation model 连接开放目标与环境反馈}{官方录像恢复幻灯片 V006;00:07:36}
“Foundation model”不会自动带来 grounding
参数规模与 web pretraining 可以提高语言和视觉先验,但当前对象能否被操作、代码能否执行、动作是否安全、reward 是否被钻漏洞,都必须通过 environment interface 和反馈验证。把生成内容直接当作真实能力,是 agent 系统最常见的 category error。
本章小结
Generalist agent 的定义包含开放目标、世界知识与大规模多任务能力;构建它则需要开放环境、互联网知识库和 flexible foundation model。三者分别决定问题空间、先验来源与统一接口,后续 MineDojo、MineCLIP、Voyager、Eureka 和 VIMA 都是在补齐这套 recipe 的不同环节。
MineDojo:把 Minecraft 变成开放式 Agent Research Platform
有了 recipe,课程先用 MineDojo 把抽象要求落到具体基础设施。它同时提供 environment API、任务生态和 internet knowledge database,使研究者不仅能训练一个 policy,还能研究任务生成、reward learning、知识检索与长期技能。理解这一节时要分清三层:环境能模拟什么、任务怎样定义、互联网材料能提供何种监督。
环境、智能体与知识库三件套
MineDojo 的系统图把开放世界拆成三个互相约束的对象:Minecraft environment 产生视觉与状态,generalist agent 选择 action,internet knowledge base 提供人类示范与文本先验。它不是把网页塞给 agent 就结束,而是要建立 goal、observation、knowledge 和 control 之间的接口。
\lecturefigure{slide-08-minedojo-three-components.jpg}{MineDojo 的开放环境、智能体与互联网知识库}{官方录像恢复幻灯片 V008;00:10:06}
读图:沿数据流而不是沿图标阅读
从环境出发,智能体收到第一人称画面、inventory 与状态;从知识库出发,它得到视频、Wiki、Reddit 等人类材料;agent 的 action 又改变环境。关键问题是两类输入怎样对齐到同一目标,而不是三块组件是否“都很大”。
\lecturefigure{slide-09-three-thousand-tasks-title.jpg}{MineDojo 以 3,000+ 任务组织开放世界研究}{官方录像恢复幻灯片 V009;00:10:24}
“3,000+ tasks”是任务入口,不应读成 generality 已由数量证明。任务规模的价值在于覆盖不同资源、地点、对象、时间跨度和成功条件,让研究者观察 transfer 与 compositionality;若所有任务仍共享同一种浅层模式,数量本身不会产生开放世界能力。
Programmatic Tasks 与 Creative Tasks
MineDojo 的任务空间包含两类互补目标。Programmatic task 可以从 simulator state 自动判断,例如 inventory 是否包含某物、某生物是否被击败;creative task 则可能要求“建造一个好看的房子”或“用有创意的方法灭火”,成功标准含有语义与审美,无法简单写成一个状态谓词。
\lecturefigure{slide-10-task-categories.jpg}{MineDojo 的 simulator、程序化任务与创意任务}{官方录像恢复幻灯片 V010;00:10:48}
术语消化:三类基础设施的职责
| 组件 | 解决的问题 | 与课程主线的关系 |
|---|---|---|
| Versatile simulator | 可观测、可控制、可并行的世界 | 提供主动闭环和可重复实验 |
| Programmatic task | 状态可判定的明确目标 | 适合自动 reward 与大规模训练 |
| Creative task | 难以手写 success predicate 的开放目标 | 迫使系统学习语义 reward 与人类偏好 |
\lecturefigure{slide-11-inventory-tech-tree-combat.jpg}{Inventory、technology tree 与 combat 形成组合任务空间}{官方录像恢复幻灯片 V011;00:11:18}
这页应先读依赖关系:获得高级物品常要求先采集原料、制作工具、解锁配方并处理危险,因此任务不是独立 label,而是共享一棵技术树。图中的物品、工具和生物只是例子;真正支持迁移的是旧 skill 能被组合成更长 horizon 的新 plan。
\lecturefigure{slide-12-creative-task-examples.jpg}{创意任务缺少简单的自动成功判据}{官方录像恢复幻灯片 V012;00:11:57}
Creative 不等于“reward 随便给”
创意任务更难自动评价,但仍需要明确 evidence:目标文本、视频语义、人类偏好、环境约束或 learned reward model。若只用一个模糊分数,policy 可能找到与人类意图无关的 shortcut。开放式评价必须同时报告 reward 来源、失败案例和人工检查。
\lecturefigure{slide-13-firefight-open-ended-demo.jpg}{开放式灭火任务展示语义目标与行动路径}{官方录像恢复幻灯片 V013;00:12:57}
读 demo 时先区分“画面看起来合理”和“任务可验证完成”。视频展示 agent 面对火源、环境结构和工具选择,但单次成功不能给出成功率、泛化范围或 reward robustness。它主要说明开放目标需要把视觉语义、inventory 和多步行动连接起来,而不是只预测下一帧。
\teachervoice{讲者特别区分 programmatic 与 creative tasks:前者容易写 success criterion,后者可能连“什么算完成”都需要语义判断。这个区分直接解释了为什么后面要引入 MineCLIP;learned reward 不是附加模块,而是开放目标进入 RL 的接口。}
互联网数据库:从物品表到人类问题
环境提供体验,但从零 trial-and-error 学会所有配方和策略代价极高。MineDojo 因此把 YouTube、Wiki 与 Reddit 视作人类经验库:视频提供行为与视觉,Wiki 提供结构化事实,论坛提供故障、策略和长尾问题。三种来源的噪声与 grounding 难度不同,不能简单拼接为同质 token。
\lecturefigure{slide-14-internet-knowledge-sources.jpg}{YouTube、Wiki 与 Reddit 构成互补知识来源}{官方录像恢复幻灯片 V014;00:13:06}
读图:三类来源各自补什么
YouTube 强在动态演示,却没有可靠 action label;Wiki 强在物品、配方和规则,却较少呈现失败恢复;Reddit 强在问题解决与长尾经验,却含有噪声和主观判断。一个 generalist agent 需要 source-aware retrieval,而不是把所有内容都当成同一种监督。
\lecturefigure{slide-15-internet-knowledge-scale.jpg}{大规模互联网材料覆盖 Minecraft 的视觉与语义空间}{官方录像恢复幻灯片 V015;00:13:18}
这页的密集缩略图首先说明 coverage,而不是 clean label。读图时比较对象种类、场景与视角多样性;它支持“互联网包含丰富先验”,却不能证明材料已经与 agent state 对齐,更不能证明视频中的行为都正确或可复现。规模必须与去重、质量、版权和任务相关性一起审计。
\lecturefigure{slide-16-minecraft-item-catalog.jpg}{物品、生物与动作目录提供实体层知识}{官方录像恢复幻灯片 V016;00:14:15}
物品目录帮助模型建立 entity vocabulary:哪些对象可采集、可合成、可装备或具有危险。先看类别边界,再看对象与 action 的可供性;知道名称并不等于知道当前视角中哪个像素对应对象,也不等于知道动作前置条件,因此仍需要 perception grounding 和 environment feedback。
\lecturefigure{slide-17-crafting-knowledge.jpg}{Crafting knowledge 把目标物品连接到原料与步骤}{官方录像恢复幻灯片 V017;00:14:24}
制作配方把 declarative fact 变成 procedural constraint。读图时从目标物品反向追踪原料、工具和工作台条件;这种依赖可用于 plan decomposition,也可用于 curriculum。图表支持“互联网可提供结构化步骤”,但执行时仍要检查 inventory、地点与失败恢复。
\lecturefigure{slide-18-potion-recipe-graph.jpg}{药水配方图展示长依赖链与组合计划}{官方录像恢复幻灯片 V018;00:14:33}
这类依赖图的难点不在记住单条 recipe,而在跨多个中间物品维护状态。首先识别目标节点,再沿边回溯所需 ingredient;随后把图上的逻辑顺序映射到世界中的 navigation、collection 与 crafting action。任何缺失资源都可能迫使 agent 重规划。
\lecturefigure{slide-19-wiki-reddit-database.jpg}{Wiki 页面与 Reddit 讨论提供规则和长尾经验}{官方录像恢复幻灯片 V019;00:14:42}
网页与讨论串包含人类解释、替代方案和故障经验,是视频之外的重要 teacher signal。读图时先分事实性页面与意见性帖子,再检查发布时间、版本和上下文。论坛回答可以启发策略,却不应未经验证就执行;environment result 才是当前任务里的最终证据。
\lecturefigure{slide-20-human-open-ended-questions.jpg}{人类提出的开放式问题扩展任务分布}{官方录像恢复幻灯片 V020;00:15:09}
这些问题说明目标分布来自真实玩家,而不是研究者预先设计的有限模板。先看任务是否需要常识、规划或创意,再看能否自动评分。它们支持构建 task proposal 与 retrieval benchmark,但也暴露评价难题:语言目标可能含糊,成功常有多种等价实现。
\teachervoice{讲者把互联网材料称为 reference manual:当人类不知道 Minecraft 中怎样做某件事,也会搜索 Wiki、视频和论坛。Agent 的关键不是“背完整个互联网”,而是在具体 goal 与 state 下找到相关知识,并通过执行结果判断这条建议是否真的适用。}
\lecturefigure{slide-21-generalist-agent-transition.jpg}{从环境与知识库过渡到可学习的 generalist agent}{官方录像恢复幻灯片 V021;00:15:18}
这一过渡页把问题收束为:已有开放环境和人类知识,怎样训练能够理解自然语言目标的 agent?答案首先不是直接预测动作,而是学习一个能把视频与文本目标对齐的 reward model;它把难以手写的语义目标转换成 RL 可使用的反馈。
本章小结
MineDojo 把开放环境、任务生态与互联网知识放进同一平台。Programmatic task 支持自动训练,creative task 暴露语义评价缺口;YouTube、Wiki 与 Reddit 提供互补知识,却必须与当前状态对齐并由执行验证。这为 MineCLIP 的 learned reward 与 Voyager 的 code/memory 路线建立了数据和接口基础。
MineCLIP:把 Internet Video 变成 Language-conditioned Reward
上一章最难的缺口是 creative goal 没有容易手写的 reward。MineCLIP 的策略是学习视频片段与文本描述的共同表示:若视频内容更符合目标文本,相似度就更高,并可作为 policy 学习的 dense feedback。\term{reward model(奖励模型)}是把 trajectory、observation 或 outcome 映射为标量反馈的模型;它近似人类目标,却不是目标本身。
Contrastive Learning 与 InfoNCE
\term{contrastive learning(对比学习)}通过拉近匹配样本、推远不匹配样本来学习表示。MineCLIP 把 Minecraft 视频片段编码为 \(v_i\),把对应文本编码为 \(t_i\);训练时同一对是 positive,batch 中其他文本或视频充当 negative,使语义一致的 video--text pair 在 embedding space 中更接近。
\lecturefigure{slide-22-mineclip-contrastive-reward.jpg}{MineCLIP 学习视频--语言对齐并输出语义相似度}{官方录像恢复幻灯片 V022;00:16:51}
读图:先区分训练信号与部署 reward
训练阶段使用成对 video clip 与 transcript,让匹配对得分高;部署阶段把 agent 最近一段 observation 与目标文本送入模型,得到 similarity reward。图中高分表示语义更接近,不等于任务一定完成;模型可能偏好视觉捷径、背景或常见共现,因此需要 outcome check 与人工审计。
一个简化的 video-to-text InfoNCE loss 为:
其中 \(B\) 是 batch size,\(v_i\) 是第 \(i\) 个视频 embedding,\(t_i\) 是匹配文本 embedding,\(\operatorname{sim}\) 通常为归一化向量的 cosine similarity,\(\tau\) 是 temperature。Loss 只要求匹配对相对更近,并不保证 similarity 已校准为真实成功概率。
对目标文本 \(g\),policy 使用的语义 reward 可写成:
其中 \(E_v\) 与 \(E_t\) 分别是视频和文本 encoder,\(o_{t-k:t}\) 是最近 \(k\) 步 observation window,\(g\) 是语言目标,\(r_t^{\text{MineCLIP}}\) 是 learned reward,\(J(\theta)\) 是 policy objective。Reward 越 dense,探索越容易;但 reward bias 也会被 policy 主动放大。
用 Learned Reward 训练 Language-conditioned Policy
MineCLIP 自身不是完整控制器。系统仍需要 RL policy 根据当前 observation 选择 action,并用 learned reward 更新参数。语言目标因此进入两处:一处定义 reward 的语义方向,另一处可作为 policy condition,使同一个网络根据不同 instruction 执行不同任务。
\lecturefigure{slide-23-rl-with-mineclip.jpg}{MineCLIP reward 驱动 language-conditioned reinforcement learning}{官方录像恢复幻灯片 V023;00:17:03}
for goal in sampled_language_goals:
obs = env.reset(goal)
recent_frames = []
while not env.done():
action = policy.sample(obs, goal)
next_obs = env.step(action)
recent_frames.append(next_obs.frame)
reward = mineclip.similarity(recent_frames[-k:], goal)
replay.add(obs, action, reward, next_obs, goal)
policy.update(replay)
obs = next_obs
Reward hacking 会随 policy 变强而更严重
若 MineCLIP 把某种背景、镜头运动或局部物体误当成成功,RL 会系统性寻找该 shortcut。必须同时记录 programmatic state、人工视频审查、不同 seed、对抗目标和 reward trajectory;“reward 上升”只是训练信号改善,不自动等于人类意图完成。
\teachervoice{讲者把 MineCLIP 描述为从 passive internet video 到 active reinforcement learning 的桥:视频提供语义相似度,agent 再通过环境互动学习控制。这个桥很重要,但课堂也没有声称 learned reward 完美;它仍受数据偏差、目标歧义和视觉 shortcut 限制。}
结果:任务成功与视觉鲁棒性
结果页要回答两个不同问题:MineCLIP reward 是否足以训练出完成若干语言目标的 policy,以及 policy 是否只记住训练场景。第一类证据看任务 success 或相对 baseline,第二类证据看 zero-shot visual condition。两者都应限定在测试任务、seed 和 Minecraft distribution 内。
\lecturefigure{slide-24-mineclip-results.jpg}{MineCLIP-conditioned RL 在多类任务上的结果}{官方录像恢复幻灯片 V024;00:19:00}
读图:先看列定义,再看相对提升
表格比较不同任务和方法的 success 指标。先确认每列任务是否使用相同 evaluation protocol,再比较 MineCLIP reward 与其他 reward/baseline;关键结论是视频--语言表示可提供可用训练信号,而不是所有任务都已被解决。平均数会隐藏失败任务与 seed variance,不能据此推断开放世界 generality。
\lecturefigure{slide-25-policy-robustness.jpg}{学习到的 policy 在未见视觉条件下保持一定鲁棒性}{官方录像恢复幻灯片 V025;00:19:57}
读图:鲁棒性来自任务不变性,不是任意 OOD 能力
图中展示不同天气、光照、生物群系或视觉条件。应先比较目标行为是否保持,再检查这些变化是否仍属于训练世界规则。结果支持 policy 没有完全绑定单一画面,但不能证明它能迁移到新游戏、新动作空间或真实机器人;visual robustness 与 embodiment transfer 是不同层次。
\teachervoice{课堂对结果的态度是“reward representation 有用”,而不是“Minecraft 已完成”。讲者强调 unseen visual condition 下的鲁棒性,因为这更接近 foundation-model transfer;但他也把 MineDojo、Voyager 和 Eureka 称为仅仅 scratching the surface。}
本章小结
MineCLIP 用 contrastive video--language learning 把自然语言目标转换为 dense reward,再由 RL policy 在环境中学习控制。它证明 internet video 可以成为 active learning 的监督来源,同时也暴露 learned reward 的核心风险:相似度不等于成功,policy 会放大 reward model 的偏差,结果必须与程序化状态和人工审计共同解释。
Voyager:Code-as-Action、Memory 与 Automatic Curriculum
MineCLIP 通过 reward 把语义接入低层 policy,但长 horizon 开放探索仍需要更可组合的 action representation。Voyager 选择\term{code-as-action(代码即动作)}:LLM 不逐帧输出键盘指令,而是生成调用 Minecraft API 的 JavaScript 程序。程序可以包含循环、条件、错误处理和已有 skill 调用,从而把长动作序列压缩成可执行、可检查的符号单元。
为什么要把视频与世界“stringify”
互联网视频包含丰富行为,却没有干净的 action label;像素到连续控制的逆问题通常多解。课程用“stringify”表达一种接口策略:把环境状态、inventory、错误和可用 API 转成语言/代码上下文,让 LLM 在其擅长的 token space 中推理,再由工具执行并返回真实结果。
\lecturefigure{slide-26-stringify-video.jpg}{从视觉轨迹到可供语言模型处理的符号接口}{官方录像恢复幻灯片 V026;00:21:39}
读图:stringification 是接口工程,不是信息无损转换
图中从动态视频转向文本/符号模块。转换必须选择哪些 state 暴露给模型、怎样描述空间关系、哪些 action 封装为 API。它提高可读性和可组合性,却可能丢失细粒度几何、时序与接触信息,因此更适合高层 Minecraft skill,不应被直接视为所有机器人低层控制的通用答案。
\lecturefigure{slide-27-mineflayer-javascript.jpg}{Mineflayer JavaScript API 提供可执行 Minecraft 控制接口}{官方录像恢复幻灯片 V027;00:22:15}
Mineflayer 把导航、采集、制作和交互封装成程序调用。读图时先看函数参数与对象名称,再看执行结果如何返回;API 让代码可测试、可重用,也建立 safety boundary。与此同时,封装质量决定能力上限:API 不暴露的细节,LLM 无法仅靠更聪明的 prompt 补回。
\teachervoice{讲者指出视频很 rich,却没有 action label;Voyager 因此不尝试直接从每一帧恢复键盘操作,而是利用 Mineflayer 的 symbolic interface。这个选择把“理解目标”与“执行程序”连接起来,也让 syntax error、runtime error 和 task progress 都能成为模型可读反馈。}
Voyager Data Flow 与 Iterative Prompting
Voyager 不是一次 prompt 生成一段代码后就结束。它维护当前 state、目标、可用 skill 与执行反馈,反复让 actor 生成或修订程序;environment 则用真实状态、错误和 progress 约束模型。\term{critic(批评器)}在这里是判断任务是否完成、失败在哪里并给出改进方向的模块,不是只给一个风格化意见。
\lecturefigure{slide-28-voyager-data-flow.jpg}{Voyager 的 curriculum、code action、environment 与 memory 数据流}{官方录像恢复幻灯片 V028;00:23:12}
读图:沿闭环追踪四类状态
从 curriculum 产生 task,actor 读取 observation 与 relevant skills,生成 code;environment 执行后返回 world state 与 error;critic 判断 progress;成功 skill 写入 library。关键不是有多少 GPT-4 调用,而是 task、execution、evaluation、memory 四类状态是否形成闭环。
\lecturefigure{slide-29-code-as-action.jpg}{GPT-4 生成可执行程序控制 embodied agent}{官方录像恢复幻灯片 V029;00:23:27}
这页把传统 action token 替换为完整程序。先看 actor 输出中的函数调用、循环与检查,再看 agent 在世界中的长时间行为;代码把数百步动作压缩为一个 skill,但也引入 prompt injection、无限循环、破坏性调用和 dependency error 等软件风险,必须在 sandbox 与 API allowlist 中执行。
\lecturefigure{slide-30-iterative-prompting.jpg}{环境反馈、执行错误与自验证驱动代码迭代}{官方录像恢复幻灯片 V030;00:24:09}
Iterative prompting 不等于错误会自动消失
反馈只有在可观测、可归因且及时返回时才有用。若 environment state 缺失、critic 误判、程序改变世界后无法恢复,下一轮 prompt 可能在错误前提上继续修补。系统应限制 retry budget、保留 execution trace,并把不可逆 action 单独审批。
task = curriculum.propose(agent_state, skill_library)
while retry_budget > 0:
skills = skill_library.retrieve(task, agent_state)
program = actor.write_code(task, agent_state, skills)
result = sandbox.execute(program, allowed_api=mineflayer_api)
verdict = critic.check(task, result, agent_state)
if verdict.success:
skill_library.store(task, program, result.preconditions)
break
agent_state = result.updated_state
actor.reflect(verdict.feedback, result.errors)
retry_budget -= 1
\teachervoice{课堂把 Voyager 称为 no-gradient architecture:运行时不更新模型参数,而是通过 prompt、执行反馈和外部 memory 改善行为。这里的“learning”主要发生在 skill library 与 curriculum state 中,不能与 neural-network weight update 混为一谈。}
Critic 与 Skill Library:把一次成功变成可复用能力
若每个任务都从空白 prompt 开始,开放探索会重复支付相同成本。\term{skill library(技能库)}是持久化的 executable memory:保存成功程序、用途、前置条件与检索描述,使后续任务能组合旧技能。Critic 则把 environment evidence 转成完成判断和修订信号,防止仅凭代码“看起来正确”就写入 memory。
\lecturefigure{slide-31-critic-self-reflection.jpg}{Critic 根据任务进展生成 self-reflection}{官方录像恢复幻灯片 V031;00:24:45}
读图:critic 需要引用可验证状态
有效 feedback 应说明缺少哪个物品、当前位置为何不满足条件、执行到哪一步失败,而不是笼统说“try again”。先检查 verdict 引用了哪些 environment observation,再检查建议是否能改变下一次程序。Critic 本身也可能 hallucinate,因此 success 最好由 state predicate 与语义判断共同决定。
\lecturefigure{slide-32-skill-library-overview.jpg}{Skill library 持久化越来越复杂的 executable procedures}{官方录像恢复幻灯片 V032;00:25:27}
技能库的价值来自 compositionality:早期的采集、制作、导航技能可被更高层任务调用。读图时先看技能粒度是否足够稳定,再看 skill 之间的依赖;过细会造成 prompt 膨胀,过粗则难以重用。每个 skill 还需要前置条件、side effect 与 failure mode,而不只是函数名。
对 task query \(q\)、skill description \(d_i\) 与当前状态 \(x\),一个简化检索规则为:
其中 \(E\) 是 embedding encoder,\(\operatorname{sim}\) 衡量任务与技能语义相关性,\(\operatorname{cost}(i,x)\) 表示当前状态下调用技能的资源或风险,\(\lambda\) 控制相关性与成本的权衡,\(i^*\) 是被检索的 skill。只用语义相似度可能取回名称相近却前置条件不满足的程序。
\lecturefigure{slide-33-retrieve-old-skills.jpg}{检索并组合旧 skill 完成更复杂的新任务}{官方录像恢复幻灯片 V033;00:26:36}
这页展示 retrieve--compose 路径:新任务先触发相关旧程序,再由 actor 生成组合逻辑。先检查旧技能是否真的被调用,再比较从零生成与复用的 token、错误和时间成本。它支持 external memory 能累积 competence,却不证明程序在环境版本变化后仍可靠;library 需要 regression test 与失效机制。
\teachervoice{讲者强调 skill library 让 Voyager 不是“一次性 ChatGPT demo”。成功代码被保存并在更难任务中检索,系统因此在不更新权重的情况下获得长期能力增长。这里最值得迁移的思想是把 agent memory 存成可执行且可验证的 artifact,而不是只存自然语言摘要。}
Automatic Curriculum:谁来决定下一步学什么
开放世界没有固定关卡顺序,因此还需要\term{automatic curriculum(自动课程)}:根据当前 inventory、已解锁技能、探索历史和 novelty,提出“现在可行但尚未完成”的下一任务。它同时控制难度和探索方向;若任务太难会浪费调用,太易则无法扩展能力。
\lecturefigure{slide-34-automatic-curriculum.jpg}{Automatic curriculum 沿 Minecraft 技术树扩展能力}{官方录像恢复幻灯片 V034;00:27:18}
读图:curriculum 是 task policy
图中从基础资源走向高级物品,显示任务之间有前置依赖。先看当前 inventory 与 unlocked skills,再看候选任务是否带来新状态;好的 curriculum 不是简单追逐最高 reward,而是在 feasibility、novelty、usefulness 和 risk 之间平衡。
\lecturefigure{slide-35-proposed-next-task.jpg}{Curriculum 根据状态提出可行且新颖的下一任务}{官方录像恢复幻灯片 V035;00:28:30}
任务选择可抽象为:
其中 \(\mathcal{C}(x_k)\) 是当前状态 \(x_k\) 下候选任务集合,\(F\) 是 feasibility,\(N\) 是相对 memory \(M_k\) 的 novelty,\(U\) 是未来复用价值,\(R\) 是风险或预计成本,\(\alpha,\beta,\eta,\rho\) 是权重。真实 Voyager 用 LLM proposal,而公式用于揭示评价维度,不表示系统显式计算了这些标量。
闭环结果:技术树速度与地图覆盖
将 curriculum、actor、critic 和 skill library 组装后,Voyager 才成为开放探索系统。结果页分别衡量技术树 progress 与 spatial exploration;前者接近技能/资源解锁,后者接近地图覆盖。两类指标互补,但都只是 Minecraft 内的 proxy。
\lecturefigure{slide-36-voyager-all-pieces.jpg}{Voyager 的 curriculum、prompting 与 skill library 组成闭环}{官方录像恢复幻灯片 V036;00:29:03}
Voyager 的最小闭环
Curriculum 提出任务,actor 写代码,environment 返回执行证据,critic 判断进展,成功程序进入 skill library,新的 memory 又改变下一任务和下一段代码。任何一环缺失,系统都会退化为无方向探索、一次性生成、不可验证执行或无法积累的 demo。
\lecturefigure{slide-37-open-ended-exploration-results.jpg}{Voyager 在技术树与开放探索指标上的进展曲线}{官方录像恢复幻灯片 V037;00:30:21}
读图:先看横轴预算,再看曲线含义
横轴代表迭代或探索预算,纵轴对应解锁物品、里程碑或任务 progress;先比较 Voyager 与 baselines 在相同预算下的上升速度,再看最终平台。曲线支持 memory/curriculum/code loop 在 Minecraft 中更高效,不支持“参数模型已获得通用智能”或对真实机器人直接外推。
\lecturefigure{slide-38-map-coverage.jpg}{地图覆盖比较显示开放探索的空间范围}{官方录像恢复幻灯片 V038;00:31:06}
地图中的颜色与区域表示不同 agent 的探索轨迹或覆盖范围。先比较可达面积,再检查是否只是随机游走;结合任务完成与资源获取,才能判断探索是否有用。更大覆盖支持 agent 主动访问更多状态,却不说明每个区域都被理解,也不代表学会了长期因果模型。
\teachervoice{讲者在展示结果时强调 Voyager 更快解锁 technology tree、探索更大地图;同时这仍是 Minecraft progress。把指标放回环境边界很重要:地图覆盖和物品数量是开放探索 proxy,不是 general intelligence 的完整测量。}
本章小结
Voyager 用 code-as-action 把长行为压缩为可执行程序,以 environment feedback 和 critic 反复修订,用 skill library 积累 executable memory,再用 automatic curriculum 决定下一任务。它展示了一种无需更新模型权重的持续改进架构,但能力仍受 API、critic、memory hygiene、task proposal 与 Minecraft 指标约束。
Eureka:让 LLM 设计 Reward,让 RL 学会低层控制
Voyager 适合 symbolic action interface,但 dexterous control 需要连续高频动作,直接让 LLM 写每个 motor command 并不现实。Eureka 改变接口层级:LLM 阅读 simulator environment code,生成 reward program;内层 RL 再用梯度学习 policy。\term{reward reflection(奖励反思)}指模型根据训练曲线、分项 reward 和失败行为修订 reward code,而不是对自然语言答案做泛泛自评。
Hybrid-gradient Architecture
Eureka 把系统分成外层黑盒 code search 与内层白盒 policy optimization。外层 LLM 不需要反向传播,负责提出可执行 reward;内层 RL 使用 simulator 并行采样和 gradient update,把该 objective 转成动作。两层通过训练统计连接,因此语言模型可以“指导”低层神经控制而不直接产生高频 action。
\lecturefigure{slide-39-eureka-architecture.jpg}{Eureka:环境代码、reward program 与 RL policy 的双层架构}{官方录像恢复幻灯片 V039;00:33:36}
读图:先分清谁在优化什么
LLM 外层搜索 reward code,RL 内层在固定 reward 下优化 policy。环境代码向 LLM 暴露 observation、state 与可计算量,训练结果再返回 performance summary。Eureka 的贡献不是让 GPT-4 自己学会 motor control,而是让它改写可微学习系统的 objective interface。
双层过程可以写成:
其中 \(\phi_k\) 是第 \(k\) 轮 reward program,\(r_{\phi_k}\) 是其计算出的 reward,\(\theta_k^*\) 是内层 RL 学到的 policy 参数,\(J\) 是 expected return,\(\mathcal{H}_k\) 是 reward 与训练反馈历史。外层改代码、内层改权重,二者的学习机制不同。
\teachervoice{讲者把 Voyager 称为 no-gradient architecture,把 Eureka 称为 hybrid-gradient architecture:GPT-4 外环负责选择 reward function,神经网络内环通过 RL gradient 学 control。这个区分避免把“LLM 参与系统”误写成“所有组件都由 LLM 端到端训练”。}
Reward Reflection 与 In-context Evolution
一段 reward code 能运行,不代表它会诱导正确行为。Eureka 因此把各 reward term、训练成功率和 policy behavior 压缩为反馈,让 LLM 判断哪些项过强、过弱或方向错误,再生成新代码与 hyperparameter。反思的对象是可执行 specification 及其后果。
\lecturefigure{slide-40-eureka-reward-reflection.jpg}{Eureka 根据训练反馈反思 reward 设计}{官方录像恢复幻灯片 V040;00:35:24}
读图:反馈必须能定位 reward term
页面包含 reward code、训练统计与反思文本。先检查每个 term 的尺度和符号,再看 policy 是否通过异常姿态获得高分;最后判断新建议是否针对 observable failure。只有总回报而没有 term-wise metrics,LLM 很难区分“目标没达到”和“某个 shaping 项主导了优化”。
\lecturefigure{slide-41-eureka-reward-code-diff.jpg}{Reward code 与权重在多轮反馈中演化}{官方录像恢复幻灯片 V041;00:35:36}
代码 diff 展示 specification 被逐步修改。先比较新增/删除的 reward term,再比较 coefficient 与 normalization;关键不是代码变长,而是训练行为更接近任务意图。图中改进支持 in-context reward evolution 有效,却不能保证对新 simulator、真实 robot 或 adversarial state 同样稳健。
history = []
for generation in range(max_generations):
candidates = llm.generate_reward_programs(env_code, history)
evaluated = []
for reward_program in candidates:
policy, metrics = train_rl(env, reward_program)
rollout_summary = evaluate_policy(policy, env)
evaluated.append((reward_program, metrics, rollout_summary))
best = select_valid_candidate(evaluated)
reflection = llm.reflect(best, term_wise_metrics=True)
history.append((best, reflection))
LLM-generated reward code 必须经过隔离与验证
执行前应做 syntax/type check、API allowlist、数值范围检查和 timeout;训练后应检查 NaN、reward saturation、unsafe contact、constraint violation 与 held-out scenario。Reward optimization 会主动寻找 loophole,因此“代码可运行”只是最低门槛。
Dexterity 与 Simulator Scaling
Eureka 的结果重点在 dexterous manipulation:任务包含精细姿态、接触与连续控制,难以由 LLM 直接逐步生成。大规模 Isaac simulator 并行训练使每个 reward candidate 能获得相对快速、可比较的 feedback;因此算法收益依赖于可靠 environment code 与足够计算资源。
\lecturefigure{slide-42-dexterity-scaling.jpg}{Dexterous tasks 与 Isaac simulator scale 支撑 reward search}{官方录像恢复幻灯片 V042;00:35:54}
读图:结果与基础设施不能拆开解释
左侧曲线比较 learned/evolved reward 与 human baseline 的任务表现,右侧显示 simulator scaling。先确认横轴任务或资源规模、纵轴 success/score,再比较是否跨任务稳定领先。结论是 LLM reward search 可在给定 simulator 中产生强 objective;它不证明 simulation-to-real gap、传感器噪声或硬件安全已解决。
\teachervoice{讲者强调 Eureka 在若干 dexterous tasks 上超过 human-designed reward,同时指出 simulator scale 让外层搜索可行。换句话说,方法能力来自 LLM prior、environment source code、RL optimizer 与并行基础设施的共同作用,不能只归功于 prompt。}
本章小结
Eureka 把 LLM 放在 objective-design 层,把 gradient-based RL 留在连续控制层。Reward reflection 根据真实训练反馈修改可执行 specification,形成外层 code search 与内层 policy learning 的 hybrid architecture。它为高层 reasoning 与低层 motor control 建立接口,也要求严格 sandbox、term-wise metrics、constraint audit 和 simulator boundary。
从 Internet-scale Video 学什么:Representation、Reward 与 Action
MineCLIP、Voyager 和 Eureka 之后,课程转向更长期的研究方向。互联网视频便宜、动态、覆盖大量人类行为,却来自第三人称或不受控视角,通常没有 agent action、state 或 grounding label。问题不应被笼统称为“从视频模仿”,而要拆成三种监督目标:学 representation、学 reward、或推断 action 后做 behavior cloning。
展望:两条 Foundation-Agent 路线
讲者把未来方向分成两类:继续从 internet-scale video 学习,以及构建原生 multimodal foundation model。前者扩展行为先验,后者统一文本、图像、视频、声音与 action 接口;两者最终都要回到 active loop,接受 embodiment 和 environment feedback。
\lecturefigure{slide-43-looking-forward-title.jpg}{从当前系统过渡到 generalist-agent 长期方向}{官方录像恢复幻灯片 V043;00:37:36}
这页像一道章节门:前面的系统已经证明 reward、code 与 memory 可行,后面要追问怎样扩大数据和 modality。读图时不要把 chat/image/music 的成功直接外推到 agents;行动数据包含因果、控制和风险,不能只通过更多静态 token 自动获得。
\lecturefigure{slide-44-two-foundation-directions.jpg}{Internet-scale video learning 与 multimodal foundation models}{官方录像恢复幻灯片 V044;00:38:09}
两条路线最终在 action grounding 汇合
Video learning 提供动态行为与人类策略,multimodal model 提供统一 token/interface;但系统仍需知道“哪个 action 由谁执行、对当前 embodiment 产生什么后果”。没有 active grounding,模型最多学到 observational correlation。
互联网视频的优势与缺失
视频比文本更接近行为,因为它展示物体随时间变化、手如何接触工具、任务如何展开。可是观看者不知道相机外发生了什么,也看不到精确 action command、力、触觉或失败重试。\term{behavior cloning(行为克隆)}是用示范中的 observation--action pair 监督训练 policy;没有 action label 时,必须先恢复或近似这些 pair。
\lecturefigure{slide-45-internet-video-properties.jpg}{Internet video:便宜、动态、丰富,但缺少 action 与 grounding}{官方录像恢复幻灯片 V045;00:38:48}
术语消化:从视频学习的三条路径
| 路径 | 学到什么 | 关键缺口 |
|---|---|---|
| Representation | 可迁移的时空与语义表征 | 表示好不等于会控制 |
| Reward learning | goal 与 trajectory 的相似度/价值 | reward bias 与 shortcut |
| Action / behavior cloning | 从 observation 预测可执行 action | 视频通常没有动作标签,且 embodiment 不同 |
\lecturefigure{slide-46-internet-video-example.jpg}{第三人称互联网视频展示行为,却隐藏控制信号}{官方录像恢复幻灯片 V046;00:39:39}
这个例子应先看手、对象和结果之间的时序,再问真正的 action 在哪里。像素只显示表面运动,不提供关节命令、施力、意图或相机外状态;同一视觉轨迹可能由多种控制产生。视频适合学 semantic dynamics,却需要额外假设才能变成某个 robot 的 motor supervision。
\teachervoice{讲者称互联网视频“cheap, dynamic, rich in human behavior”,随后马上补充被动观察者拿不到 action labels 与 grounding。这个转折很重要:数据规模解决 coverage,不自动解决 causal control;主动小猫问题在这里重新出现。}
路径一:Video Representation Learning
第一条路线先学习时空 representation,再用少量 domain-specific agent data fine-tune。模型可以通过 future prediction、masked modeling 或 video--text alignment 获得对象、动作阶段和场景变化的表示,但控制能力仍取决于下游 action data 与 interface。
\lecturefigure{slide-47-representation-from-video.jpg}{从视频预训练 representation,再适配 agent 任务}{官方录像恢复幻灯片 V047;00:40:18}
读图:预训练与控制微调承担不同职责
图中的大规模视频阶段提供一般动态特征,后续少量 agent data 才把 representation 接到具体 action space。先比较冻结 encoder、fine-tune 与从零训练,再检查下游数据规模;若没有 action-grounded evaluation,只能说明 feature 有用,不能说明 policy 已学会任务。
路径二:从视频学习 Reward
上一条路线只要求视频预训练出有用表示,本节进一步让视频直接参与任务优化:MineCLIP 把“轨迹看起来多像目标”变成 reward,指导 agent 在自己的环境里探索动作。它不要求视频与机器人共享精确 control,因此比逐动作模仿更容易跨接口;代价是必须验证视觉语义能否迁移,并防止 policy 主动利用 reward model 的盲点。
\lecturefigure{slide-48-reward-from-video.jpg}{Video-language 与 goal-conditioned representation 可形成 learned reward}{官方录像恢复幻灯片 V048;00:40:45}
读图:reward transfer 比 action transfer 更弱也更灵活
视频只需告诉系统“结果看起来是否更接近目标”,具体 action 由 policy 在自己的 embodiment 中探索,因此可以跨控制接口;但 reward 只约束 outcome appearance 时,可能忽略路径、安全或隐含条件。读结果时必须同时检查 final state、trajectory 与 constraint。
路径三:恢复 Action 并做 Behavior Cloning
第三条路线最接近 imitation learning:从视频推断 latent action 或使用模型标注 action,再训练 behavior policy。Video PreTraining(VPT)在 Minecraft 中通过少量带键鼠标签的数据训练 inverse dynamics model,再给大规模无标签视频补 action;这种方法依赖观察视角、动作空间和 embodiment 足够匹配。
\lecturefigure{slide-49-behavior-cloning-from-video.jpg}{从视频恢复 action label,再进行 behavior cloning}{官方录像恢复幻灯片 V049;00:42:33}
若 \(z_t\) 表示从相邻帧推断的 latent action,真实 agent action 为 \(a_t\),可以写成:
其中 \(q_\psi\) 是 inverse/latent-action model,\(p_\omega\) 把 latent action 映射到 embodiment \(e\) 的可执行动作,\(\pi_\theta\) 是 behavior policy,\(g\) 是目标。若视频与 agent 的 embodiment、camera 或 action support 不匹配,\(p_\omega\) 会成为主要误差源。
Observation similarity 不等于 action identifiability
仅凭两帧图像通常不能唯一恢复施力、速度和隐藏接触;第三人称视频还存在相机运动与遮挡。Action reconstruction 应报告 uncertainty,并允许 downstream policy 通过环境交互修正,而不是把伪标签当作 ground truth。
\teachervoice{讲者把 representation、reward 与 action learning 明确分成三条路线,是为了避免“用视频训练 agent”成为空泛口号。三者对 action label 的需求逐步增加:representation 最弱,reward 居中,behavior cloning 最强;系统应按可获得监督选择接口。}
本章小结
Internet video 提供廉价、动态、覆盖广的人类行为数据,却缺少 action label 与 grounding。Representation learning 学特征,reward learning 学目标相似度,behavior cloning 尝试恢复动作;三条路线的监督强度、迁移假设和失败模式不同。规模可以扩大先验,但 active environment feedback 仍是验证行动因果的关键。
Multimodal Foundation Agents:VIMA、RT-2 与 RoboCat
视频路线扩大数据,另一条路线则统一接口。\term{multimodal prompting(多模态提示)}指 prompt 中交错出现文本、图像、目标帧、视频示范或其他感知 token,模型据此输出 action;它不是给语言 prompt 附一张装饰图片,而是让视觉对象、约束和示范直接成为任务规范。
统一 Text、Image、Video、Audio 与 Action
一个 multimodal foundation model 试图把不同输入映射到共享序列空间,再依据上下文生成语言或 action。对 agent 而言,优势是任务可由“把这个物体放到像这张图的位置”或“一次示范”表达;挑战是每种 modality 的 tokenization、时序、精度和 safety 需求不同。
\lecturefigure{slide-50-multimodal-foundation-model.jpg}{统一文本、图像、视频、声音与 action 的 foundation model 愿景}{官方录像恢复幻灯片 V050;00:43:03}
读图:统一 token space 不等于统一物理意义
图中 modality 都进入一个模型,但文本 token、视觉 patch 和 robot action 的误差代价不同。先看输入怎样编码,再看输出是否受到 action-space constraint;统一 architecture 有利于 knowledge transfer,却仍需要 modality-specific encoder、controller 与 safety validation。
\lecturefigure{slide-51-multimodal-prompting-robots.jpg}{机器人任务可以由交错的视觉与语言 prompt 定义}{官方录像恢复幻灯片 V051;00:43:48}
Prompt 可包含目标物体图片、位置示意、禁止区域和自然语言关系。读图时先区分“指代哪个对象”“目标状态是什么”“动作必须满足哪些 constraint”,再观察 robot trajectory。多模态 prompt 提升 specification bandwidth,但也引入 ambiguity;模型必须 grounding 到当前 scene,而不是匹配训练中的外观模板。
VIMA:Visual Manipulation with Multimodal Prompts
VIMA 把视觉对象 token 与文字 token 交错输入 Transformer,并 autoregressively 预测 robot action。它的重点不是单个 manipulation benchmark,而是用同一 model/interface 表达 visual goal reaching、novel concept grounding、one-shot demonstration 和 constraint satisfaction 等不同任务族。
\lecturefigure{slide-52-vima-architecture.jpg}{VIMA 将 multimodal prompt、observation 与 action 统一建模}{官方录像恢复幻灯片 V052;00:44:33}
读图:prompt encoder 与 action decoder 的连接
先看 prompt 中图像和文本如何组成 token sequence,再看当前 observation 如何加入上下文,最后看 action decoder 输出 pose 或 control token。VIMA 的共享 Transformer 促进任务间迁移,但 benchmark 中的 tabletop world、object set 和 action representation 仍限定其证据范围。
若 prompt token 为 \(p_{1:m}\)、历史 observation 为 \(o_{1:t}\)、action sequence 为 \(a_{1:t}\),autoregressive objective 可写成:
其中 \(p_{1:m}\) 可以交错包含文本与视觉对象,\(o_{1:t}\) 是当前及历史 observation,\(a_{<t}\) 是先前动作,\(T\) 是 episode horizon,\(\theta\) 是模型参数。公式表达统一 conditional sequence modeling,并不意味着所有 action error 都与语言 token error 等价。
四类 Prompt 能力的证据边界
下面四页分别测试视觉目标、临时概念、一次示范和约束。应把它们视为 task specification 的不同形式,而不是四个互不相关的 demo;读图时持续检查 prompt 提供了什么信息、模型需要 grounding 哪个对象、评价是否只在受控 tabletop distribution 内进行。
\lecturefigure{slide-53-vima-visual-goal-reaching.jpg}{VIMA:由目标图像指定希望达到的视觉状态}{官方录像恢复幻灯片 V053;00:44:51}
视觉目标减少了语言描述空间关系的负担。先比较初始 scene 与目标 image,再检查动作后对象相对位置;成功说明模型能把目标外观映射为 manipulation sequence,但无法单独证明它理解了更广泛的物理因果或真实世界遮挡。
\lecturefigure{slide-54-vima-concept-grounding.jpg}{VIMA:在 prompt 内 grounding 临时定义的新概念}{官方录像恢复幻灯片 V054;00:45:03}
“wug”“blicket”等无既定语义的词通过 prompt 中的视觉对应被临时定义。读图时先识别 token 与对象的 binding,再看模型是否把关系迁移到 action;这支持 in-context concept grounding,而不是证明模型预训练时已经见过这些词的含义。
\lecturefigure{slide-55-vima-one-shot-demonstration.jpg}{VIMA:从一次视觉示范推断任务并复现}{官方录像恢复幻灯片 V055;00:45:15}
一次示范提供的是 trajectory-level specification。先看 demonstration 中对象变化,再看 test scene 是否具有新位置或新实例;成功要求模型抽取关系而非复制绝对坐标。单次 demo 能否推广仍依赖任务族、摄像机和 object distribution 的相似性。
\lecturefigure{slide-56-vima-constraint-satisfaction.jpg}{VIMA:在视觉约束下完成 manipulation}{官方录像恢复幻灯片 V056;00:45:48}
Constraint prompt 告诉 agent 哪个区域、对象或路径不能触碰。读图时不只检查最终目标,还要检查 trajectory 是否违反中间约束;这说明 agent evaluation 必须包含过程安全,而不是只看 final frame。受控桌面约束仍不同于真实机器人的 force、collision 与 human safety。
\teachervoice{讲者说 VIMA “tokenizes everything”,用 interleaved image--text tokens 统一过去需要专门 pipeline 的任务。这句话应理解为 modeling interface 的统一,而不是物理控制问题消失;视觉 grounding、action decoder 与环境约束仍各自承担责任。}
RT-2 与 RoboCat:扩大 Robot Data 与 Transfer
课程最后用 RT-2 与 RoboCat 展示同一 recipe 的后续实例。RT-2 把 web-scale vision-language knowledge 与 robot demonstration co-fine-tune,并把 action 表示为可生成 token;RoboCat 训练统一 policy 跨任务和 robot embodiment。两者扩大了 transfer 证据,但仍依赖具体数据混合与 action support。
\lecturefigure{slide-57-rt2-robocat.jpg}{RT-2 与 RoboCat 延伸 multimodal generalist robot 路线}{官方录像恢复幻灯片 V057;00:46:12}
术语消化:三种 generalist-agent 接口
| 系统 | 主要接口 | 核心机制与边界 |
|---|---|---|
| Voyager | JavaScript code-as-action | 长 horizon、可组合、依赖 symbolic API |
| Eureka | LLM-generated reward code | 用 RL 学连续控制、依赖 simulator 与 reward audit |
| VIMA / RT-2 / RoboCat | Multimodal token 到 robot action | 共享表示与数据迁移、依赖 action grounding 和 embodiment coverage |
\teachervoice{讲者把 RT-2 解释为先在 internet-scale data 上预训练,再用 human-collected robot demonstrations fine-tune;RoboCat 则展示单一 policy 跨机器人与任务。课堂把它们当作 promising follow-up,而没有宣称 generalist robotics 已经完成。}
本章小结
Multimodal prompting 扩大了任务 specification:文字、目标图像、临时概念、示范和 constraint 都可进入统一上下文。VIMA 证明多类 tabletop task 可由同一 Transformer/action interface 表达,RT-2 与 RoboCat 进一步扩大 web prior、robot data 和 embodiment transfer。统一模型带来共享表示,但 grounding、control、safety 与 evidence boundary 仍必须单独检查。
总结与延伸:Generalist Agent 是一个闭环系统,不是单个模型
整堂课从主动小猫出发,最终形成一套可迁移的系统分解:开放环境产生未穷尽的任务,互联网知识提供人类先验,foundation model 处理语言与多模态上下文,reward/code/action interface 把先验接到行为,critic 和 environment feedback 判断后果,skill memory 与 curriculum 支持长期积累。任何单点 benchmark 都只能验证其中一部分。
课程收束:MineDojo、Agent Learning 与 Multimodal Prompts
结尾三页回顾论文、agent demo 与 multimodal prompt,并把这些工作放回共同目标。它们不是相互替代的“产品列表”:MineDojo 提供 environment/data substrate,MineCLIP 学语义 reward,Voyager 学可执行 memory,Eureka 搜索 reward program,VIMA/RT-2/RoboCat 则探索统一多模态 action model。
\lecturefigure{slide-58-minedojo-paper-overview.jpg}{MineDojo 论文回顾:开放环境与互联网知识基础设施}{官方录像恢复幻灯片 V058;00:46:24}
读图:把 collage 还原为系统职责
页面同时出现环境截图、互联网素材与论文信息。先辨认 environment、knowledge database 和 benchmark 三层,再问每层提供什么 evidence;它支持平台覆盖广,却不能单凭 collage 判断 policy quality。真正的验收来自任务协议、reward、baseline 与可复现 artifact。
\lecturefigure{slide-59-agent-learning-examples.jpg}{开放世界 agent learning 的多种行为与任务示例}{官方录像恢复幻灯片 V059;00:46:27}
示例展示 agent 能在不同场景执行采集、制作、探索或交互。读图时不要把多张成功截图相加成 success rate;它们负责说明 task diversity,定量能力仍应看 held-out evaluation、failure distribution 与预算。开放世界尤其需要报告 agent 没有做成什么。
\lecturefigure{slide-60-multimodal-prompts-summary.jpg}{Multimodal prompt 统一视觉目标、语言关系与机器人任务}{官方录像恢复幻灯片 V060;00:46:51}
这页回到 VIMA 的核心接口:prompt 不是固定 instruction string,而是可组合的多模态 task program。先看 token 类型与对象 binding,再看模型输出 action;它支持 specification flexibility,却也增加 prompt ambiguity、adversarial input 和 safety validation 的责任。
Grand Challenge:Human-level Minecraft AI
课程用 human-level Minecraft 作为 community challenge 收尾。这里的“human-level”不能缩减为击败某个 boss 或获得一组物品,而应包含语言理解、长期记忆、创意建造、社交协作、失败恢复、跨版本适应与在新目标上持续学习。它是研究方向,不是课堂声称已经达到的里程碑。
\lecturefigure{slide-61-human-level-minecraft-challenge.jpg}{Grand Challenge:Human-level Minecraft AI}{官方录像恢复幻灯片 V061;00:47:18}
不要让“Human-level”被一个 leaderboard 偷换
单项速度、地图覆盖或物品数量只能测局部能力。更完整的评价应分开报告 task proposal、knowledge use、planning horizon、memory retention、creative outcome、robustness、safety 和 human collaboration,并在未见 seed、版本和目标上测试。
\teachervoice{讲者最后把 human-level Minecraft 留给整个社区,并半开玩笑说这也是“在工作中玩 Minecraft”的理由。真正的教学含义是:当前工作只触及开放世界 agent 的表面,下一阶段需要更强视频学习、多模态基础模型与主动闭环,而不是把一组漂亮 demo 当成终点。}
八维系统检查表
为了把本讲迁移到其他 agent 项目,可以对任何系统逐项审计以下八个维度。它们覆盖 problem、data、model、interface、learning loop 与 evidence,能够防止团队把 foundation model 的语言流畅度误当成完整的行动能力。
| 维度 | 核心问题 | 典型失败 |
|---|---|---|
| Environment | 世界是否有可组合规则与长期状态? | 封闭 benchmark 被误称开放世界 |
| Goal | 目标如何提出、消歧并判断完成? | 模糊 prompt 被 reward shortcut 利用 |
| Knowledge | 哪些先验来自 web、video、human 或 simulator? | 来源噪声与当前状态不匹配 |
| Interface | 输出是 action、code、reward 还是 skill? | 抽象层级与任务动力学不匹配 |
| Feedback | 谁提供可验证的 success、error 与 constraint? | critic 自说自话、reward 未校准 |
| Memory | 成功经验怎样存储、检索、更新与失效? | 错误 skill 长期污染后续任务 |
| Curriculum | 下一任务怎样平衡可行性、新颖性与风险? | 太难停滞、太易重复、只追 reward |
| Evidence | 指标证明什么,又没有证明什么? | simulator 局部优势被外推为通用智能 |
把本讲压缩成一句话
Generalist agent 不是“一个更大的模型”,而是把开放环境、互联网先验、可执行接口、真实反馈、持久记忆与自动课程连接成闭环;模型的价值取决于它能否在这个闭环里把 passive knowledge 变成经过验证的 active competence。
最值得保留的四个工程判断
本讲虽然以 Minecraft 和机器人为例,但四个判断可以直接迁移到 tool-using agents、browser agents、coding agents 和 scientific agents。它们共同强调:系统能力由 environment/interface/evidence 决定,而不是由模型名称单独决定。
- 先选 action abstraction。 高频 motor control、API call、程序和 reward specification 需要不同接口;不要让模型承担不适合其时间尺度的职责。
- 把 execution result 当成 truth source。 语言自评只能辅助,真正的 success 应来自环境状态、测试、constraint 与人工审查。
- 把 memory 存成可验证 artifact。 代码、skill、trajectory 和 reward program 应带前置条件、版本、测试与失效策略。
- 把指标限制写进结论。 曲线和 demo 只支持其评估协议内的主张;跨环境、跨 embodiment 与安全能力需要独立证据。
拓展阅读
\begingroup \footnotesize
- Fan et al., MineDojo: Building Open-Ended Embodied Agents with Internet-Scale Knowledge
- Wang et al., Voyager: An Open-Ended Embodied Agent with Large Language Models
- Ma et al., Eureka: Human-Level Reward Design via Coding Large Language Models
- Jiang et al., VIMA: General Robot Manipulation with Multimodal Prompts
- Baker et al., Video PreTraining (VPT): Learning to Act by Watching Unlabeled Online Videos
- Brohan et al., RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control
- Reed et al., RoboCat: A Self-Improving Foundation Agent for Robotic Manipulation
阅读这些工作时,可以反复应用八维检查表,并额外追问:训练数据是否包含 action consequence,evaluation 是否覆盖 failure,memory 是否会累积错误,reward 是否可能被钻漏洞,接口是否适合当前 embodiment,以及结论是否越过了 simulator、任务集合与时间边界。 \endgroup