Skip to content

ztaoing/DeepRL_Steps

Repository files navigation

观察结果 ≠ 客观事实,而是「观察方式」的产物。

强化学习-原理

  1. BASIC 【鱼书】深度学习入门-强化学习 课件及笔记
  2. DRL 【王树森】深度强化学习 课件及笔记
  3. Hands-on-RL 【愈勇等】动手学强化学习++
  4. OPEN AI 强化学习手册 官网地址
  5. 李宏毅-强化学习-PPO 【视频地址
  6. 李宏毅-强化学习-2025【视频地址
  7. 人人都能看懂的PPO原理与源码解读
  8. easy-rl 在线地址
  9. Mathematical-RL [【赵世钰】强化学习的数学原理](https://www.bilibili.com/video/BV1sd4y167NS/?)
  10. RLHF-huggingface

强化学习-代码实现

强化学习算法 github地址

强化学习框架

RLHF

论文关联1

强化学习论文

RL(pass@1)与最大似然估计MLE(pass@k)

技巧还是陷阱?

RL-tools

RL-tools

PPO

DeepSeek及clip

GRPO在机器领域的应用(TODO)

(显示/隐式)KL散度

熵(探索)

是否一定要控制熵

稀疏性

  • TODO-Reinforcement Learning Finetunes Small Subnetworks in Large Language Models

    • RL引起的参数更新稀疏性
    • 这种稀疏性主要源于强化学习微调的数据特性
  • Reinforcement Learning Finetunes Small Subnetworks in Large Language Models

    指出 RL 微调是“局部更新”,而非全局重塑,因此更容易被后续训练干扰

    • 实际上,它只改动了模型 5%-30% 的权重,剩下的部分几乎纹丝不动。这和 SFT(监督微调)那种“地毯式轰炸”的更新模式完全不同。
  • Sparse but Critical: A Token-Level Analysis of Distributional Shifts in RLVR Fine-Tuning of LLMs

    • 在绝大多数生成步骤中,强化学习模型与基础模型的预测分布近乎一致,仅在少部分特定位置出现明显的发散。
    • 少部分词元决定整体性能
    • 在出现较大分布变化的词元位置,RLVR 主要是在基础模型原有的候选词元集合内进行概率重分配和排序调整,较少提升原本在基础模型中处于低概率尾部的词元。
    • DAPO 算法能够同时修改初始高熵和低熵的预测,这体现了其覆盖甚至推翻基础模型自信预测的能力。
    • SimpleRL 则倾向于在基础模型具有较高熵的区域集中产生散度,反映出一种更为保守的更新策略
    • base model 引入的稀疏token,改变了推理的轨迹 RL-tools

从幅度到方向

reasoning direction: pointing from base to RLVR distribution

  • On the Direction of RLVR Updates for LLM Reasoning: Identification and Exploitation
    • 大小度量(熵和KL散度)的分布直方图在Base和RLVR模型之间几乎一模一样
    • 稀疏性源于RLVR对低概率Token的天然聚焦
    • 测试时外推是在训练完成后放大RLVR学到的信号,
    • 而训练时重加权则是在训练过程中主动强化这些信号
    • RLVR 的策略梯度稀疏地集中在低概率token上

Low-Probability Tokens

  • Do Not Let Low-Probability Tokens Over-Dominate in RL for LLMs
    1. 优势重加权(Advantage Reweighting, AR):通过重新调整不同概率词元的优势(advantage)权重,直接削弱低概率词元的影响力。

    2. 低概率词元隔离(Low-Probability Token Isolation, Lopti):将更新过程分解为两个阶段,先更新低概率词元,再更新高概率词元,通过隔离来避免梯度干扰。

      既然高概率词元的梯度那么小,我们干脆在更新时忽略它们,只用中低概率的词元不就行了吗?

      • 图6(a)的实验否定了这一想法。结果显示,如果屏蔽掉高概率词元,模型的性能会比基线 GRPO 更差。这说明高概率词元虽然梯度信号微弱,但它们对模型的贡献是不可或缺的。 Lopti 的更新顺序是成功的关键:
      • Lopti 的核心是“先低后高”的更新顺序。如果把顺序颠倒,变成“先高后低”,会发生什么?图6(b)给出了答案——训练过程在第四个 epoch 后彻底崩溃,性能远差于基线。
      • 只有先处理高梯度、影响大的低概率词元,才能为后续高概率词元的精细调整创造条件。

优势归一化:

损失计算:response-level还是token-level

幻觉

奖励的稀疏性和二元性(对/错)

奖励模型的设计

单奖励与多奖励

阿里:“目标”(序列级)和“手段”(token级)之间的不匹配

RL是否真能超越base model?

RL 能让模型学会全新的推理模式,实现 "能力扩展"

从离散的token序列转向连续的注意力分布

mid-training 中训练:领域指数的重要性

RL 与 SFT

RL训练(Scaling Laws)

多模态

:“对于视觉理解任务”,从优化结果(token),转向优化过程(内部信息分配)

对于视觉理解任务,显式的语言逻辑(Verbalized Logic)可能并不是必须的。

token_to_process

  • Reinforced Attention Learning

    • MLLM(多模态大模型)中从Next-token Prediction(下一个词预测)-->Attention Distribution(注意力分布)
    • 为什么 LLM 的 CoT 经验在多模态感知任务上失效了?
    • 作者的目标是:让高奖励的回复对应的注意力模式被保留和增强
    • 去 CoT 化
    • 强化学习不应该只停留在输出层。Transformer 内部丰富的中间状态(Attention, Activations)其实蕴含着巨大的可优化空间

稀疏奖励

token_to_process

经验强化学习(Experiential Reinforcement Learning, ERL)

学习者在观察到结果后,会反思发生了什么,形成修正后的内部模型,并在后续的尝试中应用这些修正

  • Experiential Reinforcement Learning, ERL
    • 传统的强化学习通常将复杂的环境反馈压缩成一个简单的标量优化信号(scalar optimization signals),这要求策略在没有明确方向的探索中隐式地发现纠正结构
    • 引入经验学习机制,模型可以像人一样,把反馈转化为具体的中间推理(即反思过程),从而进行显式的纠正,大大提高了学习效率和针对性
    • 经验学习:环境的反馈 --> 一段具体的反思
    • 将反思视为中间推理信号
    • 让它先尝试,拿到反馈后进行文字反思,然后再做一次修正尝试,最后将成功的经验“内化”到基础策略中
    • 【反常情况】在 Olmo3-7B-Instruct 挑战 Sokoban 的设定中,无记忆变体反而略微超越了完整的 ERL。

蒸馏

On-Policy Distillation

自蒸馏

On-Policy-Distillation

  • Why Does Self-Distillation (Sometimes) Degrade the Reasoning Capability of LLMs? 研究表明,尽管自我蒸馏在化学问答、代码生成等领域能够缩短推理路径并提升模型性能,但在数学推理领域,该方法会导致模型性能出现较大幅度的下降。
    • 在化学领域,SDPO 在缩短回复长度的同时快速提升了分数
    • 而在数学领域(DAPO-Math-17k 数据集),SDPO 随着训练步数的增加,其评估分数却低于持续增长的 GRPO。
    • “认知不确定性表达”(Epistemic Verbalization)
    • 语言模型输出中的认知不确定性表达是支持其执行纠错和寻找解答的核心组成部分。

Awesome-ML-SYS-Tutorial(RLHF System 开发笔记)

oops 异常

神经网络

分布式

vLLM

Transformer 架构

流水线并行,数据并行和张量并行 (猛猿)

mengyuan-megatron

1.节点内部 (8 卡):使用 TP (张量并行)。因为 8 卡之间有 NVLink 高速互联,可以承受 TP 的高频通信,解决单卡存不下大层的问题。
2.节点之间:使用 PP (流水线并行)。将模型层切分到不同的机器组上,减少跨机器的通信频率。
3.整体集群:使用 DP (数据并行:模型复制,数据分片)。将上述的 "TP+PP" 组合视为一个大的“虚拟卡”,然后复制多份这样的组合,处理不同的数据批次,通过 DP 来扩大总吞吐量。

megatron (猛猿)

mengyuan-megatron

Megatron-LM/
├── megatron/
│   ├── core/                    # Megatron Core (kernels, parallelism, building blocks)
│   │   ├── models/              # Transformer models
│   │   ├── transformer/         # Transformer building blocks
│   │   ├── tensor_parallel/     # Tensor parallelism
│   │   ├── pipeline_parallel/   # Pipeline parallelism
│   │   ├── distributed/         # Distributed training (FSDP, DDP)
│   │   ├── optimizer/           # Optimizers
│   │   ├── datasets/            # Dataset loaders
│   │   ├── inference/           # Inference engines and server
│   │   └── export/              # Model export (e.g. TensorRT-LLM)
│   ├── training/                # Training scripts
│   ├── legacy/                  # Legacy components
│   ├── post_training/           # Post-training (quantization, distillation, pruning, etc.)
│   └── rl/                      # Reinforcement learning (RLHF, etc.)
├── examples/                    # Ready-to-use training examples
├── tools/                       # Utility tools
├── tests/                       # Comprehensive test suite
└── docs/                        # Documentation

《动手学大模型》

大模型训练

大模型推理

大模型评估

训练与推理

Ray

  • ppo-ray(猛猿)
  • openrlhf-_initiate_actors
    • 这段代码展示了如何利用 Ray 的 Placement Group (资源组) 来实现严格的资源隔离和分布式训练环境的搭建。
    • 创建 Master Actor (Rank 0)
    • 创建 Worker Actors (Rank 1 to N)
    • placement_group放置组
      • 资源束 (Bundle)
    • options()

veRL

verl设计

Awesome-ML-SYS-Tutorial

pytorch

About

强化学习原理 + 强化学习代码实现 + 强化学习框架 + 强化学习论文

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors