RL4LLM

RL4LLM

这是新的学习方向,已经抛弃了rec(_)。

具体的学习资源推荐(包括必学资源、选学资源)、项目实践清单,见学习路径文档。

Claude说:在LLM时代,工程能力>理论深度。并且要"代码驱动学习"。

python 复制代码
 # 不要这样学
 理论 → 推导 → 代码 → 应用
 
 # 应该这样学
 跑通代码 → 理解输入输出 → 回头补理论 → 改进代码
  • 能跑通并改进开源项目 > 会推导公式
  • 理解工程trade-off > 追求理论完美
  • 快速学习新技术 > 系统掌握旧知识

"不要等到'准备好了'再开始!"

文章目录

第一阶段:快速入门(2-4周)

1. 最小必要的ML基础(1周)

  • 梯度下降、反向传播
  • 过拟合/欠拟合
  • 损失函数基本概念
  • 简单实现一个线性回归/逻辑回归

1.1梯度下降

梯度是一个向量,由函数对所有参数的偏导数组成。

对于参数向量 θ = θ 1 , θ 2 , . . , θ n T \theta =\left \\theta _1,\\theta _2,..,\\theta _n \\right ^T θ=θ1,θ2,..,θnT,梯度的定义:
∇ J ( θ ) = ∂ J ∂ θ 1 , ∂ J ∂ θ 2 , . . . , ∂ J ∂ θ n T \nabla J\left( \theta \right) =\left \\frac{\\partial J}{\\partial \\theta _1},\\frac{\\partial J}{\\partial \\theta _2},...,\\frac{\\partial J}{\\partial \\theta _n} \\right ^T ∇J(θ)=∂θ1∂J,∂θ2∂J,...,∂θn∂JT

梯度向量的方向是函数值上升最快的方向,因此负梯度方向就是函数值下降最快的方向------ 这是梯度下降算法的核心理论依据。

在机器学习中,我们的目标是找到一组参数 θ θ θ,使得损失函数 J ( θ ) J(θ) J(θ) 达到最小值(全局最小值或局部最小值)。贪心,每一步都选择当前最优的下降方向。

1.从一个初始参数 θ0​ 出发;

2.沿着损失函数的负梯度方向不断更新参数;

3.每次更新都使损失函数 J(θ) 尽可能减小;

4.当损失函数收敛到稳定值(或参数变化量小于阈值)时,停止更新,此时的参数 θ 即为最优参数。

数学推导


梯度下降算法(批量梯度下降)

输入

  • 损失函数 J ( θ ) J(\theta) J(θ)
  • 梯度函数 ∇ J ( θ ) \nabla J(\theta) ∇J(θ)
  • 学习率 α \alpha α
  • 收敛阈值 ϵ \epsilon ϵ
  • 最大迭代次数 T T T

输出 :最优参数 θ ∗ \theta^* θ∗

算法步骤

  1. 初始化参数: θ = 随机值或全零向量 \theta = \text{随机值或全零向量} θ=随机值或全零向量
  2. 遍历迭代( t = 1 → T t = 1 \to T t=1→T):
    3. 计算当前梯度: g = ∇ J ( θ ) g = \nabla J(\theta) g=∇J(θ)
    4. 更新参数: θ = θ − α ⋅ g \theta = \theta - \alpha \cdot g θ=θ−α⋅g
    5. 计算当前损失: J t = J ( θ ) J_t = J(\theta) Jt=J(θ)
    6. 收敛判断:若 ∣ J t − J t − 1 ∣ < ϵ |J_t - J_{t-1}| < \epsilon ∣Jt−Jt−1∣<ϵ 或 ∣ ∣ g ∣ ∣ < ϵ ||g|| < \epsilon ∣∣g∣∣<ϵ,则跳出迭代
  3. 返回最优参数 θ \theta θ

超参数(学习率、批量大小【批量大小决定了计算梯度时使用的样本数量】)

1.2反向传播

图片来自:
5分钟-通俗易懂 - 神经网络 反向传播算法(手算)
更新网络参数也是用的梯度下降思想。

反向传播就是链式法则的递归应用,去展开下面的式子: ∂ f l o s s ∂ 神经元参数 \frac{\partial f_{loss}}{\partial \text{神经元参数}} ∂神经元参数∂floss

