Cursor核心成员圆桌:用强化学习训练编码超级模型 _ 2万字全文·附视频米兰体育- 米兰体育官方网站- 世界杯指定投注平台
2025-06-12米兰体育官方网站,米兰体育平台网址,米兰体育官网链接,米兰体育app下载网址,米兰,米兰体育,米兰集团,米兰体育官网,米兰体育app,米兰体育网页版,米兰真人,米兰电子,米兰棋牌,米兰体育APP,米兰体育下载,米兰体育APP下载,米兰百家乐,米兰体育注册,米兰体育平台,米兰体育登录,米兰体育靠谱吗,米兰平台,米兰比賽,米兰买球成员D: 不是在使用每个工具之后。我的意思是,我认为,人们训练这些推理模型的理由是什么,以及他们通常是如何训练的?我觉得,O1的第一个版本可能只是在比赛,比如竞争性编程,以及数学问题上进行训练。而且,那里的想法是,你希望最终能得出一个好的答案。要么你可以向用户展示这个答案,要么你可以把它展示给负责绘制图形和验证答案的东西。在此之前,你想要花费大量的tokens进行思考。我想知道对于智能体轨迹,你实际上最终要向用户展示或验证的是什么?要么是一些文字,可能是用户可以看到的。但很多时候,如果你没有问它一个问题,你只是要求它做出改变。这就像,实际上就是编辑工具,对吧,当它,像,编辑一个文件时。所以我想知道当你只是要求模型,像,编辑代码时,你是否真的需要存在单独推理的这个概念。并且,就像,在训练时,它在那些工具调用中随便做什么。你让它随便做什么,而不是限制,像,某些,像,好的推理部分。
成员C: 另一个,像,非常有趣的工具,我们正在考虑的是查看PR(Pull Request)以及代码库中的人们一直在做什么。我的意思是,像,你可以对这些模型抱有的一个,像,心理模型是,它们是有能力的工程师,他们就像,总是处于,像,他们入职的第三天,对吧?并且他们获得,像,两天的,像,背景信息来,像,尝试并且,像,尽快地在代码库中进入状态。然后,你知道,第三天,他们被要求做一些事情。并且,你知道,如果你处于那种情况,我认为,你知道,一个合理的做法将是,你花那两天时间试图理解你的同事一直在做什么,以及,像,为什么他们做出他们正在做出的改变,以及他们在接触什么代码。并且目前,你知道,这些模型并没有真正围绕着查看PR和查看人们一直在做什么而构建。它们更倾向于以大块的方式消费代码并搜索相关的代码,这与这些模型的预训练方式非常匹配。并且很明显,这仍然是解决方案的重要组成部分。但是,能够查看PR(Pull Request,拉取请求)的内容对我们来说也很有意思。
成员C: 我的意思是,趋势一直是上下文变得越来越长。注意力机制非常擅长利用长上下文,但是,你也知道,代价也越来越高。在技术层面,我认为长上下文一个非常有趣的方向是,如何保持成本的降低?如何在多个提示词中复用缓存的上下文?这与最新的、能力比以往更强的模型尤其相关。但是,如果你没有巧妙地缓存和使用上下文,总成本可能会非常高。而且,当你开始研究专业的代码库时,对于你想要做的事情来说,存在着大量的相关上下文。我认为这在某种程度上对代码来说可能是特殊的,因为,如果你是ChatGPT,或者你是Plot应用,在大多数情况下,用户带来的上下文并不多。他们有一个问题,通常是100个token。因此,你主要关心的是如何将人类知识的总和压缩成权重,然后用它来为问题提供一个好的答案。你不太关心如何获取一百万个token,并从中获得可以有效利用的有用信息。因为这并非你的大多数用户所关心的事情。
成员D: 我们喜欢它。是的,我们称之为鱿鱼注意力机制,因为我们把它想象成一只鱿鱼,其中每个文档都像一根不同的触手。是因为这个原因吗?你觉得呢,你为什么这么想?我不知道。我完全不知道。谁想出了“鱿鱼注意力”这个名字?卢卡斯。这不太像卢卡斯会起的名字。“鱿鱼注意力”的想法是,你基本上想要独立地关注每个文档。比如,每个文档都会独立地关注自身。然后在最后,你再关注所有内容。这样做的优点是,你现在可以随意替换文档。如果你关心大约10、20、30个文档,我就可以缓存每个文档的键和值,而无需重新支付预填充的成本。而且我可以仅仅在推理时替换它们。这对于产品中的各种功能来说,都非常有用,对吧?比如,对于标签页,当你检索信息并希望快速完成时,它就非常有用。对于代理,同样,当您使用语义搜索并阅读文件时,这将非常、非常有用。
成员B: 所以过程-奖励模型的问题在于,就像它们被实践的那样,你只是将轨迹传递给一个模型,然后在每个步骤得到一个分数,问题是,模型在仅仅提供分数方面并不那么准确,尤其是在中间步骤。它必须做出预测,比如,对于某些任务,这是否会导致正确的答案?所以发生的情况是,一旦你对这个奖励模型,这个验证器模型施加优化压力,你只能优化一小部分。这和我们正在讨论的问题类似。但是如果你有这些真实信号,你可以像求解数学题一样,持续不断地进行优化。因此,你可以执行,比如,10...我认为DeepSeek R1执行了10000个强化学习步骤。大多数基于人类反馈的强化学习(RLHF)流程只执行,比如,100个。一旦你能执行10000个强化学习步骤,模型就能开始学习真正有趣的、与起点截然不同的行为。所以,是的,关键真的在于你能对它施加多少优化。而使用PRM,你可以施加一些,但它受到限制。它远不如使用这些真实结果奖励来得多。
成员A: 强化学习基础设施有趣的一点是,它自然比训练基础设施更复杂,因为它建立在训练基础设施之上。就像,你用来为 SFT 或预训练执行前向和反向传播的所有工具,你需要它们在强化学习中也能高效运行。另一个有趣的事情是,现在你还需要推理组件。而且,在这个你不像关注用户那样关注延迟的机制中,推理组件也必须进行优化。你关注的是吞吐量。你关注的是尽可能大规模地获得尽可能多的 rollout(轨迹)。对于像 GRPO 这样的算法,情况甚至更有趣,因为你有一个提示,并且你正在为此提示生成许多、许多、许多补全。然后,最终你将针对该提示的所有这些补全进行反向传播。对于数学,开源社区的人们并不真正关心这个事实,因为在数学领域,大多数开源社区的人都在为解决这个数学任务而优化。极其微小的提示。因此,您可以简单地前后浏览所有序列,而无需担心您一直在重新计算提示。但是对于我们的情况,当您拥有代理时,我们有这些巨大的提示。因此,我们不能承受向后遍历所有共享相同提示的这些回滚。因此,您开始进行优化,即与推理服务器更多地重叠,例如,您可能已经从数据加载器中获得了提示,并且在推理服务器已经在处理回滚时,您开始从该提示中获取 KVs。回滚返回后,您已经拥有 KVs,因此您只需转发已返回的回滚即可。然后,当您进行反向传播时,您已经为您的提示准备好了 KVs,因此您可以重用这些 KVs,并且只对这些 KVs 进行一次反向传播。因此,您可以进行许多以前从未真正完成过的有趣的优化。
成员B: 是的,所以我想gRPO和PPO之间的高层次区别在于,PPO有一个价值函数。所以这对于那些没有大量GPU内存的人来说有一些优势,因为现在你不需要存储额外的价值函数权重。但与此同时,你正在进行更多的浮点运算,因为你必须为gRPO进行多次展开。所以存在一种浮点运算和内存之间的权衡。是的,是的。所以就像你可以训练模型,它不会内存溢出(oom),但训练会花费很长时间。而且,是的,最终,我觉得尤其是在这种数学代码的设置中,价值函数无论如何都不是非常准确的。就像你在做的,这又回到了PRM(概率路线图)的事情,你在模型中进行前向传递,它提供了一些价值。它并不是真的那么准确。所以它对你没有太大的帮助。相反,如果你只是进行多次展开,并取平均值并将其用作问题的价值,那么这比你将获得的价值更好。它更稀疏,但它确实有帮助。
成员B: 或者他们正在基于真实数据进行强化学习。我认为在那篇论文中,他们也尝试了针对概率路线图(PRM)进行强化学习。是的,有趣的是,为什么这没有产生我们在R1中所看到的相同结果,当他们在DeepSeek数学时代进行这项研究时。你认为是什么原因?所以,有一些关于此的有趣工作,比如尝试理解这一点。看起来似乎与基础模型的能力有关,比如预训练数据中的某些东西,或者模型本身已经足够好,基础模型会进行一定程度的回溯。也许不是很频繁,百分之一的样本或者类似的情况。但这已经足够了,一旦你进行大量的强化学习,它就会捕捉到这些行为并放大它们。所以可能仅仅是因为基础模型已经足够好,以至于它们可以学习这些有趣的行为。