OpenAI:Competitive Programming with Large Reasoning Models

摘要 我们展示了应用于大语言模型(LLM)的强化学习能够显著提升在复杂编码和推理任务上的性能。此外,我们将两个通用推理模型——OpenAI o1 和 o3 的早期检查点——与一个特定领域的系统 o1-ioi 进行比较,后者使用为参加 2024 年国际信息学奥林匹克竞赛(IOI)而手工设计的推理策略。我们使用 o1-ioi 参加了 2024 年 IOI 的现场比赛,并使用手工制作的测试时策略,placed in the 49th percentile。在放宽比赛限制的条件下,o1-ioi 获得了金牌。然而,在评估像 o3 这样的后期模型时,我们发现 o3 在没有手工制作的特定领域策略或放宽限制的条件下获得了金牌。我们的研究结果表明,尽管像 o1-ioi 这样的专门流程产生了可靠的改进,但扩展的通用 o3 模型超越了这些结果,而无需依赖手工制作的推理启发式方法。值得注意的是,o3 在 2024 年 IOI 上获得了金牌,并在 [CodeForces]上获得了与精英人类竞争者相当的评分。总的来说,这些结果表明,扩展通用强化学习,而不是依赖于特定领域的技术,为在推理领域(如Competitive Programming)中实现最先进的 AI 提供了一条稳健的道路。 介绍 Competitive Programming被广泛认为是评估推理和编码能力的一个极具挑战性的基准。解决复杂的算法问题需要高级的计算思维和问题解决技能。此外,这些问题也是可以客观评分的,使其成为评估 AI 系统推理能力的理想试验平台。最近关于使用大语言模型进行程序合成的研究表明,即使是参数规模从 2.44 亿到 1370 亿的相对通用的模型,也可以从自然语言指令生成简短的 Python 脚本。重要的是,性能随着模型规模的增加呈对数线性增长,并且微调可以显著提高准确性。与此同时,Codex,一个早期以代码为中心的大语言模型,擅长 Python 程序生成,并为 GitHub Copilot 提供支持。进一步的进展来自 AlphaCode,它使用大规模代码生成和推理时的启发式方法来解决Competitive Programming任务,以及随后的 AlphaCode2,其改进使 AlphaCode 解决的问题数量几乎翻倍,并使其在 [CodeForces]平台上达到第 85 个百分位。在选择前 10 个提交的解决方案之前,两个 AlphaCode 系统都使用了大规模采样,每个问题最多生成一百万个候选解决方案,并采用手工设计的测试时策略。 自那以后,在利用强化学习来提高大语言模型(LLM)的推理能力方面取得了显著进展。这促使了大型推理模型(LRM)的出现:这些语言模型通过强化学习进行训练,以“推理”和“思考”延长的思维链。特别是,OpenAI 的 o1 及其即将发布的继任者 o3 使用思维链推理来处理复杂的任务,如数学和编码。 ...

February 12, 2025 · 小茄墩

Open R1 项目 第二周总结与展望

摘要 我们现在已经进入了 Open R1 项目 的第二周,该项目旨在重建 DeepSeek R1 缺失的部分——特别是训练管道和合成数据。 分享 OpenR1-Math-220k 的构建:这是我们首个用于数学推理的大规模数据集! 介绍社区在策划用于微调的小型、高质量数据集方面取得的一些令人兴奋的进展,以及关于如何在训练和推理阶段控制推理模型的思维链长度的见解。 OpenR1-Math-220k 数据集 DeepSeek R1 的主要优势之一是它能够通过知识蒸馏将高级推理能力迁移到较小的模型。 DeepSeek 团队通过生成 60 万个推理轨迹并微调一系列 Qwen 和 Llama 模型证明了这一点,表明直接从 R1 进行知识蒸馏可以在无需强化学习的情况下实现具有竞争力的推理性能。 值得注意的是,DeepSeek-R1-Distill-Qwen-7B 在 AIME 2024 上取得了 55.5% 的成绩,超过了像 QwQ-32B-Preview 这样更大的模型。 然而,用于蒸馏的推理轨迹尚未公开,这促使社区独立地重新创建类似的数据集。到目前为止,社区已经发布了多个开放数据集,包括 OpenThoughts-114k、Bespoke-Stratos-17k、Dolphin-R1 和 LIMO。 🐳 隆重推出 OpenR1-Math-220k,这是一个大规模的数学推理数据集,它利用 512 个 H100 在本地生成,且每个问题都对应多个答案。为了创建 OpenR1-Math-220k,我们与 Numina 展开合作,他们开发了广受欢迎的 NuminaMath-CoT 数据集的全新版本。 与现有数据集相比,OpenR1 数据集的新特性:80 万条 R1 推理轨迹:我们使用 DeepSeek R1 为 40 万道问题生成了两个答案。经过筛选的数据集包含 22 万道问题,并带有正确的推理轨迹。 本地运行 512 个 H100: 我们没有依赖 API,而是利用 vLLM 和 SGLang 在我们的科学集群上本地运行生成,每天生成 18 万条推理过程。 基于 NuminaMath 1.5: 我们专注于数学推理过程,并为 NuminaMath 1.5 中的问题生成答案,NuminaMath 1.5 是 NuminaMath-CoT 数据集的改进版本。 自动过滤: 我们应用 Math Verify 来仅保留至少有一个正确答案的问题。我们还利用 Llama3.3-70B-Instruct 作为一个判断器,以检索更多正确的例子(例如,对于答案格式错误,无法使用基于规则的解析器验证的情况)。 我们通过在我们的数据集上微调 Qwen-7B-Math-Instruct 来匹配 DeepSeek-Distill-Qwen-7B 的性能。 通过展示可扩展的、高质量的推理数据生成,我们希望这个流程可以扩展到数学以外的领域,例如代码生成。 ...

February 11, 2025 · 小茄墩

PPO训练技巧总览

