当前位置: 首页 > news >正文

论文分享➲ arXiv2025 | TTRL: Test-Time Reinforcement Learning

TTRL: Test-Time Reinforcement Learning

TTRL:测试时强化学习

在这里插入图片描述
https://github.com/PRIME-RL/TTRL

📖导读:本篇博客有🦥精读版🐇速读版🤔思考三部分;精读版是全文的翻译,篇幅较长;如果你想快速了解论文方法,可以直接阅读速读版部分,它是对文章的通俗解读;思考部分是个人关于论文的一些拙见,欢迎留言指正、探讨。最佳排版建议使用电脑端阅读。


目录

  • `🦥精读版`
    • Abstrct
    • 1 引言
    • 2 测试时强化学习(Test-Time Reinforcement Learning,TTRL)
      • 2.1 方法
      • 2.2 多数投票奖励函数
    • 3 实验
      • 3.1 实验设置
      • 3.2 主要结果
      • 3.3 训练动态
    • 4 讨论
      • 4.1 问题一:TTRL 的性能究竟有多强?
      • 4.2 Q2: TTRL 为什么有效?
      • 4.3 TTRL 可能在什么时候失效?
    • 5 相关工作
      • 5.1 测试时扩展(Test-Time Scaling, TTS)
      • 5.2 用于推理的强化学习(RL for Reasoning)
      • 6 结论
      • 7 局限性与未来工作
    • A 术语定义
      • A.1 测试时训练(Test-Time Training, TTT)
      • A.2 测试时推理(Test-Time Inference, TTI)
    • B 超参数(Hyper-parameters)
  • `🐇速读版`
    • 1. 论文的动机
    • 2. 提出的方法
  • `🤔思考`

🦥精读版

Abstrct

  本文研究了在没有显式标签的数据上,针对大型语言模型(LLMs)推理任务进行强化学习(RL)的问题。该问题的核心挑战在于推理阶段无法获得真实标签(ground-truth),从而难以进行奖励估计。尽管这一设定看起来难以实现,我们发现测试时缩放(Test-Time Scaling, TTS)中的一些常用方法(如多数投票)可以提供出人意料地有效的奖励信号,足以驱动RL训练。为此,我们提出了一种新方法——测试时强化学习(Test-Time Reinforcement Learning, TTRL),该方法可在无标签数据上使用RL对大型语言模型进行训练。TTRL通过利用预训练模型中已有的先验知识,实现了模型的自我进化。我们的实验证明,TTRL能在多种任务和模型上持续提升性能。特别地,在AIME 2024测试集中,TTRL仅使用无标签的测试数据就使Qwen-2.5-Math-7B模型的pass@1性能提升了约159%。更值得注意的是,虽然TTRL仅依赖于Maj@N这一指标进行监督,但其表现已经稳定超过初始模型的上限,并接近那些在带标签测试数据上直接训练的模型性能。我们的实验结果验证了TTRL在多任务上的普适性和有效性,并展示了其在更广泛任务和领域中的应用潜力。
在这里插入图片描述

1 引言

  测试时缩放(Test-Time Scaling, TTS)(Zhang 等,2025b;Balachandran 等,2025)代表了一种新兴趋势,用于增强**大型语言模型(LLMs)**的推理能力。近期研究(Snell 等,2024;Liu 等,2025a)表明,相比于预训练阶段的模型扩展(Kaplan 等,2020),TTS在计算效率上更具优势,能够以相同的计算资源实现更优的性能表现。大量研究已经探讨了通过奖励模型(reward models)来提升TTS性能(Lightman 等,2023;Yuan 等,2024;Zhang 等,2025a;Zhao 等,2025),其方法包括在解码阶段使用多数投票(Stiennon 等,2020;Nakano 等,2021)和**蒙特卡洛树搜索(Monte Carlo Tree Search)**等策略。最近的一些领先的大型推理模型(Large Reasoning Models, LRMs),例如 DeepSeek-R1(Guo 等,2025)和 OpenAI 的 o1 模型(El-Kishky 等,2025),表明**强化学习(Reinforcement Learning, RL)**在提升长链式思维(chain-of-thought, Wei 等,2022)方面发挥着关键作用。然而,这些 LRM 模型在处理无标签、持续涌现的新数据流方面仍面临巨大挑战。例如,尽管 OpenAI 的 o3 模型在 ARC-AGI-1 基准上取得了 75.7% 的成功率,但在更具挑战性的 ARC-AGI-2(2025) 上却只能解决 4% 的问题。

  这些关于测试时缩放(TTS)的研究清晰地展示了训练时行为与测试时行为之间的差异,尤其是在关注训练阶段的基于强化学习(RL)的方法中尤为明显。然而,仅在大规模训练数据上应用RL方法,在应对新出现的、结构复杂的输入特征或分布变化时显得极其不足。最近,测试时训练(Test-Time Training, TTT)方法逐渐受到关注,该方法允许模型在测试时根据新输入的数据进行参数更新(Sun 等,2019;2024;Behrouz 等,2024;Akyürek 等,2024)。这些方法为使用RL在测试时微调模型、从而提升其对未见数据的泛化能力,提供了一个自然且前景广阔的方向。然而,这又引入了一个关键问题:在测试时,如何获得奖励信号或验证机制?随着现实世界任务在复杂性与规模上不断增长,为RL大规模标注此类数据已变得愈发不可行。这为当前领先模型的持续学习带来了巨大障碍。

  为了解决上述问题,我们提出了测试时强化学习(Test-Time Reinforcement Learning, TTRL)方法,它通过强化学习实现测试阶段的训练。TTRL 在 rollout 阶段使用重复采样策略,以精确估计标签并计算基于规则的奖励,从而使RL可在无标签数据上开展训练。通过引入有效的多数投票奖励机制,TTRL 能够在缺乏真实标签的情况下,促使RL训练高效且稳定地进行。如前所述,现实任务的不断演化必然会导致无标签数据比例越来越高,而TTRL则直接应对了在缺少明确监督的条件下训练模型的问题,研究模型在该关键场景下的自我探索与学习能力。从本质上讲,TTRL使模型能够生成自身的学习经验、估算奖励并在过程中不断提升性能。

  在实验中,将 TTRL 应用于 Qwen2.5-Math-7B 模型,在 AIME 2024 数据集上实现了 159% 的性能提升(从 13.3 提升至 43.3),并在 AMC、AIME 以及 MATH-500 三个数据集上平均提升 84%。这一提升完全是通过自我进化(self-evolution)实现的,无需任何标注训练数据,且性能提升能够进一步推广至其他任务。TTRL 不仅提高了 pass@1 的表现,还通过多数投票机制改进了 测试时缩放(TTS)。此外,我们的初步实验表明,TTRL 在不同规模和类型的模型上都表现出良好的通用性,并且可以与现有的 RL 算法集成使用。我们还发现,TTRL 具有较高的性能上限这一优势。这些发现表明,TTRL 在大幅减少对人工标注依赖的同时,具备实现持续学习和大规模无监督强化学习的潜力。以下是几个关键结论:

  • 要点总结(Takeaways)
  1. 多数投票为 TTRL 提供了有效的奖励估计方式(参见第 §3 节)。
  2. TTRL 能够超越自身训练信号和性能上限(Maj@N),并在效果上接近使用真实标签直接训练测试数据的模型(参见第 §4.1 节)。
  3. 在无监督条件下也可以实现高效且稳定的强化学习(参见第 §4.2 节)。
    在这里插入图片描述

