尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

华为-Agent技术学习

发布时间:2026/9/28 20:45:13

资讯中心
01
ARTICLE

华为-Agent技术学习

华为-Agent技术学习
SFT监督微调supervised fine-tune构建问题-回答对作为训练样本将训练样本丢进大模型中由于大模型的并行生成每个位置的词表选择所以通过mask掉问题的loss能够构建出对问题如何进行回答的回答loss然后对模型进行训练考虑到全量训练y Wx实际W要反向传播等的资源消耗很大通过LoRA进行模型微调一方面节省资源一方面能够快速适应不同专业领域的方向。LoRA即yWxABx其中W为原模型参数比如4096*4096的矩阵通过冻结W而A可以设为4096*8B为8*4096虽然由于低秩的原因AB无法表示所有的4096*4096的矩阵但是能够大幅度的降低训练参数量注意前向传播的参数量是无法改变的。最终影响模型输出的能力。和RL最大的区别我认为是在数据构建上SFT是人工构建的合适的数据集用于学习而RL则是由大模型自身生成的结果构建数据对进行偏向训练。RL强化学习通过对动作的奖励让模型输出在当前上下文偏向于当前动作的行为所以强化学习我认为只能改变偏向不能扩大搜索范围DeepSeekMath提到的RL收益更多来自让原本有机会生成的正确答案变得更容易输出而不是显著扩大模型在大量尝试下能够解决的问题范围。通常动作具有连贯性所以在构建奖励的时候有可能动作①和动作②没有当前步奖励但是动作③是在动作①②的基础上才完成的所以在计算回报的时候通常会包括后面步的奖励即Gr_t γ r_t1 γ² r_t2 ...。看到任务与仓库信息 ↓ 选择动作①读取文件 ↓ 得到反馈文件内容 ↓ 选择动作②修改代码 ↓ 得到反馈修改成功 ↓ 选择动作③运行测试 ↓ 得到反馈测试通过任务结束价值函数由于奖励是在当前上下文中产生的那么好的上下文和坏的上下文得到的同样结果中对应的评价实际是有差异的因此需要一个价值函数来表示在当前上下文中我预期的结果是怎么样的。那么结合上面的奖励来说奖励就是实际上我的行为给我带来的回报而价值则是在当前上下文来说我的行为应该能给我带来什么样的回报平均水平。那么就存在超过平均水平和低于平均水平的情况这种差值称为优势。优势为正意味着我的行为是超过平均水平的应该被鼓励反之则应该被批评。实际上我们在用RL计算动作的优势的时候P是按照一段token的输出计算的比如I love you的翻译作为问题那么输出的“我爱你”可以视为一个动作那么他的概率实际是P1P2P3的累乘同时对于另一个动作“我是天才”他的概率是P1P2P3P4对于这个动作得到优势后比如我爱你为正0.4那么计算loss-0.4log(P我爱你)-0.4(logP1logP2logP3)。相比于SFT的监督微调来说监督微调如果以我爱你来的话会是-logP1-log(在P1的情况下P2)-log(在P1和P2的情况下P3)。上述是最简单的策略梯度更新的方式。由于数据是在对模型进行更新的所以同一批数据在不断优化后模型会不断提高这些动作的概率那么在一段时间后首先模型的权重已经更新过了那么这批数据基于之前的模型进行采集的不同于当前的模型了。其次一个偶然的好的动作会被过度鼓励因此提出了PPO-Clip策略损失。PPO-Clip策略损失。数据来自旧策略就模型对于问题做出的n次动作包括了ABCD... 希望重复利用这批数据相对来说少重新收集新策略的数据所以需要做一些对旧策略的更新的幅度修复 更新开始时与基础策略梯度衔接 更新过程中控制策略偏移。新的策略损失可以不采用交叉熵损失上述策略损失中rPnew/Pold当对模型进行了更新后可以通过重新对数据问答对进行概率计算然后对比优化的情况并作为更新的力度。现在就是把他作为损失了。但是实际这个要反向传播的P包含在了r里面然后我确认一下过去的P是不计算反向传播的只是当一个定值对吧。那么就是当A大于0的时候如果r过大表示新模型对这个输入回答已经优化的很好了超过了上限就设为定值此时虽然有损失但是完全没有反向传播的参数因为设为了1x如果r过小那么在裁剪的时候虽然第二个裁剪到了1-x但是rA会比这个小所以使用的rA就是用正常的rA去更新。当A小于0的时候如果r很小了那么会稍微一个定值1-x就不再反向传播更新如果r很大说明还有更新的空间然后选择的时候min会选择rA对吧优势计算GAE在上述介绍中讲到了优势是由策略根据当前上下文产生的结果与预期结果的差值得到AtGt-V(st)那么就存在策略模型选择的动作Actor当前动作的所有回报实际当前得分和未来回报以及由价值模型(Critic)评判的所有回报预期当前得分和未来回报。那么价值模型如何得到在一种实现中是在Transformer一个是词表概率的头另一个头设为价值模型的头它能够通过当前的隐藏向量去预测之后的预期回报通过这种方式去得到当然这个权重可以两者共享策略模型和价值模型也可以独立起来。但是不管是什么方法那么就还需要对价值模型进行训练那么价值模型训练的目标可以是预期回报结果和实际走完了之后的实际回报结果做差值得到但是这种方法会受到一些影响比如偶发的工具故障等。在只依赖这一次最终结果中间的链累积会把波动放大。所以在实际构造训练函数的时候会考虑到中间过程的期望变化。也就是GAEGeneralized Advantage Estimation广义优势估计即先观察走一步之后情况比原来预想的好多少。当前这一步已经获得的奖励R_t 下一状态预计还能获得的折扣回报 行动前预计能获得的回报这个δ t \delta_tδt​叫作时序差分误差TD error。以实际例子表示读取文件前Critic预计回报为0.2 读取文件后发现了关键线索Critic预计回报为0.5 这一步没有直接奖励R0 暂取γ1 公式得到 deta00.5-0.20.3尽管这一步虽然没有直接得分但到达的新状态看起来比原先预期更有希望所以得到一个正向信号。在GAE中回报这些时序差分误差累加在一起。A ^ t δ t γ λ δ t 1 ( γ λ ) 2 δ t 2 ⋯ \hat A_t \delta_t \gamma\lambda\delta_{t1} (\gamma\lambda)^2\delta_{t2} \cdotsA^t​δt​γλδt1​(γλ)2δt2​⋯也可以倒着递推A ^ t δ t γ λ A ^ t 1 \hat A_t\delta_t\gamma\lambda\hat A_{t1}A^t​δt​γλA^t1​其中λ \lambdaλ控制使用多少更远的反馈λ 0 \lambda0λ0只使用当前一步的TD误差更依赖Critic预测。λ \lambdaλ接近1纳入更多后续反馈。在完整终止轨迹、终止状态价值为0等条件下λ 1 \lambda1λ1会得到G t − V ( s t ) G_t-V(s_t)Gt​−V(st​)。它在依赖价值预测带来的偏差与实际长程回报带来的波动之间作权衡。那么在实际的一次训练中是要考虑到包括价值模型和决策模型的同时更新的Actor执行任务 ↓ 获得奖励Critic价值预测 ↓ 计算GAE优势和价值训练目标 ├→ 优势作为固定信号计算PPO策略损失 → 更新Actor └→ 价值预测与目标比较计算回归损失 → 更新Critic那么在我们刚刚那里提到的如果共享同一个Transformer参数那么在训练的时候价值模型也会影响决策模型的输出。在实际计算时由于已经有了完整轨迹那么直接通过一次前向传播得到所有步的Vt然后通过这个计算每一步的δtδt当前步的奖励执行完当前步之后的折扣预期收益γV(s_(t1))-未执行当前步的预期收益。然后从最后步用反推公式反向计算实际的AtδtγλA_(t1)往最前步推。GRPO我们把GRPO放在了PPO下但是实际GRPO是另一种策略损失而由于我们这里用的是GRPO的A的估计而没有改变PPO的策略计算的方式所以放在了PPO的内容下面。①需要额外的显存占用去生成每一步的价值 ②训练价值模型的时候奖励模型通常在整条回答完成后给出一个总体奖励价值模型则需要在回答的各个中间位置预测从那里继续生成能获得多少回报。由于只有稀疏的最终评价却要学习许多中间位置的预测因此价值模型可能比较难训练。并不是所有都在最终才给出奖励结果比如在过程监督的版本中就有过程奖励在PPO-Clip中A需要通过价值模型去得到那么此时需要兼顾价值模型的训练这相比于我们实际要训练的策略模型显然是一笔很大的开销因此如何去避免训练一个额外价值模型去得到A呢因此提出了GRPO策略损失。①用Actor采样一批回答或执行轨迹 ↓ ② 从环境或评价机制获得奖励 ↓ ③ Critic预测各状态的价值V ↓ ④ 用奖励和V计算各步δ ↓ ⑤ 从后往前计算GAE优势A ↓ ⑥ 当前Actor重新计算已采样Token的概率 ↓ ⑦ 计算新旧概率比使用PPO裁剪损失更新Actor也就是在GRPO中只是改变了③④⑤步通过其他的方式去得到A。其实从A的定义预期价值和当前决策的直接价值 可以得到。需要解决的问题重点在于如何得到预期价值当前策略的直接价值通常是规定好的比如做了A操作得1分而在GRPO中则是通过对当前策略模型做出的多次不同决定的平均值作为预期价值比如做了5次得到的当前价值的总得分为3那么预期价值就是3/5但是这种情况平均值其分布不一定属于标准分布且可能存在波动导致部分偶尔一次的好结果被过度优化所以通过标准差做归一化最终Ai(Ri-R平均)/(std(R)ε)ε只是一个很小的小数防止/0的情况发生。至此将PPO中要求的Critic价值评估模型的需求问题给解决了需要注意的是目前说的GRPO的A是针对一整条长轨迹的其中可能有多步但是这多步会共享一个A而之前那个GAE的是每一步独享一个At但是在每一步内部的话Token是共享同样的At的。那么在GRPO的策略损失的步骤就是取一道任务 ↓ 采样时的Actor生成G份完整回答 ↓ 分别评价得到G个奖励 ↓ 计算组内均值、标准差 ↓ 为每份回答计算一个相对优势A ↓ 当前Actor重新计算各回答中各Token的概率 ↓ 逐Token计算新旧概率比和裁剪损失 ↓ 汇总并更新Actor ↓ 若干轮更新后再用更新后的策略采集新数据KL散度在强化学习中计算L当不断更新后模型会慢慢偏离原始的模型但是我们实际上可能不太想要这么大幅度的变化而是局限在一个参考模型的范围去做所以通过KL散度让新模型的输出的分布不要与参考模型偏离的太远达到这种始终在主线附近发展探索优化的方式。KL 是一种正则化约束在“提高任务奖励”和“保持参考模型的行为”之间做权衡降低过度优化奖励、行为漂移和原有能力退化的风险。那么就有三个模型了分别是参考模型旧模型和当前模型他们三个在原始训练完是一模一样的M0然后旧模型M0基础上生成一批数据训练当前模型M0-M1-M2然后将旧模型M0更新为当前模型M2然后当前模型开始新一轮的训练从而产生三个模型KL散度是当前模型M_n和原始模型M0做而GAE则是当前模型M_n与旧模型M_n-2做。R当前步奖励之前讲了怎么计算优势A但是无论是GAE还是GRPO其实都可以看到在计算A的时候需要用的R当前步奖励所以R的获取也十分重要。在R的获取常见有三种分别是程序、人类、模型。奖励是训练者设计的反馈不是世界自动提供的“绝对正确分数”。从结果与中间过程都可以设置奖励单纯的结果奖励无法让模型学到具体的执行步骤比如过程中可能调用了大量的工具或者执行了大量的无用操作但是最终还是得到了和简洁明了的过程同样的结果奖励分。如果加上过程奖励需要更加精细的奖励设计不能是工具调用0.1分思考0.1分那么会导致多调工具多思考就能得高分和简洁明了的步骤反而冲突了所以还可以设置惩罚。如果只是这种简单的对结果步骤进行奖励会导致出现奖励投机的问题比如在程序规则中只要最终能通过测试就有1分那么模型可能会正常走修复bug通过测试的路径还有可能走删掉未通过的测试去得到分数的路径这个就叫奖励投机。所以在设计任务奖励的时候需要考虑到过程中和环境不可变的问题。在之前gpt貌似就有过通过黑进测试平台提高测评分数的情况。验证是否独立于模型可修改的测试文件。 是否真的修好了目标问题。 是否破坏了原有功能。RLHF基于人类反馈的强化学习通过人类的比较回答优劣训练奖励模型然后用奖励模型给结果生成奖励得分。RLVR基于可验证的强化学习利用程序代码检测器等明确成功条件评分。其实在TAgent测评的时候一个大模型评判的路径一个规则评判的路径实际就是这两种方式的体现。GRPO训练过程以一条轨迹为例模型和环境交替执行只有模型的输出才是需要计算loss的。其他的虽然作为输入但是计算loss会通过mask进行去除。①用户任务 ↓ ②模型输出read_file(calculator.py) ↓ ③环境返回文件内容 ↓ ④模型输出edit_file(...)提交具体修改 ↓ ⑤环境返回修改成功 ↓ ⑥模型输出run_tests(...) ↓ ⑦环境返回测试结果 ↓ ⑧模型输出修复完成以及修改说明轨迹①读取 → 修改 → 测试 → 成功 1 轨迹②读取 → 错误修改 → 测试 → 失败 0 轨迹③搜索 → 读取 → 修改 → 测试 → 成功 1 轨迹④读取 → 反复尝试 → 超时 0而在GRPO中通过多条轨迹去获取A上文中提到了是对轨迹得到A所以所有步骤都是共享同一个A那么就会存在中间步骤不一定是正向的但是仍然享受到了正向的优势A那么对于这些步骤显然应该做更细的分配。在DeepSeekMath中展示了所有训练过程。整个训练过程是DeepSeek-Coder → 数学相关继续预训练 DeepSeekMath-Base → 监督微调 SFT DeepSeekMath-Instruct → GRPO 强化学习 DeepSeekMath-RL \text{DeepSeek-Coder} \xrightarrow{\text{数学相关继续预训练}} \text{DeepSeekMath-Base} \xrightarrow{\text{监督微调 SFT}} \text{DeepSeekMath-Instruct} \xrightarrow{\text{GRPO 强化学习}} \text{DeepSeekMath-RL}DeepSeek-Coder数学相关继续预训练​DeepSeekMath-Base监督微调SFT​DeepSeekMath-InstructGRPO强化学习​DeepSeekMath-RL这些并不是拼接在一起的不同模型而是同一个模型在不同训练阶段得到的不同参数版本。起点是 DeepSeek-Coder-Base-v1.5 7B之后先继续预训练再进行数学指令微调最后做强化学习。三个阶段解决的问题不同预训练阶段让模型接触并学习大量数学相关内容。输入主要是数学网页、代码、论文和自然语言文本。SFT 阶段让模型学习如何按照题目要求输出解答。输入变成明确的“问题—解答”样本解答包含推导过程或工具使用过程。RL 阶段让模型自己生成解答再根据评价反馈调整生成倾向。不是继续照着固定示范答案学习而是对自己的回答进行探索和优化。当前策略模型 ← 初始策略模型 重复 I 个大轮次 参考模型 ← 当前策略模型的固定快照 重复 M 次“采样—训练” 从题库中抽取一批问题 旧策略模型 ← 当前策略模型的固定快照 对每道题 用旧策略生成 G 条回答 用奖励模型给这些回答评分 根据同一道题的组内得分计算优势 重复 μ 次 利用刚才这批回答和优势更新当前策略模型 利用新采样数据和历史数据继续训练奖励模型 输出最终的策略模型奖励模型需要不断根据新采样的数据进行更新的原因是当更新的多了奖励模型对数据的分布和实际分布有差别是会导致无法正确的给出奖励比如面对不断强化后的回答奖励模型从来没有见过那么给出的奖励可能是一坨所以需要用新采样的数据去进行更新同时还需要历史数据保持稳定信用分配一个任务经过很多步才成功或失败应该怎样评价中间每一步的贡献① 读取相关代码 ② 查询天气 ③ 修改代码 ④ 运行测试确认修复成功虽然最终成功了但是②显然是否无效步骤但在刚刚的GRPO中是共享了同样的正向优势所以只对最终结果奖励是不够的。①在GAE中对中间步骤的评估是有意义的但是这个情况中会由于后续的动作还是有可能会有正优势。②通过直接对中间步骤进行评价也就是我们在R当前步奖励中提到的过程奖励。对于你现在的基础最关键的知识连接是LLM 强化学习 模型生成训练样本 评价这些样本 用评价决定对数概率梯度的方向和力度 \boxed{\text{LLM 强化学习} \text{模型生成训练样本} \text{评价这些样本} \text{用评价决定对数概率梯度的方向和力度}}LLM强化学习模型生成训练样本评价这些样本用评价决定对数概率梯度的方向和力度​GRPO 的主要创新是把其中“如何形成更新基线”这一步从额外训练 Critic改成利用同一道题的一组回答做比较。DPO策略损失DPO是一种偏好对比损失构建好的和不好的回答直接通过对好的和不好的回答的比例去选择好的回答不需要再经过奖励模型了但是需要考虑到参考模型对当前回答对的一个倾向趋势所以最终的损失函数构建用log下的差值构建有两种理解方式一种是当前策略中选择好的概率:选择不好的概率应该比参考策略中提升另一种理解方式是当前选择好的较参考应该提升且当前选择不好的较参考应该降低。虽然不需要奖励但是还是需要人工去选择什么回答是更好的。z β [ log ⁡ P θ ( y w ∣ x ) P r e f ( y w ∣ x ) − log ⁡ P θ ( y l ∣ x ) P r e f ( y l ∣ x ) ] z \beta\left[ \log\frac{P_\theta(y_w\mid x)} {P_{\mathrm{ref}}(y_w\mid x)} - \log\frac{P_\theta(y_l\mid x)} {P_{\mathrm{ref}}(y_l\mid x)} \right]zβ[logPref​(yw​∣x)Pθ​(yw​∣x)​−logPref​(yl​∣x)Pθ​(yl​∣x)​]z β log ⁡ P θ ( y w ∣ x ) / P θ ( y l ∣ x ) P r e f ( y w ∣ x ) / P r e f ( y l ∣ x ) \boxed{ z \beta\log \frac{ P_\theta(y_w\mid x)/P_\theta(y_l\mid x) }{ P_{\mathrm{ref}}(y_w\mid x)/P_{\mathrm{ref}}(y_l\mid x) } }zβlogPref​(yw​∣x)/Pref​(yl​∣x)Pθ​(yw​∣x)/Pθ​(yl​∣x)​​之前的说法都是需要去提升z的说法那么为了让最后得到的损失训练能够满足这个说法并且考虑到如果比率过大或者过小应该保证一个不要太大的更新幅度最终选择了下面的公式进行损失函数也就是sigmoid函数。所以最小化损失会推动z zz增大也就是增强模型对 chosen 的相对偏好。L D P O − log ⁡ σ ( z ) \boxed{ L_{\mathrm{DPO}}-\log\sigma(z) }LDPO​−logσ(z)​σ ( z ) 1 1 e − z \sigma(z)\frac{1}{1e^{-z}}σ(z)1e−z1​注部分内容可能由 AI 生成
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。