大模型+强化学习_通过强化学习对齐大模型和环境

英文名称: True Knowledge Comes from Practice: Aligning LLMs with Embodied Environments via Reinforcement Learning
中文名称: 实践出真知:通过强化学习将LLMS与具体环境对齐
链接: https://arxiv.org/abs/2401.14151
代码: https://github.com/WeihaoTan/TWOSOME
作者: Weihao Tan, Wentao Zhang, Shanqi Liu, Longtao Zheng, Xinrun Wang, Bo An
机构: 新加坡南洋理工大学, 浙江大学, Skywork AI
日期: 2024-01-25

1 读后感

这篇论文试图解决的问题是:当自然语言模型与现实世界进行交互时所产生的问题。这种问题不仅可以应用于游戏和机器人等领域,可以说它可被应用在需要代理与环境进行多步交互以解决问题的各个领域,该方法主要用于优化每一步的决策。

在使用大模型时,常见的问题是将复杂问题分解为多个步骤来解决,而每一步动作在真实场景中会有多种可能的反馈,就像下棋一样,很容易出现一步错步步错的情况。通用自然语言模型(LLM)更擅长提出意见,但决策能力稍差,并且缺乏对具体环境的认知。因此,在具体场景下引导模型做出更好决策的方法很重要。

通用自然语言大模型(LLM)具备常识知识,但不了解当前情况;强化学习(RL)通过探索当前环境来学习,但缺乏常识。本论文讨论了如何将二者结合起来,在多步调用 LLM 时使用 RL 方法优化决策。

具体方法如图 -2 所示,将当前的状态和可选的动作放入 LLM。模型将计算每个动作中各个词的联合概率,作为该动作的得分。这种将 LLM 引入强化学习,应用于决策部分的方法有效地将 LLM 和 RL 连接起来。

我觉得具体实现中计算各词的生成概率可能不是最优方法,但对于中小型模型来说,还没有找到更好的方法。另外,在实现部分使用半精度的 LLAMA-7B 模型并用 Lora 进行调参,整体上经济高效,方便我们普通用户复现。

另外我还有一些思考:机器人在虚拟场景中行走、环境不完全可见且无法将复杂环境信息传递给模型作为提示时,使用大模型时经常遇到的问题是:如何选择传递给模型什么信息,来提升工具链的整体能力。这块可能也需要强化学习或者外接模型来实现

2 摘要

目标:由于知识与环境不一致,通用的大型语言模型(LLMs)经常无法解决简单的决策任务。相反,强化学习(RL)智能体从头开始学习策略,与环境保持一致,但很难结合先验知识进行有效探索。本文旨在结合两个优势。

方法:提出了TWOSOME 在线框架。它使用 LLMs 作为决策 Agent,并通过 RL 与具体环境高效互动,实现知识与环境的对齐。该框架无需任何预先准备的数据集和对环境的先验知识

结论:TWOSOME 在经典决策环境(Overcooked)和模拟家庭环境(VirtualHome)中都表现出明显更好的样本效率和性能。这可能得益于 LLMs 的“开放词汇”特征,使 TWOSOME 对没见过的任务表现出卓越的泛化能力,在在线 PPO 微调过程中没有显著损失 LLMs 原始能力

3 方法

论文提出了 True knoWledge cOmeS frOM practicE(TWOSOME)方法。

图 2:TWOSOME 使用联合概率生成策略的概述。token 中的颜色区域表示操作中相应令牌的概率。

3.1 有效策略生成

TWOSOME 不是直接让 LLMs 生成操作,而是从 LLMs 中查询所有可用操作的分数。这些分数用于确定执行动作的概率。由于目前大多数 LLMs 不能完全遵循指令,特别是中小型 LLMs(即小于 65B 的模型),需要采用其他方法。

具体方法如图 -2 所示:将环境的观察设为 s,可选的动作设为 a(共有 k 种),每个动作 a 包含 w 个单词。将它们连接起来送入 LLM。使用 LLMs 生成的 token 的概率来计算动作的概率。

通常,提供的 LLMs 分数是每个 token 的对数似然(logits)。使用 softmax 对获取操作策略的 token 级概率进行归一化。

3.2 动作提示归一化

可选的动作单词序列长度通常不同。整体概率是通过连乘得到的,因此单词序列越长,得分越低。为了解决这个问题,作者提出了两种规范化方法:除以单词数或者除以 token 数。(我个人认为这些方法在一定程度上有效,但也有一些不合理之处)

3.3 参数高效的 PPO 微调

3.3.1 架构

|400

|400

文中使用了 LLM 作为策略生成工具。图 3 展示了在 LLaMA-7B 模型的最后一个 Transformer 中增加了一个额外的 MLP 层作为批评者(critic)。评估者的 MLP 将观察提示的最后一个标记作为输入,并输出对观察提示的估计值。动作者(actor)由冻结的 LLaMA-7B 模型构成,并使用 LoRA 方法进行参数增强。此外,由于 dropout 层可能违反 PPO 中的 KL 发散约束并引入额外的训练不稳定性,在 LoRA 模块中不使用 dropout。在训练过程中,只更新 critic 的 MLP 和 actor 的 LoRA 参数,以提高训练效率。尽管文章讨论了只有解码器的模型,但这种方法可以无缝地扩展到编码器 - 解码器架构。

3.3.2 训练

与 PPO 的训练过程相似,但作者发现使用相同数据多次更新 actor 时训练不稳定。因此,每个采样数据在训练一次后都会被丢弃。此外,新添加的 MLP 在 critic 中是随机初始化的,而 actor 中的 LoRA 参数初始化为零,即 actor 的输出与 LLaMA-7B 模型完全相同。因此,critic 的学习率设置较高,而 actor 的学习率设置较小。

3.3.3 推理

在推理过程中,只使用 actor。此外,将与具体环境相关的 LLMs 完全编码到 Lora 参数中。通常,Lora 参数的大小是 LLMs 的 1/20,例如 LLaMA-7B 的 Lora 仅为 4.2M。LoRA 参数可以作为一个即插即用的模块。

3.4 提示设计

优化提示设计的目的是让 LLMs 更好地理解观察和操作,从而改善环境和模型之间的对齐。设计基于以下原则:

  • 观察和行动提示应连贯,以便于连接。观察提示以 " 你应该 " 和 " 下一步是 " 结束,标志着行动提示的开始。
  • 冠词(如 "the"、"a" 和 "an")对于行动提示很重要。大多数行动提示由动词和名词组成,例如 " 捡起番茄 "。由于语言模型是用高质量语料库训练的,它们对冠词很敏感。因此," pick up the tomato " 比 " pick up tomato " 更好,后者在 " 番茄 " 上的概率极低。
  • 优选的行动应出现在观察提示中。通过在观察提示中多次出现名词,可以鼓励语言模型对优选行动赋予更高的概率。例如,如果观察提示是 " 我看到一个番茄。我的任务是做一个番茄沙拉。我应该 ",那么 " 番茄 " 将有相对高的概率。
  • 在不同的观察下,同一行动可以有不同的行动提示。例如,当 agent 手中拿着碗时," 捡起番茄 " 可以被替换为 " 把番茄放在盘子里 ",这两个行动提示在环境中有相同的功能,但后者更符合上下文,因此概率更高。

4 实验

以将上述的方法应用在半精度 LLaMA-7B 模型上。一个 NVIDIA Tesla A100 40GB GPU 中完成所有实验。

实验环境。图 3(a)和 3(b)显示了 Overcooked 中的两个任务。图 3(c)和 3(d)显示了 VirtualHome 中的两个任务。

主实验结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BI技巧丨个性化视觉对象

BOSS:那个,那个谁,最近用户反映了,说是你们做的报表不太行啊?! 白茶:(???)老板,怎么说? BOSS:就是…

网络原理(5)——IP协议(网络层)

目录 一、IP协议报头介绍 1、4位版本 2、4位首部长度 3、8位服务器类型 4、16位总长度 5、16位标识位 6、3位标志位 7、13位偏移量 8、8位生存空间 9、8位协议 10、16位首部检验和 11、32位源IP地址 12、32位目的IP地址 二、IP协议如何管理地址? 1、动…

Redis入门到实战-第三弹

