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,..,θn]T,梯度的定义:
∇ 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∂J]T

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

在机器学习中,我们的目标是找到一组参数 θ θ θ,使得损失函数 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
相关推荐
R.X. NLOS3 小时前
知识点1:DDPM数学原理及理解
大模型·大厂面试·扩散模型·ddpm·数学原理
喜欢吃豆3 小时前
LangChain 架构深度解析:从中间件机制到人机协同 SQL 智能体实战报告
人工智能·中间件·架构·langchain·大模型
Study9963 小时前
大语言模型的详解与训练
人工智能·ai·语言模型·自然语言处理·大模型·llm·agent
谷哥的小弟4 小时前
SQLite MCP服务器安装以及客户端连接配置
服务器·数据库·人工智能·sqlite·大模型·源码·mcp
模型启动机4 小时前
DeepSeek-OCR是「长文本理解」未来方向?中科院新基准VTCBench给出答案
人工智能·ai·大模型·ocr
nju_spy5 小时前
动手学强化学习上交张伟楠(一)导论 + 多臂老虎机 MAB(ε-greedy+上置信界+汤普森采样)
人工智能·python·强化学习·actor-critic·多臂老虎机·汤普森采样·探索与利用
谷哥的小弟5 小时前
File System MCP服务器安装以及客户端连接配置
服务器·人工智能·大模型·file system·mcp·ai项目
huazi-J8 小时前
Datawhale 大模型基础与量化微调 task0:Tokenizer
语言模型·大模型·tokenizer·datawhale
少林码僧20 小时前
2.9 字段分箱技术详解:连续变量离散化,提升模型效果的关键步骤
人工智能·ai·数据分析·大模型