高质量奖励函数,让你告别RL探索难题!基于LLM的自动奖励生成方法R*

奖励函数(Reward Function) 为了更深入理解奖励函数,我们从数学角度详细探讨其定义、形式和性质。GtRt1γRt2γ2Rt3⋯∑k0∞γkRtk1Gt​Rt1​γRt2​γ2Rt3​⋯∑k0∞​γkRtk1​Rt1Rstatst1Rt1​Rst​at​st1​是时间步ttt的即时奖励。γ∈01γ∈01是折扣因子,控制未来奖励的重要性:γ0。 阅读详情

null

随着我在强化学习各个领域逐渐深入的工程实践后,我发现奖励函数才是你真正要关注的事情,很多时候大家都是直接用环境,根本不关心环境中奖励函数是怎么构建的,也很少有人去优化奖励函数。

理想情况下,有了高质量的奖励函数,基本上可以告别RL中的探索难题,因为你只需要贪心的跟着奖励引导,进行策略求解即可。但其实这些都没那么简单,因为奖励非常容易存在误导性,也就是策略的实际表现和累积reward不成正比。我举个例子,假如我们让一个robot去操控一个物体,奖励都是正数,如果设置不到位,你的算法很可能会出现完成任务又坍塌的问题,企图不终止游戏来骗奖励。(当然解决方法其实很多,例如不做截断)

熟悉我的好兄弟们都知道,我是做演化强化学习(ERL)的(Survey放到这一段结尾),这个方向最早被定义的有点狭窄,主要是因为18年Tumber的第一篇工作,也就是将ERL定位到了EA与RL用来做策略参数优化。

但其实不然,任何结合了EA与RL的混合算法都应该是ERL工作,怎么结合都可以。然后我们再回过来看一下奖励函数生成这个领域,其实最早做的人很少,reward shaping倒是很多,但是通常都是治标(内在奖励修修补补)不治本(核心奖励完全没变)。随后一篇直接生成奖励函数code的工作出现了,Eureka。

你如果初看Eureka,会觉得这不就是一个Reward Agent吗?但是仔细深入后,你会发现,这不就是ERL吗?用演化算法基于LLM做上层奖励函数的直接生成,下层用RL做求解。这就是之前我们ERL survey中的协同优化啊,属于是将一个任务求解问题拆解成了两部分,演化优化奖励,RL优化策略。(我马上就把这个加到survey里面去!)

仔细读过Eureka后,你会发现,除了灵巧手转笔的吸睛demo外,里面有很多insight,其中一个核心就是演化的引入,随着代数增加,性能稳定提升。Eureka不是第一个做奖励生成的,但是确实影响力最高的工作(更早一些的应该是Text2reward)。作为一个RL工作,一年多引用就破了400,仅仅一套算法代码Github 3k star,雀氏牛波。

http://arxiv.org/abs/2401.11963

作为一个ERL人,看到这么make sense的方向,怎么能不做?既跟着具身热点,又是RL领域的痛点,做,必须做。这种研究性的东西最好玩了!

null

回到正题,无论他的技术栈是什么样的,我想强调的是,奖励函数的优化是重中之重,是一个非常值得研究的方向,随着coding LLM的快速发展,我们能做的变得越来越多,需要更多的青年才俊涌入,如果我们解决了奖励问题,那么你策略学习效率会爆炸无敌的快。唠叨这么多了,下面就是正文了,代码还没整理,属于是一坨的状态,(各种事情太忙了Orz),等我Clean之后立马开源。

(ICML 2025)R*: Efficient Reward Design via Reward Structure Evolution and Parameter Alignment Optimization with Large Language Models
论文链接:https://openreview.net/forum?id=qZMLrURRr9&noteId=EsMfHkyMrs

背景与动机

在深度强化学习(DRL)中,奖励信号是重中之重。奖励信号设计得好, 根据信号引导求解就可以快速解决学习策略。然而,奖励设计非常困难,传统方法依赖人工设计或专家演示,成本高且易陷入次优;一些后续方法如IRL,RLHF等都需要较强的前提条件或者人工介入。