2 测试时强化学习(Test-Time Reinforcement Learning,TTRL)

  与传统强化学习不同,传统RL中智能体从已知的奖励信号中学习,而TTRL是在无标签的测试数据上进行训练。换句话说,模型必须在没有显式监督信号的情况下学习和适应。我们将该任务定义如下:

  我们研究的问题是:在测试阶段,使用强化学习对预训练模型进行训练,而不依赖真实标签(ground-truth labels)。我们将这一设定称为测试时强化学习(Test-Time Reinforcement Learning)。

2.1 方法

  图 2 展示了我们的方法 TTRL 如何应对这一挑战。在状态由提示词 x x x 表示的情况下,模型会根据策略 π θ ( y ∣ x ) \pi_\theta(y \mid x) πθ(yx)(参数为 θ \theta θ)采样生成一个输出 y y y。为了在没有真实标签的情况下构造奖励信号,我们通过重复采样,从模型中生成多个候选输出 { y 1 , y 2 , … , y N } \{y_1, y_2, \ldots, y_N\} {y1,y2,,yN}。然后,我们从这些候选输出中得出一个共识输出 y ∗ y^* y,比如通过多数投票或其他聚合方法生成,该输出作为最优动作的代理。环境随后根据采样动作 y y y 与共识动作 y ∗ y^* y 之间的一致性来提供奖励 r ( y , y ∗ ) r(y, y^*) r(y,y)。因此,RL 的目标是最大化期望奖励: max ⁡ θ E y ∼ π θ ( ⋅ ∣ x ) [ r ( y , y ∗ ) ] (1) \max_\theta \mathbb{E}_{y \sim \pi_\theta(\cdot \mid x)} [r(y, y^*)]\tag{1} θmaxEyπθ(x)[r(y,y)](1)接着通过梯度上升法更新参数 θ \theta θ
θ ← θ + η ∇ θ E y ∼ π θ ( ⋅ ∣ x ) [ r ( y , y ∗ ) ] (2) \theta \leftarrow \theta + \eta \nabla_\theta \mathbb{E}_{y \sim \pi_\theta(\cdot \mid x)} [r(y, y^*)]\tag{2} θθ+ηθEyπθ(x)[r(y,y)](2)其中 η \eta η 表示学习率。这种方法使得模型能够在推理过程中进行自我调整,在无需标签数据的情况下提升其对分布变化输入的适应能力和性能。

2.2 多数投票奖励函数

  多数投票奖励的计算方式是,首先通过多数投票机制来估计一个标签,然后用该标签来计算基于规则的奖励,这些奖励最终作为强化学习的信号。具体而言,给定一个问题 x x x,我们首先将其输入到LLM中以生成一组输出。接着,使用答案提取器处理这些输出,得到对应的预测答案,记为: P = { y i } i = 1 N P = \{ y_i \}_{i=1}^N P={yi}i=1N我们根据公式(Equation 4)对 P P P 应用多数投票机制,作为评分函数 s ( y , x ) s(y, x) s(y,x) 来估计标签 y y y,即选择在集合 P P P 中出现频率最高的预测结果。这个通过多数投票选出的预测结果 y y y 被作为估计标签,用于计算规则奖励(rule-based reward)。参考 Guo 等人(2025)的做法,其奖励函数定义如下: R ( y ^ i , y ) = { 1 , if  y ^ i = y 0 , otherwise (3) R(\hat{y}_i, y) =\begin{cases}1, & \text{if } \hat{y}_i = y \\0, & \text{otherwise}\end{cases}\tag{3} R(y^i,y)={1,0,if y^i=yotherwise(3)
在这里插入图片描述

3 实验

3.1 实验设置

模型(Models)
  为了评估 TTRL 在不同基础模型上的通用性,我们在基础模型和指令微调模型(instruct models)上都进行了实验。我们在基础模型 Qwen2.5-Math-1.5B 和 Qwen2.5-Math-7B(Yang 等,2024)上进行实验,以评估 TTRL 的扩展能力是否良好。对于指令微调模型,我们使用 LLaMA-3.1-8B-Instruct(Grattafiori 等,2024)以验证 TTRL 在不同模型家族中的有效性。

基准任务(Benchmarks)
  我们在三个数学推理基准上评估 TTRL 的效果:AIME 2024(Li 等,2024)、AMC(Li 等,2024)和 MATH-500(Hendrycks 等,2021)。在每个基准任务上单独应用 TTRL 后,我们使用贪婪解码(greedy decoding)方式来报告pass@1 指标,以确保与先前工作的公平比较。我们还使用了 DeepSeek-R1(Guo 等,2025)中的解码参数,并在图6中报告 Avg@64 得分,以提供更可靠的评估。

对比方法(Baselines)
  由于此前尚未有工作探索通过测试时训练(TTT)提升数学推理能力,我们主要与基础模型进行对比,以验证 TTRL 是否能通过自我进化带来有效性能提升。对于两个基础模型,我们也纳入了其经过大规模后训练的指令微调版本进行对比。此外,我们还引用了一些当前主流的 “R1-Zero-Like”模型 作为参考基线,这些模型与我们使用的模型具有类似的结构,并进行了广泛的强化学习训练,包括: DeepSeek-R1-Distill-1.5B & 7B(Guo 等,2025),SimpleRL-Zero-7B(Zeng 等,2025), PRIME-Zero-7B(Cui 等,2025),OpenReasoner-Zero-7B(Hu 等,2025b),Oat-Zero-1.5B & 7B(Liu 等,2025b), LIMR(Li 等,2025)。注意:TTRL 的训练设定不同于这些现有模型,因此严格的对比可能存在不公平性。

实现细节(Implementation Details)
  我们在每个基准任务上独立应用 GRPO 方法(Shao 等,2024)来实现 TTRL。在超参数设置方面,我们使用固定学习率 5 × 1 0 − 7 5 \times 10^{-7} 5×107,并在策略模型中采用 AdamW 优化器。在 rollout 阶段,我们每个样本采样 64 个响应(MATH-500 为 32 个),使用温度系数 1.0 进行多数投票标签估计,并从中下采样 16 个响应用于训练。实验表明,我们的“先投票、后采样”策略在保持强性能的同时,有效降低了计算成本。生成的最大 token 数被设定为 3072。KL 散度系数(KL coefficient)设为 0,适用于所有实验。根据数据集大小和任务复杂度,我们将训练轮数(episode 数)分别设为:MATH:40,AMC:50,AIME:60。

在这里插入图片描述

3.2 主要结果

TTRL 在大多数任务和模型上表现优异。 尽管仅依赖于使用无标签测试数据进行的自我进化,TTRL 依然达到了与现有基于 RL 的大规模有标签模型相当的性能水平。如表 1 所示,在极具挑战性的数学推理基准 AIME 2024 上,TTRL 实现了 159.3% 的显著性能提升,超越了所有基于大规模数据集训练的模型。进一步地,当将 TTRL 应用于 Qwen2.5-Math-7B 模型时,在三个基准任务中平均带来 84.1% 的性能提升。

TTRL 具有自然的可扩展性。 另一个值得注意的观察是:随着模型规模从 1.5B 增加到 7B,TTRL 在 AIME 2024 和 AMC 上的性能收益也随之增加,这表明 TTRL 具有良好的规模扩展特性。较大的模型能够在自我改进过程中产生更准确的多数投票奖励,从而在新数据上实现更有效的学习。然而,LLaMA-3.1-8B-Instruct 和 Qwen2.5-Math-1.5B 在 AIME 2024 上通过 TTRL 并未获得显著提升,这很可能是由于其模型容量受限。相比之下,Qwen2.5-Math-7B 拥有更大的模型容量和更充足的知识基础,使其能够更好地从自我进化中获益,并获得显著性能提升。我们将在第 4.3 节 中对此进行更详细的讨论。
在这里插入图片描述

TTRL 的泛化能力远超目标任务。 我们在每个基准任务上单独应用 TTRL,并使用 Qwen2.5-Math-7B 作为主干模型在其他基准任务上进行进一步评估。图3展示了相关结果。尽管这种设置具有分布外(out-of-distribution) 的特点,TTRL 在所有基准任务上都实现了显著性能提升。这说明:TTRL 并非依赖于过拟合某一任务而牺牲其他任务表现,而是能够在自我改进过程中获得具有泛化能力的提升。

TTRL 兼容多种强化学习算法。 图4展示了相关结果。我们在 MATH-500 上使用 PPO(Schulman 等,2017)来评估 TTRL 与不同 RL 算法的兼容性。实验发现,PPO 与 GRPO 的表现轨迹高度一致。与 GRPO 相比,PPO 表现出更稳定的结果,同时总体性能也相当。
在这里插入图片描述

3.3 训练动态

由于测试数据中缺乏真实标签,因此在训练过程中评估 TTRL 的性能是一项挑战。为缓解这一限制,我们引入了一组专门设计用于训练过程监控和评估 TTRL 有效性的训练时指标。这些指标有助于选择最佳 checkpoint,并为训练过程中的动态变化提供重要洞见。图 5 展示了在 AIME 2024 上,以 Qwen2.5-Math-7B 为例的两个 TTRL 曲线。

  • Entropy(熵):衡量模型生成输出的不确定性。
  • Majority Voting Reward(多数投票奖励):基于多数投票标签计算得到的规则奖励。
  • Majority Ratio(多数比率):在一次 rollout 中最常出现答案的频率。

此外,我们还定义了若干依赖真实标签的指标,以便在训练过程中对模型行为进行更深入的分析:

  • Label Accuracy(Maj@N):表示估计标签是否与真实标签一致。
  • Reward Accuracy:表示基于估计标签计算出的奖励中,有多少比例与真实标签计算出的奖励一致。
  • Ground-Truth Ratio(真实标签比率):在 rollout 中真实标签出现的频率。

4 讨论

4.1 问题一:TTRL 的性能究竟有多强?

  • 要点总结(Takeaways)
  1. TTRL 不仅超越了自身的训练信号和直观上限 Maj@N,还接近于使用有标签测试数据训练的直接 RL 模型的性能。这种提升可能得益于 TTRL 在测试时训练中采用了 RL:通过将基于投票的伪标签转化为奖励,TTRL 提升了监督信号的有效性(例如:准确率,见 §4.2),同时摆脱了 Maj@N 所带来的限制性约束。

  2. TTRL 的经验上限是直接在测试数据上训练模型(即“以测代训”),这显示出其相较于传统训练-评估流程的显著优势。

  3. 在复杂任务中,TTRL 甚至能仅凭 1.5B 模型达到经验上限, 这说明大语言模型(LLMs)可以通过 TTRL 实现高效的自我进化,从而实现大规模数据集上的终身学习。

  我们通过两个上限来分析 TTRL 的潜在性能: 第一个上限是 Maj@N,即 TTRL 训练中用于计算奖励的基于多数投票的伪标签;第二个上限是:直接在基准测试集上使用真实标签进行训练,该方法假设访问了 ground-truth 标签,因而会将标签信息直接传递给策略模型。

TTRL 受 Maj@N 监督,但超越了它。由于 TTRL 使用自身多数投票输出作为强化学习的监督信号,因此这种基于投票的性能通常被视为模型性能的上限。然而,我们观察到一个令人惊讶的现象:训练后,模型不仅匹配了这个预期上限,甚至超越了它。这表明:模型超越了自己输出所构成的监督信号质量。图 6 显示了 TTRL 在 Qwen2.5-Math-7B 上的结果。TTRL 的 Avg@64 成绩在所有基准任务上均超越 Qwen2.5-Math-7B 的 Maj@64,远超我们的预期。此外,一旦引入多数投票机制,TTRL 的性能有了显著提升。这表明大语言模型可通过自身生成数据进行训练并获得性能提升。更重要的是,通过一个自我强化(self-reinforcing)的闭环,模型能够“拽着自己的靴带把自己拉起来”,突破原本的性能天花板。

TTRL 的性能提升接近直接在测试集上的训练。TTRL 的动机是通过多数投票估计标签,从而获取更准确的奖励,在没有真实标签的数据上通过 RL 实现有效的自我改进。因此,TTRL 的自然上限是:直接在测试集上执行 RL(即“leakage”训练)。虽然由于信息泄露问题,这种设置鲜有被采用或研究,但它代表了在特定数据集上提升性能的最高效方式,其效率远超传统的训练-评估范式。我们使用 Qwen2.5-Math-7B 在 MATH-500 上分别运行 TTRL 和 RL(leakage),图 7 展示了两者结果。我们惊讶地发现,TTRL 的性能曲线几乎接近 RL(leakage),这说明:

  1. TTRL 在无监督设置下的自我改进效果可与有监督学习相媲美,即便在信息泄露场景中也能达到极高性能,证明其效率与提升潜力。

  2. TTRL 显示出即使是小规模模型(如 1.5B)也能通过 RL 实现有效自我改进与持续学习。
    例如,在 MATH-500 上,Qwen2.5-Math-1.5B 从初始的 33.0 提升到 80.0,性能提升了 142.4%,展示了 TTRL 所带来的清晰自我增强能力。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4.2 Q2: TTRL 为什么有效?

  本节从两个关键方面对 TTRL 在无监督条件下实现稳定且高效的强化学习机制进行了分析:标签估计(Label Estimation) 和 奖励计算(Reward Calculation)

标签估计(Label Estimations)
  TTRL 与标准 RL 算法之间的一个直接区别是:TTRL 涉及标签估计,而这会引入奖励误差。
尽管如此,我们认为 TTRL 依然有效的原因有以下两点:(i) 现有研究表明,RL 能容忍一定程度的奖励误差。而且相比依赖记忆训练数据的监督微调(SFT),RL 更具泛化能力(Chu 等,2025)。在 RL 中,奖励信号通常是模糊的,主要作为探索方向的引导信号,这使得 RL 对奖励噪声具有鲁棒性(Razin 等,2025)。(ii) 还有研究从优化角度探讨了一个优秀的奖励模型应具备哪些特性,发现:更精确的奖励模型并不一定是更好的教师(Wang 等,2020)。因此,由策略模型本身生成的奖励信号反而可能提供更适合的学习引导。

奖励计算(Reward Calculations)
  当模型能通过多数投票正确估计标签时,后续生成的奖励信号通常是可靠的。但接下来我们面临一个自然的问题:即便模型在 AIME 2024 等具有挑战性的任务中未能估计出准确标签,TTRL 为什么依然有效?根本原因在于 RL 中奖励的定义方式:基于规则的奖励是根据预测结果是否与“标签”一致而赋值的。因此,即使估计的标签不是真实标签,只要它能识别预测答案与其不一致,系统依然可以给出正确的“负向”奖励。

  为了更详细地进行案例分析,我们在 AIME 2024 基准上、以 Qwen2.5-Math-7B 为基础模型,评估了 TTRL 的性能。图 8 展示了三项指标的变化曲线。我们识别出 TTRL 在 AIME 2024 上依然有效的两个主要原因:

  第一,奖励比标签更密集(dense),从而带来更高的鲁棒性。这意味着即使估计的标签不准确,模型仍有更多机会从其他学习信号中恢复有用信息。例如,即使估计标签是错误的,在同一次 rollout(采样)中生成的其他输出仍有可能产生正确或高质量的奖励(如图 9 所示)。这使得整体奖励信号对伪标签误差更具鲁棒性。

  第二,一个有趣的现象是:当模型能力较弱时,TTRL 的奖励反而可能更准确。以基础模型为例:其最常出现的预测仅占所有预测的 16.6%(见图 8)。这说明即使标签估计不准确,大部分预测仍能收到正确的奖励,因为模型的输出高度多样、错误分布均匀(如图 9 所示)。这实际上形成了一种“悖论式提升”:模型越弱,错误越分散,奖励估计反而更准确。一个实证观察支持上述观点:即 标签准确率(Label Accuracy) 与 奖励准确率(Reward Accuracy) 的对比(见图 8):标签准确率波动在 20%-50%;而奖励准确率一开始就达到 92%,非常惊人!这样的高奖励准确率,为测试集上的有效自我改进提供了坚实基础。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 TTRL 可能在什么时候失效?

  从算法层面来看,TTRL 与现有的强化学习(RL)算法在本质上并无区别,因此也继承了后者的一些特性,例如:对数据难度敏感、对先验信息依赖较强、在某些条件下容易“崩溃”(collapse)等问题。在实现层面,这些问题会被进一步放大。TTRL 依赖多数投票估计标签,且仅在测试数据上运行,而这些数据往往稀疏且前所未见,因此在某些场景下可能导致训练失败。在初步实验中,我们识别出两类潜在问题:

缺乏目标任务的先验知识

  先验知识在强化学习中起着关键作用,通常决定了 TTRL 学习过程的成败。这是因为测试数据通常更难,且包含新的特征,而 TTRL 并未使用诸如数据筛选等机制来支持课程式学习(curriculum learning)。

  因此,对于同一个 backbone,如果模型的先验知识不足以应对数据的复杂性,TTRL 就会失败。我们推测,在 AIME 2024 上 Qwen2.5-Math-1.5B 和 LLaMA-3.1-8B-Instruct 性能无提升的原因即是如此。考虑到 TTRL 在其他复杂度较低的基准测试中表现良好,这种失败可能源于模型先验不足。

  为进一步验证这一假设,我们在 MATH-500 上进行了消融研究。我们根据标注的难度等级将 MATH-500 分为五个子集(从1到5),并分别对每个子集独立应用 TTRL,使用 Qwen2.5-Math-1.5B 模型。然后我们将结果与该 backbone 的性能进行比较,如表2所示。我们观察到,随着问题难度的增加,性能提升和长度缩减比率都呈下降趋势。这表明 backbone 的现有先验知识不足以支持对更难问题的学习。

不合适的强化学习超参数

  超参数设置在强化学习中起着关键作用,并常常导致训练失败。在 TTRL 中,超参数的影响被进一步放大,因为奖励估计中可能存在的噪声以及测试数据的特性。图10 展示了在 AIME 2024 上几次失败尝试的对比。两个失败的实验在训练过程中始终维持高熵输出,与 He 等人(2025)的发现一致。在初步实验中,我们确定了两个关键的超参数,对训练稳定性和成功与否具有显著影响Temperature(温度):将 temperature 设置为 1.0(而不是 0.6)会增加模型输出的熵。这种设置鼓励更广泛的探索,使模型能够更好地利用其先验知识进行自我改进,这对于处理具有挑战性的基准测试尤其重要。Episodes(训练轮数):鉴于各数据集在大小和难度上的差异,规模更小且更难的数据集需要更多的训练轮次,以实现足够的探索。

5 相关工作

5.1 测试时扩展(Test-Time Scaling, TTS)

测试时扩展(TTS) 的设计目标是通过在测试阶段增加计算资源,提升大语言模型(LLMs)在处理复杂任务时的能力。已有研究(Snell 等,2024;Liu 等,2025a)表明,相比于在预训练阶段扩展计算,TTS 更为高效(Kaplan 等,2020)。因此,将相同的计算资源从预训练阶段重新分配至测试阶段,有望带来更显著的模型性能提升。当前关于 TTS 的研究主要分为两类(Welleck 等,2024):并行生成(parallel generation) 和 序列生成(sequential generation)。并行生成:让 LLMs 同时生成多个候选答案,包括:自一致性(self-consistency)(Wang 等,2022;Chen 等,2023),最优选择(best-of-N)(Stiennon 等,2020;Nakano 等,2021),决策步骤(decision steps,例如蒙特卡洛树搜索 Monte Carlo Tree Search)(Zhou 等,2023;Xie 等,2024),基于 token 的搜索(如奖励引导搜索 Reward-guided Search)(Deng & Raffel, 2023;Khanov 等,2024)。推理过程中,随后会使用聚合策略整合这些候选结果,常见方式是基于过程的奖励模型(Lightman 等,2023;Wang 等,2023;Zhang 等,2025a)来进行评分。序列生成:关注于拓展 LLMs 输出,使其生成更长的回答,通常伴随反思(reflective)和思维链条(chain-of-thought)推理过程(Wei 等,2022;Madaan 等,2023)。尽管提示工程(prompting)技术被广泛采用,但其效果常受限于基础模型的能力。值得注意的是,DeepSeek-R1(Guo 等,2025)是该领域的一个代表性进展。该方法在预训练语言模型中实现了基于结果的强化学习,具体为群体相对策略优化(Group Relative Policy Optimization, GRPO)(Shao 等,2024),显著增强了其推理能力。与第一类方法(需要过程级监督)相比(Yuan 等,2024),第二类方法的可扩展性更强,因其依赖于基于规则的奖励信号。

  除了前述专注于扩展测试时推理计算的方法之外,另一种提高测试时计算能力的途径是测试时训练(Test-Time Training, TTT)。我们在附录 A 中介绍了这些术语之间的关系。以往的研究主要聚焦于视频生成与理解等应用(Hardt & Sun, 2024;Dalal 等,2025),以及在一定程度上聚焦于大型语言模型(Wang 等,2025;Akyürek 等,2024),但将测试时扩展与强化学习结合起来的研究仍然基本未被深入探索。

5.2 用于推理的强化学习(RL for Reasoning)

  强化学习(Reinforcement Learning, RL)在增强大语言模型(LLMs)遵循指令的能力方面发挥着关键作用,尤其是通过诸如“来自人类反馈的强化学习”(RLHF)等方法。RLHF 使用如 Proximal Policy Optimization(PPO)等算法使基础模型对人类偏好进行对齐。近年来,大型推理模型(Large Reasoning Models, LRMs),如 DeepSeek-R1,已经通过基于规则的奖励展现出强化学习在提升推理能力方面的重要性,这一点在 GRPO 中表现得尤为明显。与 RLHF 主要面向开放领域指令不同,GRPO 特别设计用于在数学问题求解中引导出长链式思维(Chain-of-Thought, CoT)推理。近期研究主要集中于提高基于规则的强化学习方法(如 GRPO 和 PPO)的训练稳定性。

  然而,这些方法通常仅在有监督的训练数据上训练 LLM,而推理时则需要在未见过的测试问题上生成扩展的 CoT 推理。此外,目前的强化学习方法依赖于可验证的输出(如数学或代码解答),这些输出可以提供可靠的奖励信号。但在实际应用中,这类可验证条件往往难以满足,甚至无法实现。新兴研究提出了一种范式转变:从依赖人类标注数据转向依赖交互经验进行学习。在这种背景下,策略模型(policy model)生成和标注自身训练数据的能力变得愈加重要。

  TTRL 提出了一种利用自标注奖励进行强化学习的初步尝试,迈出了从经验交互中学习的第一步。

6 结论

  在本文中,我们提出了测试时强化学习(TTRL)这一新颖框架,用于在无真实标签的测试数据上,通过强化学习(RL)训练大型语言模型。TTRL的一个关键组成部分是其多数投票奖励函数,它基于模型预测的一致性生成规则驱动的奖励。我们的实验结果展示了****TTRL的强大潜力,在多种模型和任务上实现了持续的性能提升。我们将TTRL视为迈向“使用自标注奖励进行强化学习”的初步尝试,标志着从连续经验流中学习的一个重要方向。

7 局限性与未来工作

局限性
  本研究是基于自标注奖励的测试时强化学习的一次初步探索。尽管实验结果令人鼓舞,但仍存在一些需要进一步研究的问题。特别是,我们计划对“先验知识”和“超参数配置”的影响进行更深入的分析,这两者在强化学习的动态过程中起着关键作用。我们将在后续版本中提供更全面的讨论和消融实验。

未来工作
  基于现有发现,我们为未来研究提出以下几个方向:

  • 理论分析:开展TTRL的形式化收敛性分析,重点研究其向 §4.1 中两个上界收敛的能力。

  • 流式数据下的在线学习:将TTRL扩展到实时学习场景,使模型能够与不断到来的数据进行交互并动态适应,即“测试时自适应”(Liang 等人,2025)。

  • 大规模自监督强化学习训练:将TTRL扩展到大规模数据集和模型,探索其在无需人工标注数据的自监督框架中的潜力。

  • Agent任务与科学发现:将TTRL应用于更复杂的开放领域,如agent任务和多步推理的科学探索等。


A 术语定义

  测试时扩展(Test-Time Scaling, TTS) 指的是在模型推理阶段增加计算资源的方法,可以细分为:测试时训练(Test-Time Training, TTT),测试时推理(Test-Time Inference, TTI)。这两种方式是互补的。我们将在下文介绍它们之间的关系。

在这里插入图片描述

A.1 测试时训练(Test-Time Training, TTT)

  测试时训练(TTT)是一种在推理过程中适配预训练模型的技术,旨在应对分布漂移(distribution shifts)以提升泛化能力。设 f θ f_{\theta} fθ 为在源域 D s = { ( x i , y i ) } i = 1 N \mathcal{D}_s = \{(x_i, y_i)\}_{i=1}^N Ds={(xi,yi)}i=1N 上训练得到的模型,其中 x i ∈ X x_i \in \mathcal{X} xiX y i ∈ Y y_i \in \mathcal{Y} yiY,而 θ \theta θ 表示模型的参数。在标准推理过程中,模型会以固定参数 θ \theta θ 在测试样本 x t ∼ D t x_t \sim \mathcal{D}_t xtDt 上进行评估,且 D t ≠ D s \mathcal{D}_t \neq \mathcal{D}_s Dt=Ds

  相反,TTT 允许模型在推理时对每个测试样本 x t x_t xt 进行自适应微调,通过最小化一个辅助的自监督损失 L aux \mathcal{L}_{\text{aux}} Laux,而无需访问标签 y t y_t yt。模型参数会在推理过程中在线更新,该辅助任务通常是无标签的,且与主任务保持一致。

A.2 测试时推理(Test-Time Inference, TTI)

  测试时推理(TTI)指的是在推理过程中,通过分配额外的计算资源来提升大型语言模型性能的一种策略。形式化地,设 f θ f_\theta fθ 表示一个参数为 θ \theta θ 的语言模型, x x x 是输入提示(prompt)。模型通过从条件分布 p θ ( y ∣ x ) p_\theta(y \mid x) pθ(yx) 中采样生成输出 y y y。TTI 技术旨在提升输出 y y y 的质量,方法包括:生成多个候选输出,然后基于打分函数选择最佳输出,或通过迭代过程不断优化输出(Welleck et al., 2024)。

  一种常见方法是生成 N N N 个候选输出 { y 1 , y 2 , … , y N } \{y_1, y_2, \ldots, y_N\} {y1,y2,,yN},然后使用打分函数 s ( y , x ) s(y, x) s(y,x) 选择最优输出 y ∗ y^* y

y ∗ = arg ⁡ max ⁡ y i s ( y i , x ) (4) y^* = \arg\max_{y_i} s(y_i, x) \tag{4} y=argyimaxs(yi,x)(4)

打分函数 s ( y , x ) s(y, x) s(y,x) 可以通过多种方式实现,例如:

  1. 多数投票(Majority Voting, MV):在候选输出中选择出现次数最多的结果。
  2. Best-of-N (BoN):使用奖励模型(reward model)对每个候选项进行打分,并选择得分最高者。
  3. 加权BoN(Weighted BoN):结合 MV 和 BoN 两种策略,利用各自的优势进行加权融合。

B 超参数(Hyper-parameters)

  为了实现我们工作的完全可复现性,我们提供了一个完整的训练方案,该方案主要基于 OpenRLHF(Hu et al., 2024)。我们以在 AIME 2024 基准上的 TTRL 训练过程为例,所用模型为 Qwen2.5-Math-7B。

在这里插入图片描述


🐇速读版

1. 论文的动机

  这篇文章主要针对的是提升LLM的推理能力。对于推理模型来说,传统的训练策略是在大量预训练数据上进行一些预训练(比如掩码训练,next token预测等),然后在带标签的数据上进行后训练(比如SFT或者RL),最后在实际场景的真实数据上应用训练好的模型,如下图。但随着模型越来越大,这种策略出现了一系列弊端,比如,模型的训练成本飙升;其次,互联网上可以拿来训练的数据也几乎已经用尽,当训练数据有限的情况下,根据scaling law,大模型性能会到达一个上限瓶颈。那在这种情况下,我们还能不能进一步提升大模型的推理能力?
在这里插入图片描述

  这时候就出现了一种新的策略,叫做测试时扩展(Test-Time Scaling,TTS)。它的意思就是说,当模型在真实的测试数据上进行推理的时候,提供给模型更多的计算量,进而可以优化推理过程,提升大语言模型的性能。一个典型的例子就是思维链(CoT),它的思想就是把一个复杂问题拆解为多步来回答,这个过程实际上就是花费了更多的计算量,换来了推理性能的提升,所以CoT就是一个典型的测试时扩展的方法。但是,TTS也有一些局限性,它依赖模型预训练的知识,在面对未标注新数据或OOD数据时,泛化能力有限
在这里插入图片描述

  这时候又出现了一个新的策略,测试时训练(Test-Time Training,TTT)。它的意思就是在测试时进行训练(也就是模型参数更新),使模型适应新数据或任务,从而弥补了 TTS 在泛化能力上的不足。
在这里插入图片描述
  同时,最近一些大的推理模型,比如DeepSeek-R1、OpenAI的o1模型都表明,RL在提升模型推理能力方面至关重要。那自然而然的,我们就会想,能不能在测试阶段应用RL来训练模型?但这时候就会面临一个关键的问题:我们都知道,RL是需要reward信号来优化模型的policy分布的,由于测试数据没有ground tuth的label,那我们应该如何获得奖励信号呢? 这篇文章就以此为动机,提出了TTRL,解决了在没有显式标签的数据上,针对大型语言模型推理任务进行强化学习的问题。
在这里插入图片描述

2. 提出的方法

  论文要解决的问题是测试数据没有标签的情况下进行强化学习,所提出的方法实际上非常straightforward,思路核心就是多数投票机制。它的意思是说,当你给到LLM一个没有标签的测试数据,比如下图中红色字体举例的一个数学问题:What is the median of 2 and 8?,正常来说LLM会输出一个回答,而这篇文章是让模型多次回答这个问题得到多个回复。比如图中红色数字给到的不同回复结果:5,6,10,5,然后选择这些回复中最多次出现的那个答案,比如这里的5,将其作为这个测试数据的伪标签,这样就解决了测试数据没有标签的问题。接着再让这个伪标签当作计算reward时候的ground truth label,去计算reward。这里的reward函数也很简单,对于回答中,是5的就打分为1,否则就是0,进而优化policy分布,这样就能够进行强化学习。
在这里插入图片描述
  上面就是这篇文章的解决方法,simple yet effective!在三个Benchmarks都取得了非常明显的提升:
在这里插入图片描述
  这篇文章比较有启发性的部分在于Discussions章节作者针对所提出的TTRL方法的上限以及它为什么有效展开了探讨,并给出了合理的解释,这部分建议感兴趣的读者阅读上面🦥精读版部分的原文对应章节,在读完后或许你就能够理解下面这张图的含义:
在这里插入图片描述


🤔思考

  TTRL这篇文章是2025年4月22日上线在arXiv的一篇文章,它的思路其实和下图这篇2022年的文章思路很类似,不同之处在于,下面这篇文章是通过SFT来进行微调模型的,而TTRL是通过RL微调模型。其实TTRL的方法在一些环节上可以进一步的探索,比如伪标签的产生,或许可以在一些安全对齐或者模型去毒任务上替换为基于不同logits分布的方法来选择伪标签,而非多数投票。reward函数的设计或许也可以针对其他任务实验BT loss的方法进行对比评分。
在这里插入图片描述
  这篇文章清晰的展示出了RL的潜力,尤其是相较于SFT而言。在论文的讨论章节给到了很多很有启发性的探讨,值得深思。最后,个人认为这篇文章有一个小的局限性在于只在数学task上进行的实验,而没有在其他推理任务(如coding task)上验证方法的普适性,这也为未来在更复杂任务场景中进一步拓展TTRL提供了可能的路径。


参考文献
@article{zuo2025ttrl,
title={TTRL: Test-Time Reinforcement Learning},
author={Zuo, Yuxin and Zhang, Kaiyan and Qu, Shang and Sheng, Li and Zhu, Xuekai and Qi, Biqing and Sun, Youbang and Cui, Ganqu and Ding, Ning and Zhou, Bowen},
journal={arXiv preprint arXiv:2504.16084},
year={2025}
}

相关文章:

论文分享➲ arXiv2025 | TTRL: Test-Time Reinforcement Learning

TTRL: Test-Time Reinforcement Learning TTRL:测试时强化学习 https://github.com/PRIME-RL/TTRL 📖导读:本篇博客有🦥精读版、🐇速读版及🤔思考三部分;精读版是全文的翻译,篇幅较…...

LeetCode 热题 100 24. 两两交换链表中的节点

LeetCode 热题 100 | 24. 两两交换链表中的节点 大家好,今天我们来解决一道经典的链表问题——两两交换链表中的节点。这道题在 LeetCode 上被标记为中等难度,要求两两交换链表中的相邻节点,并返回交换后链表的头节点。 问题描述 给你一个链…...

好用的播放器推荐

以下是一些好用的播放器推荐,按照不同平台和使用场景分类: 电脑端 VLC Media Player 特点:开源、跨平台,支持几乎所有的音视频格式,无需额外安装解码器。具备强大的功能,如播放列表管理、视频和音频滤镜、…...

C语言_函数hook方案

背景 单体测试中测试一个函数时,该函数调用的其他函数,需要按照测试case,依赖其他函数进行调用参数检查,返回特定值。但是其他函数,不容易做到参数检查和返回特定值,这时需要将其他函数进行hook,hook函数用户自己实现,比较容易实现参数检查和返回值特定值。 本文主要…...

翻转数位题目解释和代码

这段代码的功能是计算一个32位整数中,经过至多一次位翻转(0变1或1变0)后能得到的连续1的最大长度。例如,输入1775(二进制11011101111),翻转中间的0后变为11011111111,连续1的最大长度…...

问题及解决01-面板无法随着窗口的放大而放大

在MATLAB的App Designer中,默认情况下,组件的位置是固定的,不会随着父容器的大小变化而改变。问题图如下图所示。 解决: 为了让Panel面板能够随着UIFigure父容器一起缩放,需要使用布局管理器,我利用 MATLA…...

C/C++复习--C语言中的函数详细

一、函数的基本概念 函数是C语言中封装代码的基本单元,类似于数学中的函数。 作用: 提高代码复用性模块化编程,增强可维护性隐藏实现细节 分类: 库函数:由C标准库提供(如printf, strcpy)自定…...

BufferAttribute

BufferAttribute 3D虚拟工厂在线体验 描述 BufferAttribute 是 Three.js 中用于高效管理几何体属性数据的核心类,其主要特点包括: 数据存储 专为存储 BufferGeometry 的各种属性设计,包括: 顶点位置(position&#…...

FreeRTOS Semaphore信号量-笔记

FreeRTOS Semaphore信号量-笔记 **一、信号量与互斥量的核心区别****二、二值信号量(Binary Semaphore)****1. 功能与使用场景****2. 示例:ADC中断与任务同步** **三、计数信号量(Counting Semaphore)****1. 功能与使用…...

HTTP/2概览及内核解析

目录 1. HTTP/2特性概览 1.1. 兼容 HTTP/1 1.2. “语法”层面的改造 1.3. 协议栈 1.4. HTTP/2实验环境 1.5. Question: 2. HTTP/2内核剖析 2.1. 连接前言 2.2. 头部压缩 2.3. 二进制帧 2.4. 流与多路复用 2.5. 流状态转换 1. HTTP/2特性概览 HTTP 协议…...

AI生成视频推荐

以下是一些好用的 AI 生成视频工具: 国内工具 可灵 :支持文本生成视频、图片生成视频,适用于广告、电影剪辑和短视频制作,能在 30 秒内生成 6 秒的高清视频(1440p),目前处于免费测试阶段。 即…...

每日一题洛谷T534125 合数c++

字符串输入,看所有位数加起来的数是不是3的倍数 是,直接输出,不是,删除1或2 特判全是1和全是2的情况 直接检测末尾数字可以特判2 特判1时,还要特判11和111,其他数字,k是奇数时是质数&#x…...

AI大模型学习十七、利用Dify搭建 AI 图片生成应用

一、说明 随着图像生成技术的兴起,涌现了许多优秀的图像生成产品,比如 Dall-e、Flux、Stable Diffusion 等。 本文将使用图像生成模型,学习使用 Dify 快速开发一个 AI 图片生成应用 二、获取Stablility API 密钥 1、注册 Stability AI - De…...

分布式锁原理

1.锁是什么 一个线程拿到锁,另一个线程就拿不到,满足互斥性。 2.Redis的setnx实现 加锁后解锁,但是要先判断是否是当前线程持有的锁,只能释放本线程的锁。 先判断后释放,两步操作Lua实现原子性 3.为什么要给锁加过期…...

近日部署跑通的若干多模态模型总结与论文概述

CLIP模型概述与落地测试 CLIP模型全称是Contrastive Language-Image Pretraining​​(对比语言图像预训练)。是OpenAI于2021年提出的多模态预训练模型,通过对比学习对齐图像和文本的表示,实现零样本(zero-shot&#x…...

torch.nn.init.uniform_

nn.init.uniform_ 是 PyTorch 中用于初始化张量(tensor)的一个函数,它的作用是将张量的值填充为从均匀分布中采样的随机数。 详细说明: 函数: torch.nn.init.uniform_(tensor, a0., b1.)tensor:需要被初始…...

类加载机制详解:双亲委派模型与打破它的方式

在复杂的 Java 系统中,类加载是最基础却常被忽略的一环。理解 JVM 的类加载机制,特别是 双亲委派模型(Parent Delegation Model),是我们深入掌握热部署、插件机制、ClassLoader 隔离、ClassNotFound 错误等问题的关键。…...

【基于 LangChain 的异步天气查询2】GeoNames实现地区实时气温查询

目录 功能简介 一、创建GeoNames账号 1、进入官网 2、创建账号 二、运行代码 weather_runnable.py main.py 运行结果 功能简介 本文主要通过Langchain,结合GeoNames实现了地区温度的实时查询,并通过GPT-4o对温度进行一段简短的描述。 一、创建Ge…...

Linux终端展示效果优化:【whiptail】使用教程

🧰 Linux终端展示效果优化:whiptail 使用教程 🧭 什么是 whiptail whiptail 是一个轻量级终端对话框工具,功能与 dialog 类似,用于在 Shell 脚本中创建图形交互界面。与 dialog 相比,它依赖更少&#xff…...

spring中的@Inject注解详情

在 Spring 框架中,Inject 是 Java 依赖注入标准(JSR-330) 的核心注解,与 Spring 原生的 Autowired 类似,但具备更标准化的跨框架特性。以下从功能特性、使用场景及与 Spring 原生注解的对比进行详细解析: 一…...

联邦学习图像分类实战:基于FATE与PyTorch的隐私保护机器学习系统构建指南

引言 在数据孤岛与隐私保护需求并存的今天,联邦学习(Federated Learning)作为分布式机器学习范式,为医疗影像分析、金融风控、智能交通等领域提供了创新解决方案。本文将基于FATE框架与PyTorch深度学习框架,详细阐述如…...

Java—— 泛型详解

泛型概述 泛型是JDK5中引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 泛型的格式&#xff1a;<数据类型> 注意&#xff1a;泛型只能支持引用数据类型。 泛型的好处 没有泛型的时候&#xff0c;可以往集合中添加任意类型的数据&#x…...

average per-pixel disparity error: EPE及不同距离值下的误差曲线

写在前面 本文内容 介绍epe的概念&#xff0c;作用&#xff1b; 由epe推导出的不同距离下的物理误差曲线 一句话简单理解&#xff1a;epe是用于深度估计、以像素为单位的误差度量方式 平台/环境 python 转载请注明出处&#xff1a; https 目录 写在前面EPE**1. 视差与深度的关…...

解决mybatisplus主键无法自增的问题

mybatisplus&#xff0c;yml配置正确&#xff0c;实体类加上 了注解&#xff0c;数据库设置了自增 当mybatisplus配置文件完全正确&#xff0c;主键依然无法自增&#xff0c;可以这样解决&#xff1a; 删除所有雪花算法生成的id字段&#xff0c;然后执行ALTER TABLE 库名.表…...

C++ learning day 02

目录 引言 编译定义&#xff1a; 查看obj文件 1. 禁用预处理 2. CTRL F7 编译math.cpp 3. 查看obj文件 4. 查看.asm文件&#xff08;汇编程序&#xff09; 引言 今天介绍C中&#xff0c;一个Cpp文件经过汇编后得到obj文件&#xff0c;以及obj文件的内容&a…...

Qt开发经验 --- 避坑指南(12)

文章目录 [toc]1 关闭编译警告2 VS离线安装3 Qt视频播放QMediaPlayer配置4 Qt5安装包下载5 将库添加为qmake模块 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;Qt开发经验 &#x1f448; 1 关闭编译警告 Qt在编译时编译器会检测代码&#xff0c;报出警告&…...

【Web】LACTF 2025 wp

目录 arclbroth lucky-flag whack-a-mole arclbroth 看到username为admin能拿到flag 但不能重复注册存在的用户 这题是secure-sqlite这个库的问题&#xff0c;底层用的是C&#xff0c;没处理好\0字符截断的问题 &#xff08;在 Node.js 中&#xff0c;由于其字符串表示方式…...

[架构之美]Windows系统安装MySQL 8.0详细图文教程(十八)

[架构之美]Windows系统安装MySQL 8.0详细图文教程&#xff08;十八&#xff09; 摘要&#xff1a;本文手把手教你从零开始完成MySQL 8.0的Windows系统安装&#xff0c;涵盖社区版下载、环境配置、服务初始化全过程&#xff0c;并提供安装失败、密码重置等常见问题的终极解决方…...

指针运算典型例题解析

1.题目1 该代码运行的结果是什么&#xff1f; #include <stdio.h> int main() { int a[5] { 1, 2, 3, 4, 5 }; int *ptr (int *)(&a 1); printf( "%d,%d", *(a 1), *(ptr - 1)); return 0; } 解析&#xff1a; 运行结果&#xff1a; 2.题目2 在X86…...

流式数据(Streaming Data)和非流式数据(Batch Data)区别、使用场景、优化-来自前端的浅解

流式数据(Streaming Data) 和 非流式数据(Batch Data) 是两种不同的数据处理模式,它们在数据来源、处理方式和应用场景上有显著区别。 流式数据指的是按时间顺序连续不断地产生的数据流。这些数据流可以来自于各种来源,如传感器、日志文件、社交媒体等 非流式数据是指数据…...

SQL注入问题

目录 一、SQL注入漏洞概述 二、SQL注入漏洞的产生 2.1 产生效果 2.2 产生原因 三、SQL注入漏洞的解决 3.1 使用PreparedStatement接口 3.2 预编译SQL语句 3.3 掌握的方法 3.3.1 获取PreparedStatement对象 3.3.2 设置参数 3.3.3 执行SQL语句 3.3.4 示例代码 四、总…...

python tkinter 实现 带界面(GUI)的RSA加密、签名

参考文章&#xff1a;python tkinter 实现 带界面(GUI)的RSA加密、签名 - swuxyj - 博客园 RSA加密的过程是&#xff1a;使用公钥加密&#xff0c;私钥解密 RSA签名的过程是&#xff1a;使用私钥签名&#xff0c;公钥验证 所以核心代码就是&#xff0c;生成公钥私钥&#xf…...

什么是向量数据库?向量数据库和关系数据库有什么区别?

什么是向量数据库&#xff1f; 向量数据库是一种专门设计用来存储、索引和查询向量数据的数据库系统。在当今的人工智能和机器学习领域中&#xff0c;向量数据库变得越来越重要&#xff0c;尤其是在处理高维数据如图像、音频和文本等非结构化数据时。 主要用途 相似度搜索&…...

张 SoulChat2.0:心理咨询师优化:提示词优化;构建数据集微调LLM

张 SoulChat2.0:心理咨询师优化:提示词优化;构建数据集微调LLM 是一个关于心理咨询师数字孪生大语言模型的项目,旨在解决过往心理健康大语言模型未充分考虑心理咨询师个人风格以及多轮对话数据混合微调导致回复不稳定的问题。 项目概述 自2023年5月发布 SoulChat 后,团…...

如何通过ABAP获取SAP生产订单的目标成本

SAP存储生产订单成本的主要底表包括&#xff1a; COBK: CO凭证表头COEP: CO凭证行项目COSS: 来自CO内部的汇总数据COSP: 来自CO外部部的汇总数据 先说结论&#xff1a;SAP 对生产订单的目标成本是没有保存到底表的。那么如何通过代码的方式获取呢&#xff1f; K_KKB_KKBCS_O…...

医疗信息化江湖风云再起!金仓数据库亮相CHIMA 2025

在医疗与科技深度交融的时代浪潮下&#xff0c;每一次创新都肩负着守护生命健康的崇高使命。当医疗的严谨需求邂逅无限的技术想象&#xff0c;会激荡出怎样震撼行业的力量&#xff1f; 5月9日至11日&#xff0c;第29届学术年会——中国医院信息网络大会暨医疗信息技术和产品展览…...

深入浅出 JDBC 与数据库连接池

在Java开发中&#xff0c;与数据库进行交互是几乎每个项目都离不开的功能。JDBC&#xff08;Java DataBase Connectivity&#xff09;作为Java操作数据库的标准规范&#xff0c;为开发者提供了底层的数据库访问支持。而数据库连接池则是提高数据库操作效率和性能的重要工具。本…...

Java基础 集合框架 Collection接口和抽象类AbstractCollection

集合框架 Collection接口简介核心设计目标父接口Iterable<T>基于Stream流的操作定义了所有集合类的基本操作 Collection接口方法Collection接口总结 抽象类AbstractCollection简介核心设计目标减少重复代码对 不可变集合 支持 AbstractCollection关键方法实现AbstractCol…...

PTA:jmu-ds-拓扑排序

给定一个有向图&#xff0c;求其拓扑序列&#xff0c;若有环路&#xff0c;输出error! 注意&#xff1a;本题用栈结构实现入度为0结点存储&#xff0c;否则拓扑序列输出顺序会和测试数据不一致。本题栈结构建议用数组实现&#xff0c;不用栈类。 ###你要实现的 函数接口定义&…...

Python与YOLO:自动驾驶中的实时物体检测

Python与YOLO:自动驾驶中的实时物体检测 引言:从物体检测到智能驾驶 说到自动驾驶,很多人脑海中首先想到的可能是智能汽车,它们能够自主地行驶,无需人类干预。这一切的背后,离不开一项至关重要的技术——实时物体检测。在自动驾驶中,车辆需要通过摄像头、雷达等传感器获…...

USR-M100采集数据并提交MQTT服务器

本文为记录备忘&#xff0c;不做过多解释。 模块自身带有2路数字量输入&#xff0c;2路模拟量输入&#xff0c;2路485接口 数字量接报警输入&#xff0c;模拟量接压力传感器&#xff0c;液位传感器&#xff0c;485接口分别接流量计&#xff0c;温湿度传感器。 正确接线&…...

OpenAI API JSON 格式指南与json_repair错误修复

核心参数是response_format{"type": "json_object"} ,其他支持json调用的模型也可以这样使用的&#xff0c;下面我们以Openai模型为例 指定OpenAI API返回JSON格式 基本JSON格式响应示例 import openaiclient openai.OpenAI(api_key"your-api-key…...

Java字节缓冲流高效读写文件指南

该代码展示了如何使用Java中的字节缓冲流&#xff08;BufferedInputStream和BufferedOutputStream&#xff09;进行文件的读取和写入操作。首先&#xff0c;通过BufferedInputStream从指定路径的文件中读取数据&#xff0c;然后使用BufferedOutputStream将数据写入到另一个文件…...

【生命周期分析(Life Cycle Assessment: LCA)】基于OpenLCA、GREET、R语言的生命周期评价方法、模型构建及典型案例应用

生命周期分析&#xff08;Life Cycle Assessment&#xff0c;简称LCA&#xff09;是一种用于评估产品、服务或过程从摇篮到坟墓&#xff08;即从原材料获取、生产、使用到废弃处理&#xff09;整个生命周期中对环境影响的科学方法。它可以帮助我们全面了解一个产品或系统在各个…...

jdk多版本切换,通过 maven 指定编译jdk版本不生效,解决思路

背景 在使用 Maven 构建 Java 项目时&#xff0c;有时需要通过 pom.xml 文件指定编译的 JDK 版本&#xff0c;但发现配置后并未生效。这种情况通常是由于以下几个原因导致的&#xff1a; pom.xml 配置不完整或错误 在 pom.xml 中&#xff0c;通常需要配置 maven-compiler-plug…...

一文理解扩散模型(生成式AI模型)(1)

图片扩散模型运作的大致流程如下&#xff1a; 1.加噪过程&#xff1a;给定一张原始图片&#xff0c;一步步地在这张图片中添加噪声&#xff0c;图片在加噪过程中逐渐失去所有信息&#xff0c;变成无法辨识的白噪声(用物理现象来理解这个过程的话可以理解为在清水中加入墨汁&am…...

JavaScript--Array

文章目录 数组基础数组Array.concat()合并数组Array.indexOf()Array.isArray()Array.join()连接Array.pop()删除Array.push()添加Array.shift()删除Array.unshift()添加Array.slice()切割 进阶数组Array.filter()过滤Array.forEach()添加Array.map()Array.reduce()叠加Array.so…...

Java大师成长计划之第17天:锁与原子操作

&#x1f4e2; 友情提示&#xff1a; 本文由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;平台gpt-4o-mini模型辅助创作完成&#xff0c;旨在提供灵感参考与技术分享&#xff0c;文中关键数据、代码与结论建议通过官方渠道验证。 在多线程编程中&#xff0c;如何保证…...

Tailwind CSS v4 主题化实践入门(自定义 Theme + 主题模式切换)✨

ok&#xff0c;经过学习Tailwindcss我决定将此专栏建设成为一个Tailwindcss实战专栏&#xff0c;我将在专栏内完成5050挑战&#xff1a;50天50个Tailwindcss练习项目&#xff0c;欢迎大家订阅&#xff01;&#xff01;&#xff01; Tailwind CSS v4 带来了更强大的主题定制能力…...

[C++] 大数减/除法

目录 高精度博客 - 前两讲高精度减法高精度除法高精度系列函数完整版 高精度博客 - 前两讲 讲次名称链接高精加法[C] 高精度加法(作用 模板 例题)高精乘法[C] 高精度乘法 高精度减法 void subBIG(int x[], int y[], int z[]){z[0] max(x[0], y[0]);for(int i 1; i < …...