Reinforcement Learning as a Co-Design of Product and Research
主讲人:Karina Nguyen Canvas:从普通的 next-token prediction 到 complex tasks 的转变。让用户和模型交流的方式更加多样(Training the model to become a collaborator) Two ways of building research-driven products: 这个是 \(\mathbb{P}(\text{I Know})\) / Calibration 的例子: 这个是 more humane command line 的例子: Gives opinions but with caveats 尽量不要直接说 “I don't actually have a point of view” 在有争议的问题上,而是要适当的发表自己的观点,并提出这个观点有 bias More nuanced…
Reinforcement Learning
Reinforcement learning 关心的是如何通过与环境交互,学到让长期期望 return 更高的 policy。这组笔记沿着「估计梯度 → 更新策略 → 用于语言模型 → 处理采样偏差」展开。 前两篇是基础主线。熟悉 policy gradient 和 PPO 后,可以直接阅读 LLM 应用或 mismatch 专题。 上面的主线显式优化 policy。这里保留 value-based 方法的开头,以及把 policy optimization 用于 diffusion models 的阅读入口。 之前其实我们都显式维护一个 \(\pi_\theta\),也可能通过 \(\mathcal V\) 和 \(\mathcal Q\) 来指导这个 policy 的更新。 那其实我们能不能直接根据 \(\mathcal Q\) 来选 action?比如先选定一个最大值对应的…
Reinforcement Learning: LLM Post-training
这篇把 policy gradient 与 advantage estimation 和 PPO 用到语言模型中,整理 RLHF、DPO 与 GRPO 的关系。部分论文与实现笔记仍未完成,保留原来的待续标记。 系列导读 · 上一篇 · 下一篇 把 RL 的交互过程放到文本生成中,state 是 prompt 与已生成的 prefix,action 是下一个 token。一条完整回答可以得到 reward,也可以参与偏好比较。下面先看从人类偏好训练 reward model、再用 PPO 更新策略的路径,接着整理 DPO 和 GRPO。 这里把 reward model、reference policy 与 PPO 的更新限制放在同一个训练流程中理解。 Learning to summarize from human feedback (Stiennon et al., 2020) /…
Reinforcement Learning: Policy Gradient 与 Advantage Estimation
Reinforcement learning 中,一个 action 不只带来眼前的 reward,还会改变后续能遇到的 state。这篇从轨迹的期望 return 出发,依次推导 REINFORCE、reward-to-go、baseline、actor-critic 和 GAE,回答如何从采样轨迹构造策略的梯度。 系列导读 · 下一篇 先明确策略在优化什么,再区分几类算法如何表示和改进这个策略。 我们把 \(\langle s_t,a_t\rangle\) 打包起来,在 Markov 环境和只依赖当前 state 的策略下,其实它就构成了一个 Markov chain。记一条轨迹为 \(\tau=(s_1,a_1,\ldots,s_T,a_T,s_{T+1})\): 这里 \(\pi_\theta(a_t\mid s_t)\) 是策略,\(\mathbb P\) 是环境转移;初始状态…
Reinforcement Learning: 从旧策略数据到 PPO
上一篇 从采样轨迹构造了 policy gradient 和 advantage estimate。这篇接着回答:策略已经变化后,旧数据还能怎么用,以及一轮更新应该走多远。沿用 \(\pi_\theta(a\mid s)\) 表示当前策略,\(\hat{\mathcal A}(s,a)\) 表示求导时固定的 advantage estimate;轨迹记为 \(\tau\),总 reward 为 \(r(\tau)\)。 系列导读 · 上一篇 · 下一篇 有了 advantage estimate,还要决定如何使用一批轨迹更新策略。先看旧数据与当前策略之间的分布差异,再看 TRPO 和 PPO 如何限制单轮更新的幅度。 上一篇的梯度估计 使用 on-policy 数据。但真实在训练的时候,我们很难做到稍稍改一点 \(\theta\),就重新生成一堆新的 \(\tau\)。这样是非常…
Reinforcement Learning: Training-inference Mismatch 与 Score Centering
Policy gradient 通常从当前策略采样,或者像 importance sampling 那样显式处理分布差异。这篇专门讨论 LLM 的 sampler 与 trainer 不一致时,更新中会出现什么偏差,以及 Score Centering 能修正其中哪一部分。阅读时需要熟悉 baseline;涉及 group statistics 的讨论可以对照 GRPO。 系列导读 · 上一篇 On-policy policy gradient 的无偏性依赖一个条件:产生 action 的 distribution,必须与计算 \(\nabla_\theta\log\pi_\theta\) 的 distribution 对得上。 对 LLM 来说,rollout engine 和 trainer 即使拿着同一份权重,也可能因为量化、不同的 kernel 或数值计算顺序,给出不同的 next…
2021 Zhejiang Gao Kao Calculus
Let \(a, b\) be real numbers, and \(a>1\). Consider the function \(f(x)=a^x-bx+e^2\) (\(x\in\mathbb{R}\)). Note: The derivative of \(f(x)\) is \(f''(x)=a^x\ln^2 a>0\), so \(f'(x)\) is an strictly increasing function. When \(b<0\), \(f'(x)>\lim_{x\to-\infty}f'(x)=0\), so \(f(x)\) is an strictly increasing function. When \(b\ge 0\), solving \(f'(x)=0\) we can get \(x=\log_a\frac{b}{\ln a}\). Since…
Maxwell's Equations
要学不完了。 简单记一点点。 由于 MathJax 居然不支持多重的环积分,我下面所有的多重环积分全部用 \(\oint\) 来表示,能看懂就行。没时间调了啊啊啊啊啊啊啊啊来不及了要考试了啊啊啊啊啊啊啊啊 这样子打: 虽然有点抽象,但你就说打没打出来吧( 2026/02/18 update: 重写了 blog,把 MathJax 升级的 MathJaX 4 了,貌似现在可以打出来了: 这个 \(\varepsilon_0\) 其实是真空的电容率。 直观理解就是每个电荷 \(q\) 能产生 \(\frac{q}{\varepsilon_0}\) 的电场线。 他能推库仑定律,就是你考虑一个点电荷 \(q\) 为中心,半径为 \(r\) 的球面,表面积是 \(4\pi r^2\),然后因为整个球是中心对称的,于是我们就有: 于是乎: 如果不是真空,也就是如果有电解质(Dielectric,记住…
Linear Time (Worst Case) Nth-Element Algorithm
看到一个有趣的算法,能在最坏时间复杂度 \(\mathcal{O}(n)\) 内求出序列第 \(k\) 小。 首先如果是期望线性的话,应该是非常简单的,就是我们直接使用快速排序的分治思想,随机选一个数作为 pivot,把比她小的放前面,比她大的放后面,于是就形成了左右两边,紧接着考虑左边的 size 是否小于 \(k\) 进行分治。 但我们需要的是确定性算法。 首先我们保证每个数是不相同的,这很好保证,只要开个 pair,在每个数后面附上一个 index 以双关键字比较即可。 现在有一个非常有趣的想法,就是我们用一种方法来找到一个 pivot,让这个 pivot 比较居中。我们考虑将序列按照每五个切成片,这样的话如果是一个长度为 \(n\) 的序列,就会被切成 \(\left\lceil \frac{n}{5}\right\rceil\) 片,每片至多 \(5\) 个数,然后我们对这…
CodeForces 1594F Ideal Farm
Farmer John 有 \(s\) 只奶牛,和 \(n\) 个独立的篱笆,每个篱笆里可以圈养一些奶牛。出于一种奇♂️怪的偏好,Farmer John 把篱笆排成了一排。第 \(i\) 个篱笆圈养的奶牛数量为 \(a_i\),显然我们有 \(\sum_{i=1}^n a_i=s\)。而且,处于 Farmer John 的癖好,他要求对于每个 \(i\) 都有 \(a_i>0\)。 Bessie 认为一个农场是“幸运的”当且仅当你可以找到一个区间 \([l,r]\),使得 \(\sum_{i=l}^ra_i=k\)。 而得寸进尺的 Bessie 认为一个农场是“牛逼的”当且仅当不管 Farmer John 怎么安置他的奶牛,该农场都是“幸运的”。 现在有 \(t\,(1\le t\le 10^5)\) 组询问,每组询问给出 \(s, n\) 和…