近年来,大语言模型(LLMs)展现出了广泛的领域知识和出色的编程能力。一些研究尝试利用 LLMs 直接生成奖励函数的代码,从而显著减少人工工作量。然而,单纯依赖 LLM 所生成的奖励函数仍然面临诸如搜索空间庞大、鲁棒性有限等挑战。

与此同时,进化强化学习——一种结合进化算法(EAs)与强化学习(RL)的方法——在提升探索效率和学习鲁棒性方面取得了显著进展,并已广泛应用于多个领域。在此背景下,Eureka[1]将 ERL 中的协同优化(Synergistic Optimization)思想应用于奖励函数生成任务:使用EA来进化一组由 LLM 生成的奖励函数种群,同时采用RL训练策略以进行评估,从中选择最优奖励函数。尽管 Eureka 在多项任务中展示了最先进的性能,但仍存在两个主要的局限:

  • 贪婪利用:每次迭代仅基于当前最优的奖励函数进行改进,这可能导致次优结果。其他潜在有价值的候选奖励函数在未被充分利用的情况下就被舍弃。
  • 参数赋值不准确:奖励函数通常包含多个参数,例如不同奖励成分的权重或系数。仅依赖大语言模型(LLM)Zero-shot地直接设置这些参数,而这往往不够准确,导致奖励函数可能无法提供精确的指导。

R* 的两大核心思路

图1 R* 算法流程示意图图1 R* 算法流程示意图

本工作提出基于LLM的自动奖励生成方法,R*。R*将奖励函数设计拆解为奖励结构演化与参数对齐优化,同时解决上述难题。

1:奖励结构演化(Reward Structure Evolution)

种群初始化:首先基于大语言模型生成一个奖励函数族群(Population),其中每个奖励函数包含若干「奖励模块」,例如:Reward = distance_reward + speed_reward + grasp_reward (分别对应距离模块、速度模块、抓取模块)。(图1左上角)

种群评估:为每个奖励函数配置一个RL agent,通过ISSAC GYM进行并行训练,最终policy的胜率作为种群中个体的得分(即fitness),基于此选择出表现最好的个体。(图1左下角)

种群优化:

  • LLM优化提升:基于最好个体,通过 LLM 的反思机制优化奖励函数。例如,增加必要的奖励模块,删除无效奖励模块,优化已有奖励模块;(图1左上部分)
  • 模块级交叉:引入模块层面交叉(Module Crossover),维护好的奖励函数,从中选择多个高质量父代,通过交换模块生成新个体,从而高效探索结构空间(更强的利用与搜索能力,且不需要额外API调用)。(图1中间部分)
2:参数对齐优化(Parameter Alignment Optimization)

判别函数种群生成:利用LLM生成一组「判别函数」(Critic Functions),每个判别函数对轨迹状态进行逐步打分,输出 {-1,0,+1} 标签,判定哪一个state更优,注意函数生成过程不需要人参与,与奖励函数生成流程相似,提供必要的环境代码,成功标准即可;(图1右上角)

投票机制:我们在RL训练完成后,采样多条轨迹,多个判别函数分别进行两两对比,给出两条轨迹中对应state之间的优劣标签,仅在半数以上一致时才采纳,确保标注质量,这样避免了基于单个判别函数存在的潜在标注错误问题;(图1右下角)

偏好轨迹片段提取:从连续一致标签中提取子轨迹,构建偏好数据集;

参数对齐优化:基于自动化构建的偏好数据集,采用Pairwise Preference Loss对 LLM 给出的初始参数进行微调,使最终奖励函数能更准确地区分轨迹优劣。(图1中下部分)

实验结论:

设定:对比Eureka, Human(人类设计的奖励函数),Sparse(稀疏奖励函数),使用GPT-4o作为backbone。

null