复习链式法则:

  • 对于复合函数 y = f ( u ) y=f(u) y=f(u), u = g ( x ) u=g(x) u=g(x),有:
    d y d x = d y d u ⋅ d u d x \frac{dy}{dx}=\frac{dy}{du}\cdot \frac{du}{dx} dxdy=dudy⋅dxdu
  • 对于多变量情况(如 L = f ( a , b ) L=f(a,b) L=f(a,b), a = g ( w ) a=g(w) a=g(w), b = h ( w ) b=h(w) b=h(w)),则是偏导数的链式展开:
    ∂ L ∂ w = ∂ L ∂ a ⋅ ∂ a ∂ w + ∂ L ∂ b ⋅ ∂ b ∂ w \frac{\partial L}{\partial w}=\frac{\partial L}{\partial a}\cdot \frac{\partial a}{\partial w}+\frac{\partial L}{\partial b}\cdot \frac{\partial b}{\partial w} ∂w∂L=∂a∂L⋅∂w∂a+∂b∂L⋅∂w∂b

1.3过拟合/欠拟合

已经掌握

1.4损失函数基本概念

衡量预测值和真实值差异的函数。这里学习分类任务损失函数里的交叉熵损失(是模式识别与机器学习课程的考察内容)。

1.4.1二分类交叉熵损失
1.4.2多分类交叉熵损失

1.5动手实现线性回归

1.6动手实现逻辑回归

2. 深度学习速成(1周)

  • PyTorch基础操作
  • 训练一个简单的CNN/RNN
  • 理解attention机制

3. Transformer与LLM基础(2周)

  • Transformer架构
  • 使用Hugging Face跑通GPT-2
  • 理解tokenization、embedding

第二阶段:LLM核心技术(4-6周)

1. LLM预训练与微调

  • 理解预训练目标(MLM、CLM)
  • 动手微调一个小模型(如BERT-base)
  • 了解LoRA、QLoRA等高效微调方法

2. 提示工程与上下文学习

  • Few-shot learning
  • Chain-of-thought
  • 指令微调基础

3. 强化学习预备知识

  • RL基本概念(只需要1-2天)
  • 策略梯度基础
  • 价值函数概念

第三阶段:LLM强化学习深入(6-8周)

第1-2周:RLHF基础**

  • 人类偏好建模
  • 奖励模型训练
  • PPO在LLM中的应用

第3-4周:DPO及其变种**

  • DPO原理与实现
  • SimPO、IPO等新方法
  • 对比不同方法的优缺点

第5-6周:实战项目**

  • 基于TRL库实现完整RLHF pipeline
  • 在小模型上复现DPO
  • 参与开源项目(如LLaMA-Factory)

第7-8周:前沿技术**

  • DeepSeek R1的技术解读
  • GRPO等新方法
  • 多模态RLHF
相关推荐
小七-七牛开发者40 分钟前
Codex 实践系列 Vol.04:用 Goal 和 Plan 管住一个长任务
ai·大模型·agent·claude·token·工作流·claudecode·ai coding
熊猫钓鱼>_>2 小时前
AI 3D 虚拟盲盒工坊:用腾讯云混元3D + TTS Skills 打造会说话的三维收藏品
人工智能·大模型·llm·agent·tts·混元3d·多skill协同
thesky1234563 小时前
27届大模型面试准备(二十五):推理服务化与投机解码——vLLM、PagedAttention、Medusa 与连续批处理
大模型·vllm·eagle·pagedattention·medusa·推理服务化·投机解码
NutShell Wang3 小时前
国产全模态开源潮:从语言模型到视频模型,中国开源生态再升级
人工智能·语言模型·开源·大模型·音视频·多模态·vibe coding
码字的特恩5 小时前
微软确认暂不为 Windows 11 加入透明效果自定义功能,建议用户使用第三方工具
人工智能·windows·算法·microsoft·计算机·大模型·编程
程序猿编码5 小时前
不用PyTorch,不用CUDA,我用C++手写了一个能跑GPT和Whisper的推理库
c++·pytorch·gpt·大模型·whisper
AI大佬的小弟6 小时前
大模型名词精讲06:Top-P(核采样)
大模型·top-p·temperature·ai入门·核采样·采样策略·ai调参
thesky1234561 天前
27届大模型面试准备(二十三):数据工程与合成数据——配方、去重、质量过滤与数据飞轮
大模型·合成数据·数据去重·数据工程·minhash·数据配比·模型坍缩
寻道码路1 天前
大模型工程化实战(一):概率坍塌的救赎 - 给LLM输出加锁
大模型·agent·langgraph·ai工程化·llm确定性