作者: 站长

  • 🌟《二值连接:深度神经网络的轻量级革命》

    📖 引言:深度学习的下一步是什么?

    深度神经网络(Deep Neural Networks, DNN)近年来在语音识别、图像分类和自然语言处理等领域取得了令人瞩目的成就。然而,这些突破背后的一个关键推手是计算能力的飞速提升,尤其是图形处理单元(GPU)的广泛应用。然而,随着模型规模和数据量的增长,深度学习的计算需求也在不断攀升。

    与此同时,移动设备和嵌入式系统的快速发展对低功耗、高效能的深度学习算法提出了更高的要求。如何在有限的硬件资源下实现高效的深度学习模型,成为了研究者们亟待解决的问题。

    在这一背景下,本文介绍了一种名为 BinaryConnect 的创新方法,它通过在前向传播和反向传播中使用二值权重(binary weights),显著降低了计算复杂性,同时还能保持模型的高性能。接下来,我们将深入探讨 BinaryConnect 的核心算法及其实现细节,揭示其背后的科学原理和技术优势。


    🧠 核心思想:二值化权重的魔力

    BinaryConnect 的核心思想是:在神经网络的传播过程中,将权重限制为二值(例如 +1 或 -1),从而将复杂的乘法运算转化为简单的加减法运算。这种方法不仅可以显著降低计算成本,还能够起到正则化的作用,从而提升模型的泛化能力。

    为什么二值化可行?

    1. 随机梯度下降的鲁棒性
      随机梯度下降(Stochastic Gradient Descent, SGD)是一种对噪声具有高度容忍的优化算法。即使权重被二值化,SGD 仍然能够通过多次迭代逐步逼近最优解。
    2. 噪声的正则化效应
      二值化权重可以被视为一种噪声注入,这种噪声能够有效地防止模型过拟合,从而提升泛化性能。这一点与 Dropout 和 DropConnect 等正则化方法类似。
    3. 硬件友好性
      在硬件实现中,乘法运算通常比加法运算更耗能、更占用资源。通过将乘法替换为加减法,BinaryConnect 为低功耗设备上的深度学习应用铺平了道路。

    🛠️ 算法实现:从理论到实践

    BinaryConnect 的实现可以分为以下几个关键步骤:

    1️⃣ 权重二值化

    权重的二值化是 BinaryConnect 的核心操作。具体来说,权重 www 被二值化为 wbw_bwb​,其取值为 +1 或 -1。二值化可以通过以下两种方式实现:

    (1)确定性二值化

    使用符号函数(sign function)直接将权重二值化:

    wb={+1,if w≥0,−1,otherwise.w_b = \begin{cases} +1, & \text{if } w \geq 0, \\ -1, & \text{otherwise}. \end{cases}wb​={+1,−1,​if w≥0,otherwise.​

    这种方法简单高效,但可能会丢失部分信息。

    (2)随机二值化

    通过概率分布对权重进行随机采样:

    wb={+1,with probability σ(w),−1,with probability 1−σ(w).w_b = \begin{cases} +1, & \text{with probability } \sigma(w), \\ -1, & \text{with probability } 1 – \sigma(w). \end{cases}wb​={+1,−1,​with probability σ(w),with probability 1−σ(w).​

    其中,σ(w)\sigma(w)σ(w) 是一个“硬化的 Sigmoid 函数”:

    σ(x)=clip(x+12,0,1)=max⁡(0,min⁡(1,x+12)).\sigma(x) = \text{clip} \left( \frac{x + 1}{2}, 0, 1 \right) = \max(0, \min(1, \frac{x + 1}{2})).σ(x)=clip(2x+1​,0,1)=max(0,min(1,2x+1​)).

    这种方法能够更好地保留权重信息,但计算开销略高。


    2️⃣ 传播与更新:算法全流程

    BinaryConnect 的训练过程可以分为三个阶段:

    (1)前向传播

    在前向传播阶段,使用二值化后的权重 wbw_bwb​ 计算每一层的激活值:

    ak=f(wb⋅ak−1+bk),a_k = f(w_b \cdot a_{k-1} + b_k),ak​=f(wb​⋅ak−1​+bk​),

    其中,aka_kak​ 是第 kkk 层的激活值,fff 是激活函数(如 ReLU)。

    (2)反向传播

    在反向传播阶段,同样使用二值化后的权重 wbw_bwb​ 计算梯度:

    ∂C∂ak−1=∂C∂ak⋅wb,\frac{\partial C}{\partial a_{k-1}} = \frac{\partial C}{\partial a_k} \cdot w_b,∂ak−1​∂C​=∂ak​∂C​⋅wb​,

    其中,CCC 是损失函数。

    (3)参数更新

    在参数更新阶段,使用原始的实值权重 www 累积梯度并更新:

    w←clip(w−η⋅∂C∂w,−1,1),w \leftarrow \text{clip}(w – \eta \cdot \frac{\partial C}{\partial w}, -1, 1),w←clip(w−η⋅∂w∂C​,−1,1),

    其中,η\etaη 是学习率,clip 操作将权重限制在 [-1, 1] 范围内,防止权重过大。

    完整的训练流程可以用以下伪代码表示:

    **算法 1:BinaryConnect 的 SGD 训练流程**  
    输入:小批量数据 (x, y),初始权重 w,学习率 \eta  
    输出:更新后的权重 w  
    
    1. **前向传播**  
       - 将权重二值化:w_b \leftarrow \text{binarize}(w)  
       - 逐层计算激活值:a_k \leftarrow f(w_b \cdot a_{k-1} + b_k)  
    
    2. **反向传播**  
       - 逐层计算梯度:\frac{\partial C}{\partial a_{k-1}} \leftarrow \frac{\partial C}{\partial a_k} \cdot w_b  
    
    3. **参数更新**  
       - 计算梯度:\frac{\partial C}{\partial w}  
       - 更新权重:w \leftarrow \text{clip}(w - \eta \cdot \frac{\partial C}{\partial w}, -1, 1)  
       - 更新偏置:b \leftarrow b - \eta \cdot \frac{\partial C}{\partial b}  
    

    3️⃣ 测试阶段的推断

    在测试阶段,可以选择以下三种推断方式:

    1. 使用二值化权重 wbw_bwb​,实现最快的推断速度;
    2. 使用实值权重 www,获得更高的精度;
    3. 对随机二值化的权重进行多次采样,取其平均值作为最终输出。

    在实验中,作者发现第一种方法在确定性二值化的情况下效果最佳,而第二种方法适用于随机二值化。


    📊 实验结果:性能与效率的双赢

    BinaryConnect 在多个基准数据集上的表现令人印象深刻。以下是主要实验结果:

    数据集无正则化 DNNBinaryConnect(确定性)BinaryConnect(随机)Dropout
    MNIST1.30%1.29%1.18%1.01%
    CIFAR-1010.64%9.90%8.27%
    SVHN2.44%2.30%2.15%

    这些结果表明,BinaryConnect 不仅能够显著降低计算复杂度,还能通过正则化效应提升模型的泛化性能。


    🔮 未来展望:从理论到硬件的飞跃

    BinaryConnect 的提出为深度学习在低功耗设备上的应用开辟了新的可能性。未来的研究方向包括:

    1. 扩展到更多模型和数据集
      验证 BinaryConnect 在更复杂模型(如 Transformer)和大规模数据集上的表现。
    2. 完全去除乘法运算
      进一步优化训练过程,彻底摆脱乘法运算的依赖。
    3. 硬件实现
      设计专用硬件,加速 BinaryConnect 的实际部署。

    📚 参考文献

    1. Courbariaux, M., Bengio, Y., & David, J. (2016). BinaryConnect: Training Deep Neural Networks with binary weights during propagations.
    2. Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks.
    3. Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: A simple way to prevent neural networks from overfitting.

    结语:BinaryConnect 是深度学习领域的一次大胆尝试,它用简单的二值化操作解决了复杂的计算问题,为未来的研究和应用提供了新的思路。让我们期待它在更多场景中的精彩表现!

  • 免费的过程奖励:无需过程标签的隐式过程强化方法

    摘要

    与仅评估整个响应的结果奖励模型(Outcome Reward Models,ORMs)不同,过程奖励模型(Process Reward Models,PRMs)逐步评分推理轨迹,提供更密集和更细粒度的奖励。然而,训练PRM需要在每个中间步骤上进行标注,这给人工和自动数据收集带来了显著挑战。本文旨在解决这一问题,提出了一种隐式PRM方法,利用更便宜的响应级标签通过训练ORM来获取PRM,无需额外的过程标签。理论和实验证明,隐式PRM不仅能够有效提升模型性能,而且在训练成本上远低于传统的MCTS基方法。在MATH数据集上的实验表明,隐式PRM在使用不到1/38的训练数据的情况下,性能超越了强大的基线方法,并且通过多数投票进一步提升了性能。特别是,当隐式PRM采用交叉熵(Cross-Entropy,CE)损失时,表现出更高的数据效率,即使在每个指令仅有一个响应的极端数据稀缺和不平衡情况下,依然能够持续提升生成模型的性能。

    引言

    大规模语言模型(Large Language Models,LLMs)在自然语言处理任务中展现出卓越的推理能力。然而,依赖数据驱动的模仿学习方法来增强模型推理能力,随着模型规模的增长,逐渐暴露出扩展性不足的问题。更强的推理能力通常需要更多高质量的数据进行训练,但高质量数据的获取成本高且数量有限,导致持续改进变得困难。相比之下,强化学习(Reinforcement Learning,RL)作为基于探索的方法,有望突破这些瓶颈,实现模型能力的进一步提升。

    目前,结果奖励模型(ORMs)主要用于评估完整的响应,适用于强化学习和推理阶段。然而,由于结果奖励的稀疏性,ORMs在推理的最佳选择重新排序和RL训练过程中表现常常不佳,无法提供稳定高效的性能。此外,PRMs通过对每个中间步骤进行评分,提供更密集和细粒度的奖励,从而解决了这些问题。然而,训练PRMs需要在每个中间步骤上进行标注,这在数据收集上耗时且成本高,限制了其扩展性。

    本文提出了一种创新性的隐式PRM方法,通过简单的奖励参数化,利用现有的ORM训练过程自动生成PRM,无需额外的过程标签。这一方法不仅降低了数据收集和训练的成本,还在保持甚至提升模型性能方面表现出色。

    方法

    隐式过程奖励模型(Implicit Process Reward Model,PRM)

    隐式PRM通过结果奖励模型(ORM)进行训练,仅依赖响应的最终对错信息,自动学习过程奖励。具体而言,奖励参数化为策略模型和参考模型的对数似然比:

        \[rθ(y)=βlog⁡πθ(y)πref(y)r_\theta(y) = \beta \log \frac{\pi_\theta(y)}{\pi_{\text{ref}}(y)}rθ​(y)=βlogπref​(y)πθ​(y)​\]

    其中,β\betaβ 是超参数,πθ\pi_\thetaπθ​ 是策略模型,πref\pi_{\text{ref}}πref​ 是参考模型。通过这种参数化,过程奖励 rtr_trt​ 可以表示为:

        \[rt=qt−qt−1r_t = q_t - q_{t-1}rt​=qt​−qt−1​\]

    其中,qtq_tqt​ 是步骤ttt的Q值,表示在给定部分响应 y<ty_{<t}y<t​ 与当前步骤 yty_tyt​ 的情况下,期望的结果奖励。

    算法流程

    隐式PRM的训练流程如下:

    1. 初始化:使用监督微调(Supervised Fine-Tuning, SFT)模型作为策略模型 πθ\pi_\thetaπθ​ 和隐式PRM πψ\pi_\psiπψ​ 的初始模型。
    2. 生成响应轨迹(Rollouts):策略模型 πθ\pi_\thetaπθ​ 生成一批响应序列。
    3. 奖励计算
      • 结果奖励(Outcome Reward, ror_oro​):通过结果验证器对生成的响应进行评分,确定答案的最终对错。
      • 过程奖励(Process Reward, rpr_prp​):利用隐式PRM πψ\pi_\psiπψ​ 为每个生成的token提供奖励估计。
    4. 更新隐式PRM:依据生成的响应轨迹和结果奖励,在线更新隐式PRM πψ\pi_\psiπψ​。
    5. 优势估计(Advantage Estimation)
      • 结果奖励回报(Return of Outcome Rewards, RoR_oRo​):采用RLOO(Reward Leave-One-Out)方法计算结果奖励的回报。
      • 过程奖励回报(Return of Process Rewards, RpR_pRp​)
        1. 使用平均隐式过程奖励计算leave-one-out基线。
        2. 对每个时间步的过程奖励进行归一化处理(即减去基线)。
        3. 计算每个响应的折扣回报。
      最终,优势 AAA 被设定为结果奖励和过程奖励回报的组合:

          \[A=Ro+RpA = R_o + R_pA=Ro​+Rp\]

    6. 策略更新:利用PPO(Proximal Policy Optimization)损失函数,结合优势估计,对策略模型 πθ\pi_\thetaπθ​ 进行更新。
    7. 迭代训练:重复上述步骤,直至模型性能达到预期目标。

    伪代码

    下面给出PRIME算法的伪代码示意:

    PRIME算法伪代码:
    
    1. 初始化策略模型 πθ 和隐式PRM πψ 使用SFT模型
    2. 重复直到收敛:
        a. 使用策略模型 πθ 生成rollouts
        b. 使用隐式PRM πψ 和结果验证器对rollouts评分,获得 r_o 和 r_p
        c. 在线更新隐式PRM πψ 基于 r_p 和实际结果 r
        d. 计算结果奖励 R_o 和过程奖励 R_p
        e. 估计优势 A = R_o + R_p
        f. 使用PPO损失函数更新策略模型 πθ
    

    实验

    设置

    我们在MATH-500数据集(Hendrycks et al., 2021)上通过最佳选择N(Best-of-N, BoN)评估方法对PRM进行评估。为了研究PRM的泛化能力,我们使用了三种不同能力水平的生成模型进行测试:Mistral-Instruct-v0.3、Llama-3.1-8B-Instruct和Llama-3.1-70B-Instruct。对于每个生成的响应,使用PRM对每个步骤进行评分,并选择分数最低的步骤作为整体响应的评分。我们还比较了不同模型在数据收集和PRM训练上的计算开销(FLOPs)。

    数据与资源

    除非另有说明,我们在所有实验中采用以下训练设置:使用UltraInteract(Yuan et al., 2024)提供的数学指令,并为每条指令生成八个rollouts,使用Llama-3.1-8B-Instruct评估rollouts的正确性。我们基于Llama-3.1-8B-Instruct并设置 β=0.05\beta = 0.05β=0.05 训练隐式PRM。

    结果

    实验结果显示,隐式PRM的各个变体在BoN评估中均优于基线方法。特别是,采用DPO(Direct Preference Optimization)和NCA(Neural Collaborative Advantage)损失的隐式PRM表现最佳,分别在平均准确率上达到50.4%和49.4%。采用交叉熵(CE)损失的隐式PRM也表现强劲,平均准确率达到48.4%,尽管训练数据未配对且不平衡。此外,当结合多数投票(Majority Voting)方法时,隐式PRM的性能进一步提升。

    数据与资源对比

    隐式PRM在数据和模型资源的需求上相比于Math-Shepherd展示了更高的效率。在数据收集和训练过程中,隐式PRM(CE)相比Math-Shepherd减少了38.8倍的FLOPs开销。这表明,隐式PRM在保持甚至提升模型性能的同时,大幅降低了训练成本。

    讨论

    1. 多数投票的融合:将隐式PRM与多数投票方法结合,可以进一步提升模型性能。具体而言,KTO和CE变体在融合后表现最为显著,超过了单独使用隐式PRM或多数投票的效果。
    2. 指令和响应的扩展:增加训练指令和响应的数量一致性地提升了隐式PRM的性能,尤其是响应数量的增加对性能影响更大。同时,指令应与下游任务相关,响应的多样性对性能提升贡献不大。
    3. 过程奖励与策略性能的关联:实验表明,隐式PRM的过程奖励能力并不一定转化为策略模型的性能提升,甚至可能存在意外的权衡。因此,PRM的设计应独立于策略模型的性能优化。
    4. 减少参考模型的推理开销:虽然隐式PRM训练时需要参考模型,但实验验证了在某些情况下可以在推理时移除参考模型,而不显著影响性能。这大幅提高了推理效率,尤其是当生成模型远大于奖励模型时。

    结论

    本文提出的隐式PRM方法通过简单的奖励参数化,利用ORM训练过程自动生成PRM,显著降低了PRM训练的成本和复杂性。实验结果表明,隐式PRM在多个数学推理基准测试中表现优异,且在数据和计算资源上具备极高的效率。未来,结合更强大的基座模型,隐式PRM有望进一步缩小与最先进模型的性能差距,推动大规模语言模型在复杂推理任务中的应用。

    参考文献

    @misc{cui2024process,
      title={Process Reinforcement through Implicit Rewards},
      author={Ganqu Cui and Lifan Yuan and Zefan Wang and Hanbin Wang and Wendi Li and Bingxiang He and Yuchen Fan and Tianyu Yu and Qixin Xu and Weize Chen and Jiarui Yuan and Huayu Chen and Kaiyan Zhang and Xingtai Lv and Shuo Wang and Yuan Yao and Hao Peng and Yu Cheng and Zhiyuan Liu and Maosong Sun and Bowen Zhou and Ning Ding},
      year={2025},
      howpublished={\url{https://curvy-check-498.notion.site/Process-Reinforcement-through-Implicit-Rewards-15f4fcb9c42180f1b498cc9b2eaf896f}},
      note={Notion Blog}
    }
    
    @article{yuan2024implicitprm,
      title={Free Process Rewards without Process Labels},
      author={Lifan Yuan and Wendi Li and Huayu Chen and Ganqu Cui and Ning Ding and Kaiyan Zhang and Bowen Zhou and Zhiyuan Liu and Hao Peng},
      journal={arXiv preprint arXiv:2412.01981},
      year={2024}
    }
    

    致谢

    在算法实现上,我们扩展自veRL的强化学习算法。推理过程中,我们使用vLLM,并基于EurusQwen2.5-Math以及LiveCodeBench开发了评估脚本。我们的数据来源主要包括NuminaMathAPPSCodeContestsTACOCodeforces。感谢这些数据集的贡献者们!

    版权声明

    本文基于PRIME项目的公开资料撰写,内容详实,旨在全面介绍隐式PRM算法及其实现细节,供学术交流与研究参考。

    联系我们

    更多信息请访问我们的GitHub仓库或阅读我们的Notion博客

    免责声明

    本文内容基于现有公开资料整理,所涉及的观点和结论仅代表作者个人理解,与项目团队观点一致。任何未经授权的转载和使用均属侵权,敬请谅解。

    结束语

    隐式PRM方法通过创新性的奖励参数化机制,成功降低了PRM训练的门槛,实现了在复杂推理任务中的卓越表现。随着算法的进一步优化和数据资源的丰富,隐式PRM有望在未来的人工智能发展中发挥重要作用,推动语言模型能力的持续进步。

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 沪ICP备2024052574号-1