Jian Hu’s Blogpost 以下所有实例均可在Jian Hu开发的OpenRLHF 0 - 引言 基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)结合近端策略优化(Proximal Policy Optimization, PPO)[1]是一种用于微调大语言模型(Large Language Models, LLMs)的强大方法。该方法使用可靠且高效的PPO算法,结合人类评估者的反馈来提高模型生成响应的质量。然而,使用PPO训练LLMs存在几个挑战。这些包括维持稳定的训练过程,以及实现比直接偏好优化(Direct Preference Optimization, DPO)[2]更好的性能。因此,我们总结了RLHF与PPO的实用训练技巧,以帮助研究人员更轻松地微调LLMs,确保训练稳定性和高性能。 1 - 使用PPO训练LLM的高级技巧 我们介绍三类PPO训练技巧:1) LLM特定技巧,2) PPO特定技巧,以及3)来自最新研究的创新策略。LLM特定和PPO特定的技巧已在各种RL框架[3, 4]中实现并证明有效。然而,最近论文中提出的创新策略在特定任务上的适用性仍有待验证。 1.1 - LLM特定技巧 Token级KL惩罚:计算强化学习(RL)模型和监督微调(SFT)模型的响应分布之间的每个token的KL散度[11]。这种散度在训练过程中作为惩罚项被纳入奖励函数。具体来说,每个token的奖励表示如下: $$ r(s_t, a_t) = \textbf{I}(s_t =[\text{EOS}])r(x,y)-\beta \text{KL}(t) $$$$ \text{KL}(t) = \log({\pi_{\theta_{\text{old}}}(a_t|s_t)^{\text{RL}}}/{\pi^{\text{SFT}}(a_t|s_t)} $$​ $$t$$ 是否为最后一个token的标识函数。 ​ 代码链接:utils.py 广义优势估计(Generalized Advantage Estimation, GAE):GAE[10]是一种TD(λ)回报估计方法,用于估计PPO中的token级奖励。在实践中,我们通常设置$λ=1$,将GAE方法转换为蒙特卡洛估计方法。 代码链接:experience_maker.py 将GAE的λ和折扣因子$γ$都设为1,这可以减少值网络引入的偏差。 代码链接:OpenRLHF/openrlhf/cli/train_ppo_ray.py 添加SFT损失:在PPO中加入额外的监督下一个token预测损失,与KL散度一起,可以保持SFT模型的预存能力。 代码链接:ppo_trainer.py 1.2 - PPO特定技巧 模型初始化:在使用PPO训练LLMs时,必须初始化两个模型:演员模型(actor model)和评论家模型(critic model)[6, 7]。具体来说,使用监督微调(SFT)模型初始化演员模型,使用奖励模型初始化评论家模型可以确保PPO训练的效率。 代码链接:examples/train_ppo.py Adam学习率:演员模型的Adam学习率大约是SFT模型使用的十分之一。例如,在OpenRLHF中,SFT模型的Adam学习率为5e-6,而演员模型为5e-7。此外,评论家模型的Adam学习率约为SFT模型的两倍,示例率为9e-6。 代码链接:train_ppo_llama.sh ...

February 9, 2025 · 小茄墩

使用 Unsloth 训练您自己的 R1 推理模型

今天,我们很高兴地介绍 Unsloth 中的推理功能!DeepSeek 的 R1 研究揭示了一个“顿悟时刻”,在这个时刻,R1-Zero 通过使用群体相对策略优化(GRPO)自主学习分配更多的思考时间,而无需人类反馈。 我们增强了整个 GRPO 过程,使其使用的 VRAM 比 Hugging Face + FA2 少 80%。这使您能够仅使用 7GB 的 VRAM 和 Qwen2.5(1.5B)重现 R1-Zero 的“顿悟时刻”。 尝试我们的免费 GRPO notebook:Colab 上的 Llama 3.1(8B) 有关其他模型(如 Phi-4)的 GRPO 笔记本,请访问我们的文档 💡 主要细节 使用 15GB VRAM,Unsloth 允许您将任何模型(最多 15B 参数)转换为推理模型,例如 Llama 3.1(8B)、Phi-4(14B)、Mistral(7B)或 Qwen2.5(7B) 最低要求:仅需 7GB VRAM 即可在本地训练您自己的推理模型。 Tiny-Zero 的出色团队展示了您可以使用 Qwen2.5(1.5B)实现自己的“顿悟时刻——但这需要 2xA100 GPU(160GB VRAM)。现在,使用 Unsloth,您只需一台 7GB VRAM 的 GPU 就可以实现同样的“顿悟时刻”。 之前,GRPO 仅支持完全微调,但我们已使其与 QLoRA 和 LoRA 一起工作。 请注意,这并不是微调 DeepSeek 的 R1 蒸馏模型或使用 R1 的蒸馏数据进行微调,Unsloth 已经支持。这是将标准模型转换为完整的推理模型,使用 GRPO。 ...

February 8, 2025 · 小茄墩

R1-Zero类训练中可能没有顿悟时刻 —— 一项初步研究

DeepSeek-R1-Zero最鼓舞人心的结果之一是通过纯强化学习(RL)出现的“顿悟时刻”。在顿悟时刻,模型学习到自我反思等新兴技能,这有助于它进行上下文搜索以解决复杂的推理问题。 在R1-Zero发布后的几天内,几个项目独立地在较小的规模(例如,1B到7B)上“再现”了R1-Zero类训练,并且都观察到了顿悟时刻,这通常伴随着响应长度的增加。我们遵循他们的设置来仔细审查R1-Zero类训练过程,并在本博客中分享以下发现: 💡 a) R1-Zero类训练中可能没有顿悟时刻。 相反,我们发现顿悟时刻(例如自我反思模式)出现在第0个周期,即基础模型。 b) 我们发现基础模型的响应中存在表面自我反思(SSR),在这种情况下,自我反思不一定导致正确的最终答案。 c) 我们通过RL对R1-Zero类训练进行了更深入的观察,发现响应长度增加的现象并不是由于自我反思的出现,而是RL优化良好设计的基于规则的奖励函数的结果。 1. 顿悟时刻出现在第0个周期 1.1 实验设置 基础模型。我们调查了由不同组织开发的广泛的基础模型系列,包括Qwen-2.5, Qwen-2.5-Math, DeepSeek-Math, Rho-Math, 和 Llama-3.x。 提示模板。我们直接使用在R1-Zero和SimpleRL-Zero中应用的模板来提示基础模型: 模板1(与R1-Zero相同) A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>. User: {Question} Assistant: ...

February 7, 2025 · 小茄墩

karpathy新课程-深入探讨 ChatGPT 等大语言模型

新发布的 3 小时 31 分钟 YouTube 视频-免费: 1. 讲师 Andrej 是 OpenAI 的创始成员之一(2015 年),随后担任特斯拉 AI 高级总监(2017-2022 年),现在他是 Eureka Labs 的创始人,该公司正在构建一所 AI 原生的学校。 2. 内容 这是一个面向大众的深度探讨,介绍了支撑 ChatGPT 及相关产品的大语言模型(LLM)AI 技术。视频涵盖了模型开发的完整训练流程,包括如何理解它们的“心理学”模型,以及如何在实际应用中最好地利用它们。 我们涵盖了所有主要阶段: 预训练:数据、分词、Transformer 神经网络的输入输出和内部结构、推理、GPT-2 训练示例、Llama 3.1 基础推理示例 监督微调:对话数据、“LLM 心理学”:幻觉、工具使用、知识/工作记忆、自我认知、模型需要 Token 来思考、拼写、不均衡的智能 强化学习:熟能生巧、DeepSeek-R1、AlphaGo、RLHF(基于人类反馈的强化学习)。 我为视频的“大众受众”系列设计了这一内容,相信即使没有技术背景的人也能理解。它将帮助你直观地了解 ChatGPT 等大语言模型的完整训练流程,并提供了许多示例,或许还能启发你思考当前的能力、现状以及未来的发展方向。 (此外,我大约一年前已经发布了一个“LLM 入门”视频,但那只是随机演讲的重新录制,所以我希望围绕这一主题做一个更全面的版本。两者仍然可以结合观看,因为演讲更深入地探讨了其他主题,例如 LLM 操作系统和 LLM 安全性。) 希望视频有趣且有用! 3. 章节 00:00:00 介绍 00:01:00 预训练数据(互联网) 00:07:47 分词 00:14:27 神经网络输入输出 00:20:11 神经网络内部结构 00:26:01 推理 00:31:09 GPT-2:训练与推理 00:42:52 Llama 3.1 基础模型推理 ...

February 6, 2025 · 小茄墩

Reward Hacking in Reinforcement Learning

摘要 当 强化学习 (RL) AI 智能体 利用 奖励函数中的缺陷或歧义来获得高奖励,而没有真正学习或完成预期的任务时,就会发生reward hacking。reward hacking的存在是因为 RL 环境通常是不完善的,并且准确地指定奖励函数从根本上具有挑战性。随着 大语言模型 推广到广泛的任务,并且 RLHF 成为对齐训练的常用方法,大语言模型的 RL 训练中的reward hacking已成为重要挑战。模型学习修改单元测试以通过编码任务,或者响应包含模仿用户偏好的偏差的实例,可能是 AI 模型在现实世界中更广泛自主应用的主要障碍之一。 过去关于这个主题的大部分工作都相当理论化,主要集中在定义或论证奖励篡改的存在。然而,针对实际缓解措施的研究,尤其是在以人类反馈强化学习(RLHF)和大语言模型(LLM)为背景的情况下,仍然非常有限。 背景 强化学习中的奖励函数 奖励函数定义了任务,奖励塑造对强化学习中的学习效率和准确性有显著影响。为强化学习任务设计奖励函数常常让人感觉像一门“黑暗艺术”。 许多因素导致了这种复杂性: 如何将一个大目标分解成小目标? 奖励是稀疏的还是密集的? 你如何衡量成功? 各种选择可能会导致良好或有问题的学习动态,包括不可学习的任务或可被篡改的奖励函数。关于如何在强化学习中进行奖励塑造的研究由来已久。 例如,在 Ng et al. 1999 年的论文 中,作者研究了如何在 马尔可夫决策过程 (MDP) 中修改奖励函数,以使最优策略保持不变。他们发现线性变换是有效的。 $$ F(s, a, s') = \gamma \Phi(s') - \Phi(s) $$ 这将保证折扣后的 $F$ 的总和,$F(s_1, a_1, s_2) + \gamma F(s_2, a_2, s_3) + \dots$,最终结果为 0。如果 $F$ 是这样一个基于势的塑造函数,那么它是确保 $M$ 和 $M’$ 共享相同最优策略的充分且必要条件。 $$ \begin{aligned} Q_{M^{\prime}}^*(s, a) & =Q_M^*(s, a)-\Phi(s) \\ V_{M^{\prime}}^*(s, a) & =V_M^*(s, a)-\Phi(s) \end{aligned} $$这种形式的奖励塑造允许我们将启发式方法融入到奖励函数中,以加速学习,而不会影响最优策略。 ...

February 6, 2025 · 小茄墩

cuda层面实现kernel的库Liger Kernel