null

  • R*最终性能更优(Figure 2),收敛速度更快(Figure 3)。
  • 模块交叉显著提升结构探索效率:实验发现,最佳个体有超过 50% 来自模块交叉生成,而非纯 LLM 直接改进(Figure 4)。去掉交叉后性能明显下降(Figure 6),但过度依赖交叉(比例过高)同样会影响多样性,需保持平衡。

null

null

判别函数投票机制保证参数标注质量:相比直接让 LLM(仅文本描述)或 VLM(视觉输入)给出轨迹优劣的比较,R* 的判别器族群在 Franka-Cabinet、Shadow-Hand-Kettle 数据集上正确率达 100%(Figure 7 对比)。这主要还是由于LLM和VLM本身能力的限制,幻觉现象非常严重,迭代三次询问可能得到三个不同的回答。VLM则很容易完全无法区分差别很大的对比图。

null

总结

这里就不搞那些有的没的了,如果你也想做ERL或者奖励生成,欢迎交流,我们一起做一些有趣的研究,让ERL的风吹向远方。

另外,为什么我觉得ERL有趣,因为ERL才是真正的仿生:进化+学习,我们一代一代的科研玩家,一轮一轮的科研浪潮又何尝不是一轮一轮的进化与学习呢?

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

51c自动驾驶~合集57 多目标多头蒸馏模块:我们看到轨迹模仿学习之后的轨迹还过了其他的MLP,这就是其他头,它的目标也是不一样的,第一个是跟碰撞相关的,第二个是跟行驶区域相关的,第三个是跟舒适度相关的,也就是说不同的评判指标都有一个teacher,之前的模仿学习就是人类的teacher,那么这些teacher是怎么来的呢?本文作者提出的新的范式,就是规划模块是多模的输出,同时,目标也是多样性的,即不仅是GT的轨迹也同时引入了更多的正样本,由不同的专家给出的。还是那句话,小米汽车的成功,是小米价值观,小米模式,和小米方法论的成功。 阅读详情

相关推荐

Auto MC-Reward:使用LLM进行Minecraft智能体稠密奖励函数设计 | CVPR 2024

Minecraft是强化学习研究的重要环境,其本身仅提供稀疏的二进制值奖励函数,这使得在这类环境进行高效探索充满挑战性,智能体难以学习复杂任务。为了解决这一问题,我们提出了方法,利用大型语言模型(LLMs)自动设计稠密奖励函数,从而提高学习效率。Auto MC-Reward 包括三个组成部分:奖励设计模块、奖励评估模块和轨迹分析模块。首先,奖励设计模块根据环境信息和任务描述编写可执行Python代码形式的奖励函数。然后,奖励评估模块评估代码是否自洽且无语法和语义错误。

OpenGVLab的博客 1253

强化学习入门:奖励函数篇

在强化学习(RL)中,奖励函数的设计是决定智能体行为的关键因素。它不仅定义了任务的目标,还塑造了智能体学习的路径。本文将以导航问题为背景,深入探讨奖励函数的设计过程,从基本原理到高级技巧,全面分析如何构建有效的奖励函数。

weixin_46246346的博客 7588

深度解析AI对话系统原理(六):对话系统架构:从管道式到端到端的演进之路

自然语言理解(Natural Language Understanding, NLU)是对话系统的"耳朵",负责将用户的自然语言输入转化为结构化的语义表示。NLU的核心任务包括意图识别(Intent Detection)、槽位填充(Slot Filling)和情感分析(Sentiment Analysis)。意图识别是一个分类任务,给定用户输入x\mathbf{x}x,预测其意图类别y∈c1c2cKy∈c1​c2​cK​y∗arg⁡max⁡ckP。

nmdbbzcl的博客 363

【信息科学与工程学】【管理科学】【研发体系】第一篇 研发体系基础知识01

在强化学习(RL)框架中,设计精细的奖励函数以优化超参数(如学习率α、折扣因子β)的动态调整,需结合。

