好的,我们现在就进入这门课程的“实验课”环节。
这会是一次非常详尽的、手把手的、带有具体数值的演算。我们将完整地走一遍PPO算法的单次更新循环,从模型采样一个回答开始,到最终更新它的参数结束。我会把概率论、数理统计和强化学习的知识点,嵌入到每一步的计算和决策中。
我们的故事主角:
我们的“迷你世界”设定 (为了计算方便):
{A, B, C, D}。Prompt_0,小P需要生成一个长度为2的回答。θ: 我们极度简化,假设小P的核心参数就是一个1x4的权重矩阵θ。它将输入状态的向量(假设为[1,0])转换为4个词的Logits。
θ_old = [0.5, 0.4, 0.2, 0.1]η = 0.001β = 0.02ε = 0.2 (即更新范围在[0.8, 1.2]之间)在这一幕,我们将让小P(当前策略 π_θ)来完成一次创作,并记录下所有关键信息。
s_0: Prompt_0。假设其向量表示为 [1, 0]。π_θ) 的思考过程:
Logits_0 = [1, 0] · θ_old^T (这里为了简化,我们假设状态向量和参数可以直接作用)
实际上应该是 Logits_0 = Some_Embedding(s_0) * θ_old。我们简化为 Logits_0 = θ_old = [0.5, 0.4, 0.2, 0.1]。Probs_0 = softmax(Logits_0) = softmax([0.5, 0.4, 0.2, 0.1]) ≈ [0.26, 0.24, 0.20, 0.18]