Redis入门到实战 Redis数据类型官网地址Redis概述Redis数据类型介绍更新计划 Redis数据类型 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的(采用BSD许可证&#…

《优化接口设计的思路》系列:第九篇—用好缓存,让你的接口速度飞起来

一、前言 大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农&#xff0c…

2024Python计算机二级13

一维数据采用线性方式组织,集合不属于线性结构 程调度仅负责对CPU进行分配 快速排序每经过一次元素的交换会产生新的逆序 记住队列中为一个元素的情况 区分二叉树与完全二叉树,前序序列是先访问根节点再访问左子树和右子树,中序序列是访问左子…

《定时执行专家》:Nircmd 的超级搭档,解锁自动化新境界

目录 Nircmd 简介 《定时执行专家》与 Nircmd 的结合 示例: 自动清理电脑垃圾: 定时发送邮件: 定时关闭电脑: 《定时执行专家》的优势: 总结: 以下是一些其他使用示例: 立即下载《定时执行专家》: Nircmd 官方网站: 更…

【数字IC/FPGA】书籍推荐(1)----《轻松成为设计高手--Verilog HDL实用精解》

在下这几年关于数字电路、Verilog、FPGA和IC方面的书前前后后都读了不少,发现了不少好书,也在一些废话书上浪费过时间。接下来会写一系列文章,把一部分读过的书做个测评,根据个人标准按十分制满分来打分分享给大家。 书名&#xf…

企业微信可以更换公司主体吗?

企业微信变更主体有什么作用?当我们的企业因为各种原因需要注销或已经注销,或者运营变更等情况,企业微信无法继续使用原主体继续使用时,可以申请企业主体变更,变更为新的主体。企业微信变更主体的条件有哪些&#xff1…

基于Docker的JMeter分布式压测!

一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试。如本网站所示,一个JMeter实例将能够控制许多其他的远程JMeter实例,并对你的应用程序产生更大的负载。JMeter使用Java RMI[远程方法调用]来与分布式网络中的对象进行交互。JMeter主站…

Vue js封装接口

天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 1.安装axios npm install axios -g 2.在src下新建一个Api文件夹,再创建一个js文件 import axios from axios let configuration {url:"http://localhost:9090" } /*** 请求项目数据的请求体*/ async function h…

CV论文--2024.3.20

1、Graph Expansion in Pruned Recurrent Neural Network Layers Preserve Performance 中文标题:图扩展在修剪的循环神经网络层中保持性能 简介:这段摘要讨论了图的扩展性质,包括强连通性和稀疏性。研究表明,深度神经网络可以通…

linux -- I2C设备驱动 -- MS32006(低压5V多通道电机驱动器)

产品简述 MS32006 是一款多通道电机驱动芯片, 其中包含两路步进电机驱动, 一路直流电机驱动; 每个通道的电流最高电流1.0A; 支持两相四线与四相五线步进电机。芯片采用 I2C 的通信接口控制模式, 兼容 3.3V/5V 的标准工业接口。 MS32006 总共集成了两路步进电机驱动器与一…

【c++入门】引用,内联函数,auto

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本节我们来到c中一个重要的部分:引用 目录 1.引用的基本概念与用法1.1引用特性1.2使用场景1.3传值、传引用效率比较1.4引用做返回值1.5引用和指针的对…

公司调研 | 空间机械臂GITAI | 日企迁美

最近做的一些公司 / 产品调研没有从技术角度出发,而更关注宏观发展:主营方向、产品介绍、商业化落地情况、融资历程、公司愿景、创始人背景等。部分调研放在知乎上,大部分在飞书私人链接上 最近较关注人形Robot的发展情况,欢迎感兴…

【Java】Map和Set

文章目录 一、Map和Set的概念二、模型三、Map的说明3.1 Map.Entry<K, V>的说明3.2 Map 的常用方法 四、Set的说明4.1 Set的常用方法 一、Map和Set的概念 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关&#xff0c…

在线播放视频网站源码系统 带完整的安装代码包以及搭建教程

在线播放视频网站源码系统的开发&#xff0c;源于对当前视频市场的深入洞察和用户需求的精准把握。随着视频内容的爆炸式增长&#xff0c;用户对视频播放的需求也日益多样化。他们希望能够随时随地观看自己感兴趣的视频内容&#xff0c;同时还希望能够在观看过程中享受到流畅、…

用vscode调试cpp程序相关操作记录

需要在服务器上用vscode调试cpp程序&#xff0c;写此记录launch.json配置和相关步骤错误导致的问题 1.在需要运行程序的服务器上安装C/C Extension Pack&#xff08;之前只在本地装了&#xff09;&#xff0c;可以支持调试C/C应用程序(设置断点&#xff0c;单步执行&#xff0c…

分类预测 | Matlab实现PSO-KELM粒子群优化算法优化核极限学习机分类预测

分类预测 | Matlab实现PSO-KELM粒子群优化算法优化核极限学习机分类预测 目录 分类预测 | Matlab实现PSO-KELM粒子群优化算法优化核极限学习机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现PSO-KELM粒子群优化算法优化核极限学习机分类预测(完整源…

ubuntu20.04安裝輸入法

文章目录 前言一、操作過程1、安装fcitx-googlepinyin2、配置language support 前言 參考文獻 一、操作過程 1、安装fcitx-googlepinyin sudo apt-get install fcitx-googlepinyin2、配置language support 第一次點擊進去&#xff0c;會讓你安裝 點擊ctrl和空格切換中英文…

简历指导与模板获取

简历是应聘过程当中最重要的材料&#xff0c;是我们在求职市场的一张名片&#xff0c;一份好的简历能够吸引招聘者的注意&#xff0c;使你在竞争激烈的求职市场中脱颖而出。 1.简历指导 以下是一份典型简历的主要部分和常见内容&#xff1a; 联系信息&#xff1a; 包括你的全…