weixin_49199313的博客 2461

【信息科学与工程学】【数据科学】第十八篇 数值分析 系列二 数值算法设计01

编号类型领域问题问题的数学分析及数值分析算法逐步推理思考的数学表达式参数列表及参数的边界范围及条件及常数关联知识1数值积分数值逼近计算定积分 I=∫ab​f(x)dx的近似值。数学分析:将积分区间等分,利用插值多项式近似被积函数,构造机械求积公式。数值分析:Newton-Cotes公式是等距节点的插值型求积公式。高阶公式(n≥8)因Cotes系数有正负,数值不稳定。偶阶公式(如Simpson)具有n+1次代数精度。为提高精度,常采用复化求积法(将区间细分后应用低阶公式)。

weixin_49199313的博客 159

RL - 强化学习 马尔可夫决策过程 (MDP) 转换 马尔可夫奖励过程 (MRP)

MDP由5个元素组成:状态集合(S),动作集合(A),状态转移概率函数(P),奖励函数(R),以及折扣因子(γ)。马尔可夫决策过程(Markov Decision Process,MDP),在马尔可夫奖励过程(Markov Reward Process,MRP)的基础上,引入动作(Action),即。需要注意的是,从MRP转换回MDP是不可能的,因为MRP中没有动作和策略的概念。动作的价值,在某个状态,尽量使用价值最高的动作,类似自动驾驶中,碰见某类情况,使用最优的动作进行处理,因为动作价值最高。

AGI 1383

LLMs 奖励模型 RLHF: Reward model

在这个阶段,您已经拥有了训练奖励模型所需的一切。虽然到目前为止,已经付出了相当多的人力,但在训练奖励模型完成后,您将不需要再涉及更多的人类。相反,奖励模型将在强化学习微调过程中代替人类标记者,自动选择首选的完成。这个奖励模型通常也是一个语言模型。例如,一个通过在来自人类标记者对提示的评估中准备的成对比较数据上使用监督学习方法进行训练的模型。对于给定的提示X,奖励模型学习偏好人类首选的完成y_j,同时最小化奖励差异r_j-r_k的lock sigmoid。

AI架构师易筋 1189

12、基于奖励函数的ODE模型参数统计模型检查方法

本博文提出了一种基于奖励函数的ODE模型参数统计模型检查方法。通过引入非布尔奖励函数,不仅能够评估属性是否成立,还能量化属性成立的程度,从而更精确地筛选最佳参数。该方法结合了统计模型检查(SMC)和数值ODE求解技术,考虑了近似解带来的误差,并通过两个实际案例验证了其有效性。第一个案例研究了Aurelia Aurita的种群增长模型,第二个案例基于经典的捕食者-猎物模型进行分析。实验结果表明,该方法能够在参数空间中识别出与实验数据最接近的参数组合,同时提供形式化的统计保证。文中还讨论了方法的优势与局限性,并

j2k3l4的博客 80

强化学习的规划:如何设计合适的奖励函数

1.背景介绍 强化学习(Reinforcement Learning, RL)是一种人工智能技术,它旨在让智能体(agent)在环境(environment)中学习如何做出最佳决策,以最大化累积收益。在强化学习中,奖励函数(reward function)是指智能体在环境中执行行动时收到的反馈信号,它直接影响了智能体的学习过程。设计合适的奖励函数对于强化学习的成功至关重要。 在本文中,我们将讨...

AI天才研究院 3839

硬件开发流程

研发流程在一个有一定规模的企业中起到了非常重要的作用,也是一个产品或者项目成功量产出货依赖的平台体系,作为工程师如果想要走的更远,就必须了解流程体系,了解如何对产品的开发质量进行更好的管控。...

weixin_44126796的博客 8379

SAP Fiori单点登录避坑指南:从SAML原理到实战,解决‘第一次登录跳转主页失败’和‘偶发进不了单点’