看到一个cuda层面实现kernel的库Liger Kernel,速度极快。 ==直接一行调用GRPO loss:== grpo_loss = LigerFusedLinearGRPOLoss() 以下为Liger Kernel库简介: Liger Kernel 是一个专门为大语言模型(LLM)训练设计的 Triton 内核集合。它可以有效提高多 GPU 训练的吞吐量 20%,并减少 60% 的内存使用。我们已经实现了与 Hugging Face 兼容的 RMSNorm、RoPE、SwiGLU、CrossEntropy、FusedLinearCrossEntropy 等功能,未来还会增加更多。该内核开箱即用,支持 Flash Attention、PyTorch FSDP 和 Microsoft DeepSpeed。 我们还添加了优化的训练后内核,为对齐和蒸馏任务节省高达 80% 的内存。我们支持 DPO、CPO、ORPO、SimPO、JSD 等多种损失函数。 只需一行代码,Liger Kernel 就可以提高 20% 以上的吞吐量,并减少 60% 的内存使用,从而实现更长的上下文长度、更大的批量大小和更大的词汇表。 注意: 基准测试条件:LLaMA 3-8B,批量大小 = 8,数据类型 = bf16,优化器 = AdamW,梯度检查点 = True,分布式策略 = FSDP1,使用 8 个 A100 GPU。 Hugging Face 模型在 4K 上下文长度时开始出现内存不足(Out of Memory, OOM),而 Hugging Face + Liger Kernel 可以扩展到 16K。 ...

February 5, 2025 · 小茄墩

s1: simple test-time scaling

摘要 test-time scaling 利用额外的测试时计算来提高性能。最近,OpenAI 的 o1 模型展示了这种能力,但没有公开分享其方法,这导致了许多复制尝试。 我们寻求实现测试时缩放和强大推理性能的最简单方法。首先,我们策划了一个==小型数据集 s1K==,其中包含 1000 个问题,并配有推理过程的轨迹,这些轨迹基于我们通过消融实验验证的三个标准:难度、多样性和质量。其次,我们开发了==预算强制方法来控制测试时计算,具体做法是强制终止模型的思考过程,或者在模型尝试结束时通过多次附加“等待”来延长其思考过程。这可以引导模型仔细检查其答案,通常会修正不正确的推理步骤==。在对 s1K 上的 Qwen2.5-32B-Instruct 大语言模型进行监督微调,并为其配备预算强制后,我们的模型 s1-32B 在竞赛数学问题上的表现比 o1-preview 高出 27%(MATH 和 AIME24)。此外,使用预算强制缩放 s1-32B 允许在没有测试时干预的情况下将其性能外推:在 AIME24 上从 50% 提高到 57%。 引言 DeepSeek R1 成功地复制了 o1 级别的性能,也采用了通过数百万样本和多个训练阶段的强化学习。然而,尽管有大量的 o1 复制尝试,但没有一个公开复制了清晰的测试时缩放行为。 因此,我们提出问题:==实现test-time scaling和强大的推理性能的最简单方法是什么?== 我们证明,仅使用1000个样本进行下一个 Token 预测训练,并通过一种简单的测试时技术(我们称之为预算强制)来控制思考时长,可以得到一个强大的推理模型,其性能随着测试时计算量的增加而扩展。具体来说,我们构建了 s1K,它包含1000个精心策划的问题,这些问题与从 Gemini Thinking Experimental 中提取的推理轨迹和答案配对。我们对一个现成的预训练模型在我们的少量数据集上进行了监督微调(SFT),仅需在 16 个 H100 GPU 上训练 26 分钟。训练后,我们使用预算强制来控制模型在测试时花费的计算量: (I) 如果模型生成的思考 Token 超过了期望的限制,我们将通过附加一个思考结束 Token 分隔符来强制结束思考过程。以这种方式结束思考会使模型过渡到生成答案。 (II) 如果我们希望模型在问题上花费更多的测试时计算量,我们会抑制思考结束 Token 分隔符的生成,而是将“等待”附加到模型当前的推理轨迹中,以鼓励更多的探索。 有了这个简单的配方——在 1000 个样本上进行 SFT 和测试时预算强制——我们的模型 s1-32B 表现出测试时扩展。此外,s1-32B 是最节省样本的推理模型,并且优于像 OpenAI 的 o1-preview 这样的闭源模型 。我们进行了广泛的消融实验,目标是 (a) 我们选择的 1000 个 (1K) 推理样本和 (b) 我们的测试时扩展。对于 (a),我们发现将难度、多样性和质量度量共同纳入我们的选择算法非常重要。随机选择、选择具有最长推理轨迹的样本或仅选择最大多样性的样本都会导致性能显著下降(在 AIME24 上平均下降约 ->30%)。在我们包含 59K 个示例的完整数据池(s1K 的超集)上进行训练,并不能比我们的 1K 选择提供实质性的提升。这突出了仔细数据选择的重要性,并呼应了先前关于指令微调的发现。对于 (b),我们为测试时扩展方法定义了期望,以比较不同的方法。预算强制导致最佳的扩展,因为它具有完美的控制性,并且具有清晰的正斜率,从而带来强大的性能。 ...

