1. WebWalker: 网页点击流逆向工程 (Reverse Engineering from Clickstreams)
核心思想: “从真实用户行为中学习”。它分析已有的用户网页浏览记录(点击流),再反推用户当时想完成什么任务。
工作方式:
收集大量匿名的用户点击流数据(例如,用户访问了一系列页面 A -> B -> C -> D)。
算法会自动将这个序列的起点 (A) 和终点 (D) 识别出来。
然后,它将这个任务定义为:“请从页面 A 导航到页面 D”。
原始的用户点击路径 (A -> B -> C -> D) 则被当作这个任务的“参考答案”或“黄金路径”。
优点:
高度真实性与意图性: 任务直接来自真实用户行为,目标和路径通常有明确语义、符合人类直觉,而且基本可完成。
自动化生成: 一旦有了点击流数据,任务的生成过程是全自动的,不需要人工标注。
缺点:
受限于历史数据: 只能生成过去用户执行过的任务,无法创造新的、探索性的任务,也无法覆盖网站上那些用户很少访问的区域。
路径可能不是最优的: 用户实际的点击路径可能很曲折,甚至包含错误操作。将这样的路径作为“黄金标准”可能会误导 AI Agent 的学习。
多样性和规模有限: 任务的多样性和数量完全依赖原始点击流数据的规模和丰富度,很难凭空扩出海量任务。
隐私问题: 处理用户点击流数据需要非常小心,涉及用户隐私。
2. WebSailor / WebSailor-V2: 基于图谱的合成方法 (Graph-based Synthesis)
核心思想: 既然依赖真实数据有明显上限,那就自己造任务。做法是先把整个网站的地图画出来,再在地图上设计不同路径。
工作方式:
构建网站图谱 (Graph): 首先,通过爬虫技术遍历整个网站,将每一个页面看作图上的一个节点 (Node),将页面之间的链接看作边 (Edge)。
合成任务: 算法在图上随机(或根据特定规则)选择一个起始节点 S 和一个目标节点 E。
定义任务: 任务就是“请从页面 S 导航到页面 E”。算法会确保 S 和 E 之间至少存在一条路径。
V2 的改进: V2 版本通常会增加任务的复杂度,比如不仅仅是页面跳转,可能还要求在路径中必须与特定的网页元素(如某个按钮、某个表单)进行交互。
优点:
极高的可扩展性与多样性: 可以在网站图谱上自动生成大量任务组合,也容易控制任务难度(例如,通过控制 S 和 E 之间的最短路径长度)。
全覆盖性: 可以为网站的任何一个角落生成任务,哪怕是真实用户从未访问过的页面。
无隐私风险: 整个过程只依赖公开的网站结构,不涉及任何用户数据。
缺点:
缺乏真实意图 (Lack of Intentionality): 这是最大问题。随机生成的任务通常没有真实动机。例如,一个任务可能是“从‘隐私政策’页面导航到‘关于我们’页面的某个开发者的介绍链接”,现实里几乎不会有用户这么操作。
任务过于简单化: 早期版本主要关注页面间的跳转,忽略了现代网页中大量的页内交互(如填写表单、拖动滑块、与动态加载的内容互动等),使得任务与真实场景脱节。
3. WebShaper: 形式化的任务建模 (Formalized Task Modeling)
核心思想: 前两种方法要么“太真实而受限”,要么“太自由而失真”。WebShaper 试图折中:一个有意义的任务本质上应该有结构和逻辑。它不是只生成单个任务,而是定义一套语法(任务的结构化范式)。
工作方式:
定义任务范式 (Task Schema/Grammar): 研究人员首先定义一套形式化的、具有层次结构的任务模板。例如,一个“在线购物”的任务可以被形式化地定义为:
SEARCH(商品) -> APPLY_FILTER(品牌) -> SELECT_ITEM(商品名) -> ADD_TO_CART()实例化任务: 基于这套“语法”,程序可以将具体的参数(如“手机”、“苹果”、“iPhone 15”)填充进去,从而生成一个结构化、有意义且语义连贯的任务。
生成任务描述: 同时,可以根据这个结构化的任务,自动生成自然语言的任务描述:“请搜索‘手机’,然后筛选出‘苹果’品牌,选择‘iPhone 15’并将其加入购物车”。
优点:
结构化与组合性: 任务不再是简单的起点和终点,而是由一系列有逻辑关系的子步骤组成,这更接近人类执行复杂任务的思维方式。
兼具真实性与扩展性: 通过精心设计的任务范式,可以生成大量既有真实意图又多样化的任务,结合了 WebWalker 和 WebSailor 的优点。
更好的评测粒度: 可以更精细地评测 AI Agent 的能力。不仅能看它最终是否完成任务,还能评估它是否理解并正确执行了每一个子步骤。
可控的复杂度: 可以通过组合不同语法规则,生成不同结构、不同难度的任务。
缺点:
设计成本高: 定义一套好的、覆盖面广的“任务范式”或“语法”,需要大量的人类专家知识和前期投入,这个过程本身很难完全自动化。
领域局限性: 为电商网站设计的任务范式,可能完全不适用于社交媒体或代码托管网站。需要为不同类型的网站定制不同的范式。
一、 这段话的总体意思是什么?(高层总结)
简单说,这段话描述的是他们如何“精细地调教”一个 AI 模型,让它生成文本(或其他序列化数据)时更稳。
可以把它理解成一套训练策略:
训练理念 (On-policy): 只根据模型当前的表现和状态给反馈,而不是拿旧版本的数据来纠正当前策略。这样能保证指导的即时性和相关性。
指导粒度 (Token-level loss): 不只在整段输出结束后说“好”或“不好”,而是对每一个 Token、每一个决策都给出打分和纠正。
评估标准 (Leave-one-out): 为了判断一个动作有多好,不给一个含糊总分,而是把它和同组里其他样本比较,得到更稳定的估计。
排除干扰 (筛选负样本): 有选择地忽略一些信息量很低的失败样本。它们对学习没什么帮助,反而可能把模型带向格式崩溃。
训练效率 (增大批次): 与其做复杂的动态采样,不如一次看更多样本,用更大的 batch/group size 提供更稳定的监督信号。
最终目标:训练出一个**学习效率高、输出稳定、能力强、不容易“发疯”**的 AI 模型。
二、 关键术语代表什么?(Glossary)
GRPO (Generalized Reinforcement Learning with Policy Optimization): 一种具体的强化学习算法。可以把它看作某个著名算法(如 PPO)的变种或改进版,是他们选择的技术基础。
On-policy (同策略): 一种 RL 训练范式。模型学习时所用的数据,必须是由当前版本的模型自己产生(探索)的。与之相对的是 Off-policy,即可以用历史数据(由旧模型产生)来训练当前模型。On-policy 能确保“学习”和“决策”同步,更稳定。
Token (令牌): 在自然语言处理中,通常指一个单词、一个字或一个子词(subword)。是文本处理的最小单元。
策略梯度损失函数 (Policy Gradient Loss Function): 强化学习的核心。一个数学函数,用来衡量模型当前策略的好坏。通过优化这个函数(使其值变小),可以奖励好的行为(比如生成了高质量的词),惩罚坏的行为,从而让模型的策略变得更好。
优势估计 (Advantage Estimation): 在 RL 中,我们不仅想知道一个动作的回报(Reward)是好是坏,更想知道它比平均水平好多少。这个“好出平均水平的程度”就是“优势 (Advantage)”。高方差(variance)意味着这个估计值很不稳定,时高时低,像噪音,会干扰模型学习。
留一法 (Leave-one-out): 一种统计学方法,常用于交叉验证,这里被借来做优势估计。它的核心思想是,为了评估集合中某一个样本,用集合中所有其他样本构建一个“背景”或“基准”。这能提供更稳定的参照系,从而降低评估方差。
负样本 (Negative Samples): 在训练中,指那些效果不好、我们不希望模型学会的例子。比如,模型生成了一段不通顺的、有事实错误的或者未完成的回答。
格式崩溃 (Format Collapse): 一种在生成式模型(特别是经过 RLHF 训练后)中可能出现的模型退化现象。表现为模型突然无法维持正常输出格式,开始生成大量重复、无意义的符号、语句,或者完全偏离指令的、结构混乱的文本。
批次/组规模 (Batch Size / Group Size): 在一次训练迭代中,同时处理的样本数量。更大的批次通常能提供更稳定的梯度估计,让学习方向更准确,但也会消耗更多的计算资源。
三、 每一步之后,模型变成了什么样子?(演进过程)
下面按步骤看,每次优化会把 AI 模型推向什么状态:
第1步: 遵循 On-policy 范式
之前的模型可能: 会使用一些历史数据进行学习,但这些数据是由旧的、能力较差的自己产生的。学习这些“过时”的经验可能会让模型感到困惑,导致学习不稳定。
采取措施: 严格规定,模型只能从自己“当下”的探索中学习。
之后的模型变成: 更“活在当下”,学习信号更准。它能确保所学经验与当前能力匹配,避免策略和数据分布错位,让训练从一开始就更稳定、收敛更好。
第2步: 采用 Token 级别的策略梯度损失
之前的模型可能: 只能在生成一整段回答后,得到一个总分(比如“这段回答很好”或“很差”)。但它不知道是哪个词用得好,哪个词用得不好。
采取措施: 将奖励和惩罚细化到每一个生成的 Token 上。
之后的模型变成: 语言控制更细,语言模型能力更强。它不再是“知其然不知其所以然”,而是能学到“这个词用得好,下一个词应该怎么接”,“那个词是废话,以后要避免”。这会提高模型的语言流畅度和细粒度控制能力。
第3步: 采用留一法降低优势估计方差
之前的模型可能: 学习信号的“噪声”很大。有时一个还不错的词,可能因为整个句子一般而被“错杀”;有时一个平庸的词,因为句子整体不错而被“过誉”。学习过程非常摇摆。
采取措施: 使用留一法为每个动作的“优势”提供一个极其稳定的参照基准。
之后的模型变成: 学习过程更稳,对好坏的判断更强。它得到的反馈信号更清晰、更可靠。模型能够更确定地学习真正有效的决策,不容易被随机波动带偏,也更快收敛到更优策略。
第4.1步: 筛选负样本
之前的模型可能: 被一些极端的、无意义的负面反馈搞糊涂了。比如,因为它生成的内容太长而超时,就被判定为一次“极差”的生成。模型从中只能学到“不要写太长”,但学不到“如何写得好”。过多的这种无效反馈会让模型变得保守,甚至“自暴自弃”,最终导致“格式崩溃”。
采取措施: 主动忽略掉那些没有信息量的负样本(如因过长而未完成的样本)。
之后的模型变成: 训练容错性更高。它不再被无效负反馈淹没,而是专注于从“有意义的错误”中学习。这能让模型在长时间训练中保持输出结构和格式稳定,避免退化。
第4.2步: 增大批次和组规模
之前的模型可能: 为了追求低方差和充足的信号,可能需要设计复杂的动态采样策略,这会拖慢整个训练流程。
采取措施: 采用一个更简单粗暴但有效的方法——增大批次,一次性看更多的样本。
之后的模型变成: 训练质量较高,速度也更快。通过一次性处理大量不同样本,模型可以从“多样性”里获得稳定学习信号(个别样本的噪音会被大样本平均中和),这是工程效率和算法效果之间比较务实的取舍。