本文深入解析SAP Fiori单点登录(SSO)的SAML实战与疑难排查,涵盖SAML协议核心机制、SICF登录优先级控制及安全诊断工具的高级用法。针对‘首次登录跳转主页失败’和‘偶发单点登录失效’问题,提供从配置优化到生产环境稳定运行的全面解决方案,助力企业高效实现数字化转型。

weixin_29327977的博客 405

51c大模型~合集111

OpenAI 的某发言人表示:「为了提高清晰度和安全性,我们增加了一个额外的后处理步骤,其中模型会审查原始的思维链,删除任何不安全的内容,然后简化某些复杂的思维。可以看到,虽然 ChatGPT 确实完成了任务并展示了总结版的思维链,但似乎并未如 OpenAI 发言人说的那样给出与提示词语言同样语言的总结版。北大-灵初联合实验室表示,Align-DS-V的多模态强推理能力是VLA模型大脑端的核心,接下来的研究训练计划,是利用多模态推理模型的跨模态穿透能力,实现action穿透,最终实现真正高效的VLA模型。

whaosoft~aiotの开发板商城 2317

php对接建行h5网页支付

php对接建行h5网页支付前言H5页面支付H5页面支付回调通知退款及其他的业务 前言 最近接到公司乙方要求,需要再支付上面增加建行的支付渠道。之前一直用的都是微信和支付宝这种第三方支付平台,银行直接对接比较少。没办法就只能上网搜索,搜索一番返现网上对接建行的资料比较少,没办法只好摸着石头过河,中间也借鉴了一些大佬的文章内容。 H5页面支付 根据建行的h5网页支付对接文档,还是可以看出是比较简单的。...

lihua100862的博客 5411

LLM论文周报:聚焦工程可落地的三大技术突破

大语言模型(LLM)技术正从‘堆参数’转向‘重实效’,核心挑战在于如何将前沿研究转化为可部署、可复用、可验证的工程能力。FlashAttention-3代表推理优化新范式,通过内存带宽极致调度解决长上下文显存爆炸问题;过程反馈强化学习(Process RL)将奖励信号前移至生成中间态,实现对模型行为的实时调控;结构化指令微调则以JSON Schema为约束,显著提升垂直领域输出的准确性与一致性。三者共同指向LLM落地的关键跃迁:从通用能力到场景闭环,从黑箱响应到过程可控,从学术SOTA到生产就绪。本文聚焦2

weixin_34417183的博客 340

从原理到接法全面了解三相电

从原理到接法全面了解三相电

viixin的博客 1万+

YOLOv5 自定义模型 Android 部署完整指南

本文详细介绍了将YOLOv5模型部署到Android设备的完整流程,包含三个核心部分:首先验证官方模型测试,确保基础环境配置正确;随后进行模型转换,从PyTorch导出ONNX格式并优化,再转换为NCNN格式;最后在Android项目中集成自定义模型,包括文件替换、参数修改和代码适配。教程基于YOLOv5 6.1版本,使用NCNN框架进行移动端推理,涵盖了常见问题解决方案和关键配置要点,为开发者提供了从训练到部署的完整技术路线。

FJN110的博客 592

Constitutional AI 安全对齐实战指南:基于宪法自评与 AI 反馈(RLAIF)训练无害化模型

本指南基于 [AI-Research-SKILLs 仓库](https://link.gitcode.com/i/2c6c63ab1dac18e7532f0ffae60fe080) 中的 Constitutional AI 技能文档,系统讲解 Anthropic 提出的"宪法式 AI"(Constitutional AI, CAI)安全对齐方法:模型不依赖人类标注有害样本,而是借助一套"宪法"(原

gitblog_00910的博客 211

【100%通过率】华为OD机试真题 Python 实现【字符串重新排列】【2022.11 Q4新题】

给定一个字符串s,s包括以空格分隔的若干个单词,请对s进行如下处理后输出: 1、单词内部调整:对每个单词字母重新按字典序排序 2、单词间顺序调整: 1)统计每个单词出现的次数,并按次数降序排列 2)次数相同,按单词长度升序排列 3)次数和单词长度均相同,按字典升序排列 请输出处理后的字符串,每个单词以一个空格分隔。