February 3, 2025 · 小茄墩

DeepSeek-R1技术报告详解

几个要点 数据层面 a. 大规模人工标注还是太麻烦了,==探索无需人工标注的方法== -> 跳过SFT直接上RL b. a步骤基础上加上一点人工标注作为==冷启动==,会好很多 -> 小小SFT一下,还是不错 训练层面 a. RL模型:==Group Relative Policy Optimization== b. 奖励:==准确性奖励+格式化奖励==。试过当红的过程奖励和MTCS,最终都放弃 c. 振奋人心的自我进化时刻和==顿悟==时刻! c. SFT冷启动一下效果会更好。也就是==pretrain+SFT+RLHF的pipeline依旧是上限最高的== d. 对小模型来说,==从大模型蒸馏依旧是天花板最高的方案== 模型开源 a. DeepSeek-R1-Zero: DeepSeek-V3-Base作为基础模型+RL b. DeepSeek-R1: DeepSeek-V3-Base+SFT冷启动+RL c. 一堆蒸馏的小模型 方法 概述 先前的研究严重依赖大量的监督数据来提升模型性能。在本研究中,我们证明了即使不使用监督微调(SFT)作为冷启动,通过大规模强化学习(RL)也可以显著提高推理能力。此外,通过加入少量冷启动数据,性能可以得到进一步提升。在接下来的章节中,我们将介绍: (1)DeepSeek-R1-Zero,它直接将强化学习应用于基础模型,无需任何SFT数据; (2)DeepSeek-R1,它从使用数千个长链式思考(CoT)示例进行微调的检查点开始应用强化学习。 (3)将DeepSeek-R1的推理能力提炼到小型密集模型中。 DeepSeek-R1-Zero: 基于基础模型的强化学习 收集监督数据非常费劲,希望探索没有任何监督数据情况下的能力,重点关注通过纯粹的强化学习过程进行的自我进化。 强化学习算法 Group Relative Policy Optimization 为了节省强化学习的训练成本,我们采用了组相对策略优化(GRPO),它放弃了通常与策略模型大小相同的评论家模型,而是从组得分中估计基线。 $$ \begin{equation} \begin{split} \mathcal{J}_{GRPO}(\theta) &= \mathbb{E}{[q \sim P(Q), \{o_i\}_{i=1}^G \sim \pi_{\theta_{old}}(O|q)]} \\ & \frac{1}{G}\sum_{i=1}^G \left( \min \left( \frac{\pi_\theta(o_i |q)}{\pi_{\theta_{old}}(o_i |q)} A_i, \text{clip} \left( \frac{\pi_\theta(o_i |q)}{\pi_{\theta_{old}}(o_i |q)}, 1 - \epsilon, 1 + \epsilon \right) A_i \right) - \beta \mathbb{D}_{KL}\left(\pi_{\theta} || \pi_{ref}\right)\right) , \end{split} \label{eq:GRPO-obj} \end{equation} $$$$ \begin{equation} \mathbb{D}_{KL}\left(\pi_{\theta} || \pi_{ref}\right) = \frac{\pi_{ref}(o_i|q)}{\pi_{\theta}(o_i|q)}- \log\frac{\pi_{ref}(o_i|q)}{\pi_{\theta}(o_i|q)} - 1, \end{equation} $$$$ \begin{equation} A_i = \frac{r_i - {\mathrm mean(\{r_1, r_2, \cdots, r_G\})}}{{\mathrm std(\{r_1, r_2, \cdots, r_G\})}}. \end{equation} $$ ...

February 2, 2025 · 小茄墩