<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[muyuu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/muyuu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; muyuu]]></copyright><item><title><![CDATA[【强化学习漫谈】4. 从统一视角看 LLM Post-Training]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/148435990</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/148435990</guid><author>muyuu</author><pubDate>Fri, 13 Jun 2025 11:54:19 +0800</pubDate><description><![CDATA[系列文章。]]></description><category></category></item><item><title><![CDATA[【强化学习漫谈】3.RLHF：从Reward Model到DPO]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/147222741</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/147222741</guid><author>muyuu</author><pubDate>Tue, 15 Apr 2025 21:15:07 +0800</pubDate><description><![CDATA[前面说过，不管是两个偏好回答还是 K 个偏好回答，都可以用 BT 模型来建模 Reward Loss，所以我们这里只推导这种情形下的 DPO Loss，PT 模型下的 DPO Loss 是同理的。不过相对第一点，这一点要改进比较难，因为 DPO 的重点就是把稠密的奖励信号简化成了稀疏的奖励信号，否则就又回到强化学习的路上了。我们在前面的文章里详细讨论过 PPO，虽然效果不错，但LLM中使用PPO一个最大的问题是。可以看出，不论是训练时的显存，还是计算量，DPO 相比起 PPO，都可谓是有大幅度的下降。]]></description><category></category></item><item><title><![CDATA[【强化学习漫谈】1.RLHF：从PPO到GRPO]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/147170140</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/147170140</guid><author>muyuu</author><pubDate>Mon, 14 Apr 2025 14:06:39 +0800</pubDate><description><![CDATA[然而上述只考虑绝对分数的目标函数会有一个问题：由于每个人的水平不同，如果小明是个差生，一般只能考到30分左右，而其他人都能考到80分以上，如果只拿绝对分数作为考评，小明很可能就破罐子破摔了。为了奖励信号能及时反应小明每次成绩的变化，我们需要引入一个预期分数线来改善考评机制，只要每次“累计成绩”能超过预期分数线，就可以拿到好的考评结果，这样处于不同水平的学生都可以获得一个比较良性的激励。那么用什么来作为预期分数线比较合理呢？]]></description><category></category></item><item><title><![CDATA[【Andrej Karpathy 神经网络从Zero到Hero】--2.语言模型的两种实现方式 （Bigram 和 神经网络）]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/141403381</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/141403381</guid><author>muyuu</author><pubDate>Sun, 09 Mar 2025 22:55:25 +0800</pubDate><description><![CDATA[【系列笔记】本文主要参考，演示。]]></description><category></category></item><item><title><![CDATA[LLM推理--vLLM解读]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/145462157</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/145462157</guid><author>muyuu</author><pubDate>Wed, 05 Feb 2025 22:37:10 +0800</pubDate><description><![CDATA[例如：1.对于同样一个prompt，给出三种不同回答的场景，这个prompt的 KV 就可以在三个数据中都使用，而不用复制三份，即虽然虚拟内存上看是有三份，但这三份在物理内存上都指向一份，实际只消耗了一份内存。2. 在 beam search 场景，top k 的序列往往有很多前置 token 是相同的，这些也可以用类似上面的方法，即虚拟内存各占各的，但相同 token 的在物理内存上指向同一份。这里释放后来任务的 KV 占用，既可以是扔掉后面再重新算，也可以是先放到CPU 内存当中，后面再直接调用。]]></description><category></category></item><item><title><![CDATA[DeepSpeed Zero 解读]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/145420857</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/145420857</guid><author>muyuu</author><pubDate>Mon, 03 Feb 2025 22:12:02 +0800</pubDate><description><![CDATA[检查点技术通过在前向传播时只存储部分关键激活值（称为“检查点”），在反向传播时重新计算丢弃的部分，以此降低内存占用，并不会引入跨设备的数据传输延迟。，输入长，batch size大，activates内存就大，各个GPU上由于输入的数据不同，其activates变量也不一样，不涉及重复存储的问题。，即无论input是什么，batch size多大，需要用到的变量都是这些，因此可以认为这些变量在各个GPU上都保留一份是纯复制，是冗余的；]]></description><category></category></item><item><title><![CDATA[【Andrej Karpathy 神经网络从Zero到Hero】--1. 自动微分autograd实践要点]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/141354063</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/141354063</guid><author>muyuu</author><pubDate>Wed, 21 Aug 2024 21:11:45 +0800</pubDate><description><![CDATA[第一步首先要定义Valuedata（Value 的数值），grad（Value 的梯度），_backward（反向传播函数，初始化为 None），_prev（需要依赖于它的Value)"return outreturn outreturn outtopo = []每个算子的_backward函数需要依次按算子进行手动定义一个Value的backward函数，是从当前Value开始，先将依赖于这个Value的所有Value按依赖顺序串起来，然后再从当前Value。]]></description><category></category></item><item><title><![CDATA[训练 Transfomer 模型的内存消耗计算]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/141165802</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/141165802</guid><author>muyuu</author><pubDate>Tue, 13 Aug 2024 16:13:03 +0800</pubDate><description><![CDATA[经典图打底：LY∂W∂L​​Y−Y2XTW−2Y−Y∂W∂Y​−2Y−XTWX​这里面X就需要保存下来供反向传播时使用下面具体的分析中需要用到每一层的具体运算张量，具体可以参考。]]></description><category></category></item><item><title><![CDATA[【强化学习的数学原理】课程笔记--6（Actor-Critic方法）]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/140806554</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/140806554</guid><author>muyuu</author><pubDate>Wed, 07 Aug 2024 22:52:59 +0800</pubDate><description><![CDATA[目录Actor-Critic 方法QAC 算法Advantage Actor-Critic 算法Baseline invarianceOff-policy Actor-Critic重要性采样Deterministic Policy Gradient (DPG)
系列笔记：
【强化学习的数学原理】课程笔记–1（基本概念，贝尔曼公式）
【强化学习的数学原理】课程笔记–2（贝尔曼最优公式，值迭代与策略迭代）
【强化学习的数学原理】课程笔记–3（蒙特卡洛方法）
【强化学习的数学原理】课程笔记–4（随机近似与随机梯度]]></description><category></category></item><item><title><![CDATA[【强化学习的数学原理】课程笔记--5（值函数近似，策略梯度方法）]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/140585492</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/140585492</guid><author>muyuu</author><pubDate>Sun, 28 Jul 2024 22:51:45 +0800</pubDate><description><![CDATA[目录值函数近似一个例子TD 算法的值函数近似形式Sarsa, Q-learning 的值函数近似形式Deep Q-learningexperience replay策略梯度方法（Policy Gradient）Policy Gradient 的目标函数目标函数 1目标函数 2两种目标函数的同一性Policy Gradient 目标函数的梯度Policy Gradient 目标函数梯度的统一形式discounted case 情形下的目标函数梯度undiscounted case 情形下的目标函数梯度蒙特卡洛]]></description><category></category></item><item><title><![CDATA[【强化学习的数学原理】课程笔记--4（随机近似与随机梯度下降，时序差分方法）]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/140252957</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/140252957</guid><author>muyuu</author><pubDate>Sat, 20 Jul 2024 17:55:57 +0800</pubDate><description><![CDATA[目录随机近似与随机梯度下降Mean estimationRobbins-Monro 算法用 Robbins-Monro 算法解释 Mean estimation用 Robbins-Monro 算法解释 Batch Gradient descent用 SGD 解释 Mean estimationSGD 的一个有趣的性质时序差分方法Sarsa 算法一个例子Expected Sarsa 算法n-step Sarsa 算法Q-learning 算法off-policy 和 on-policy总结
随机近似与随机梯度]]></description><category></category></item><item><title><![CDATA[【强化学习的数学原理】课程笔记--3（蒙特卡洛方法）]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/140087558</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/140087558</guid><author>muyuu</author><pubDate>Wed, 03 Jul 2024 17:03:13 +0800</pubDate><description><![CDATA[ϵ。]]></description><category></category></item><item><title><![CDATA[【强化学习的数学原理】课程笔记--2（贝尔曼最优公式，值迭代与策略迭代）]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/139933054</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/139933054</guid><author>muyuu</author><pubDate>Sun, 30 Jun 2024 18:20:31 +0800</pubDate><description><![CDATA[目录贝尔曼最优公式最优 Policy求解贝尔曼最优公式求解最大 State Value v∗v^*v∗根据 v∗v^*v∗ 求解贪婪形式的最佳 Policy π∗\pi^*π∗一些证明过程一些影响 π∗\pi^*π∗ 的因素如何让 π∗\pi^*π∗ 不 “绕弯路”γ\gammaγ 的影响reward 的影响值迭代与策略迭代值迭代策略迭代值迭代和策略迭代的具体差别一个小例子
贝尔曼最优公式
作用：用于找到最优的 Policy
最优 Policy

如果存在一个 Policy π∗\pi^*π∗，st 对于 ]]></description><category></category></item><item><title><![CDATA[【强化学习的数学原理】课程笔记--1（基本概念，贝尔曼公式）]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/139889173</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/139889173</guid><author>muyuu</author><pubDate>Mon, 24 Jun 2024 17:37:08 +0800</pubDate><description><![CDATA[当从状态 s 出发时，discounted return的期望值（从一个state出发，可能有多条路径到达terminal/或称多条trajectory，对所有可能的trajectory的discounted return求期望）State Value 是指从一个 state 出发的 average return，而 Action Value 是指从一个 state 出发，，eg：上图中第一个return是2，第二个return是1，所以第一个policy更好（没有进到forbidden block）]]></description><category></category></item><item><title><![CDATA[ChatGPT原理解读]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/129006300</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/129006300</guid><author>muyuu</author><pubDate>Thu, 02 Mar 2023 16:18:21 +0800</pubDate><description><![CDATA[chagpt 算法介绍]]></description><category></category></item><item><title><![CDATA[神经网络与深度学习6---网络优化与正则化]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/122268340</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/122268340</guid><author>muyuu</author><pubDate>Fri, 02 Sep 2022 17:53:03 +0800</pubDate><description><![CDATA[网络优化与正则化参数初始化为什么不能将参数初始化为全零
本文是邱锡鹏教授撰写的《神经网络与深度学习》一书中 第7章：网络优化与正则化 的读书笔记，主要内容是一些本人觉得比较值得记录的内容，中间也会包括一些拓展和思考。
参数初始化
为什么不能将参数初始化为全零
以一个三层网络为例：

其中z4=w14∗x1+w24∗x2+w34∗x3+b4z5=w15∗x1+w25∗x2+w35∗x3+b5z6=w16∗x1+w26∗x2+w36∗x3+b6
z_4=w_{14}∗x_1+w_{24}∗x_2+w_{34}∗]]></description><category></category></item><item><title><![CDATA[JAVA 基础]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/117781671</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/117781671</guid><author>muyuu</author><pubDate>Mon, 11 Jul 2022 15:39:37 +0800</pubDate><description><![CDATA[目录类，抽象类，接口抽象类和普通类的区别接口和抽象类的区别static，final关键字static
类，抽象类，接口
抽象类

抽象类：含有抽象方法的类叫作抽象类
抽象方法：必须用"abstract"关键字进行修饰。抽象方法是一种特殊的方法，它只有声明，而没有具体的实现。

[public] abstract class ClassName { //抽象类
    abstract void fun();//抽象方法
}


因为抽象类中含有无具体实现的方法，所以不能用抽象类创建对象。
抽象类就是为了继承]]></description><category></category></item><item><title><![CDATA[非root用户安装cuda与cudnn]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/124160673</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/124160673</guid><author>muyuu</author><pubDate>Wed, 13 Apr 2022 23:11:38 +0800</pubDate><description><![CDATA[非root用户安装cuda与cudnn
ubuntu非root用户安装CUDA以及cuDNN

]]></description><category></category></item><item><title><![CDATA[为什么使用softmax作为多分类的概率函数]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/123800202</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/123800202</guid><author>muyuu</author><pubDate>Tue, 12 Apr 2022 15:50:59 +0800</pubDate><description><![CDATA[首先我们知道神经网络输出层的结果一般无法直接作为概率值，因为它既不是全非负值，加和也不为零，这是不满足概率的定义的。因此首先我们需要对其做一个转化使得：

向量值全为非负值
向量值加和等于1
转化是递增函数

而上面几个条件就排除了 xi∑ixi\frac{x_i}{\sum_{i} x_i}∑i​xi​xi​​，xi2∑ixi2\frac{x_i^2}{\sum_{i} x_i^2}∑i​xi2​xi2​​，∣xi∣∑i∣xi∣\frac{|x_i|}{\sum_{i} |x_i|}∑i​∣xi​∣∣xi]]></description><category></category></item><item><title><![CDATA[Word2vec结构详解及原理推导]]></title><link>https://blog.youkuaiyun.com/muyuu/article/details/123842569</link><guid>https://blog.youkuaiyun.com/muyuu/article/details/123842569</guid><author>muyuu</author><pubDate>Tue, 05 Apr 2022 20:52:46 +0800</pubDate><description><![CDATA[目录统计语言模型神经概率语言模型Word2vecHierarchical SoftmaxHuffman 树CBOW 和 Skip-gramNegative SamplingCBOW 和 Skip-gram
由于 Word2Vec 本质其实是一个语言模型，词向量只是这个语言模型的副产物，因此我们首先简单看一下语言模型：
统计语言模型
语言模型其实就是计算一个句子出现的概率，例如：

我明天早上要去上学
明天去上学我要早上
我名天枣上要去尚学

那么一个好的语言模型应该会让句子1的概率大于句子2和句子3。具体来]]></description><category></category></item></channel></rss>