MISAYAONE的博客 7982

51c深度学习~合集8

方法的完整数学描述略显复杂,如果只是想了解主要思想,可以只看上面 PatchMix的流程图即可(其实只是公式多,每个公式也不复杂,后续有机会做个演示动画,帮助大家理解。这个方法也可以用简单的 Mask 方法实现,但是本方法在大规模图像处理上效率是最高的),对该工作感兴趣的同行可以看一下,我尽量写得清楚一些。结合 PatMix 的流程图,主要过程如下:由于混合图像和混合图像之间,重叠比例的不同,mix-to-mix label 中每一项的权重分数是不同的,根据上图,可以得到权重系数可以表示为。

whaosoft~aiotの开发板商城 2962

手把手教你学simulink(85.6)--非线性控制:滑模控制场景实例:基于Simulink建模仿真的滑模控制(Sliding Mode Control, SMC)在无人机自主飞行控制系统中的应用

首先,在MATLAB命令窗口中定义系统的参数和状态空间模型。matlab深色版本% 系统参数m = 1.5;% 无人机质量 (kg)g = 9.81;% 重力加速度 (m/s^2)% 惯性矩阵 (kg*m^2)% 初始条件pos0 = [0;0;0];% 初始位置 (m)vel0 = [0;0;0];% 初始速度 (m/s)0;0];% 初始姿态角 (rad)0;0];% 初始角速度 (rad/s)

MHD0815的博客 651

实战优化!C#上位机串口通信卡顿问题:超时机制+数据缓存方案

串口名</param>/// <param name="baudRate">波特率

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1064

【vLLM-Ascend+MindSpeed】昇腾后训练强化学习最佳实践

本文基于 Atlas 800T A3 完整跑通 verl + DAPO 框架下的 Qwen3-32B 强化学习训练,提供开箱镜像、全链路脚本、参数解读与性能调优指南,帮助开发者少踩坑、可复现地开展昇腾 RL 后训练。

zzzliupi的博客 459

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

用 FinRL 从零实现单只股票强化学习交易:AAPL 全流程实战指南

本篇技术指南完整讲解 FinRL 官方教程中"单只股票交易(Single Stock Trading)"用例:以苹果公司股票 AAPL 为例,从问题建模(Markov Decision Process)、数据获取、特征工程、Gym 环境搭建,到 PPO/A2C/DDPG/SAC/TD3 五种 DRL 算法训练、TensorBoard 监控与 Sharpe 回测的端到端流程。读完本文,你将掌握 Fi

gitblog_00176的博客 478

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

大模型强化学习实操——如何训练一个自己偏好的大模型(附代码)

在介绍原理前,我们来再次回顾一下一个类似于chatGPT这样大模型的训练流程。

python1222_的博客 2393

【强化学习解惑】在大模型微调过程中,如何设计合适的奖励函数来提高模型的对话质量?

在大模型微调过程中,如何设计合适的奖励函数来提高模型的对话质量?

人工智能(AI)技术,大模型技术,深度学习,机器学习,计算机视觉,AI工具实践应用等分享 1200

周志华团队新作:LLM不再需要奖励模型?我们已经“预训练“了它!首次理论证明RL对LLM有效性

过去,大语言模型(**Large Language Models, LLMs**)的对齐依赖一个关键组件:**奖励模型(Reward Model)**。奖励模型通常基于昂贵的人类偏好数据(human preference data)训练,用于指导强化学习(**Reinforcement Learning, RL**)以优化最终策略。

Python_cocola的博客 1432
上一篇: AI智能体全面爆发:一文吃透多Agent技术发展与进化
下一篇: LangChain 的「记忆压缩术」:聊聊大模型的上下文工程设计之道
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值