0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈Q-Learning在Agent的应用

深度学习自然语言处理 来源:青稞AI 2023-12-02 16:53 次阅读

作者:周舒畅,AI 工程师

OpenAI 宫斗告一段落,现在到处都在猜 Q* 是什么。本文没有 Q* 的新料,但是会探讨一下 Q-Learning 在 Agent 方面的可能应用。

有趣的分享!LLMs时代下,幻觉、对话、对齐、CoT、Agent和事实性评估等领域的前沿研究

实现 tool 自动选择和参数配置

75b5f30c-90ef-11ee-939d-92fbcf53809c.jpg

经典文字模型

经典的文字模型我们已经很熟悉了:训练时,模型不停的预测下一个 token 并与真实语料比较,直到模型的输出分布非常接近于真实分布。

75c923fa-90ef-11ee-939d-92fbcf53809c.jpg

因为语言模型的局限性(比如搞不定大数计算),所以多家大模型公司走上了语言模型 + 工具的道路。比如 GPT4-turbo 就可以灵活调用网络搜索、Analysis(某种 Python) 这些 tools,来生成 tool response(即网络搜索结果、Python 执行结果),来帮助回答文字问题。

这就引入了一个决策问题,对于一个用户表达(utterance),到底要不要做网络搜索或者调用 Python 来帮助回答呢?如果决策错误,则结果不最优:

•工具的响应结果(tool response)可能无济于事甚至产生误导。比如有一些网络上的玩梗会影响模型对一些基本概念的知识。•工具的调用引入了额外的时间消耗。

因此,好好搞一些标注,训一个“动作决策”模型,能拿到第一波好处。这是有监督学习的思路。这里动作决策模型的输出,是具体的含参数的动作,比如调用网络搜索时,需要给出“是否搜索”和“搜索关键字”两部分信息。因此动作决策模型最好也是个大模型。这么搞的问题,是上限不高,受制于“动作决策模型”的标注质量,并且并没有直接优化“模型输出”,需要人绞尽脑汁来针对模型调整“动作决策模型”的标注来达到最优。比如对于网络搜索,当搜索引擎不同时,需要为“动作决策模型”使用不同的搜索关键字作为标注。

但从另一个角度,虚线框内的部分,仍然是一个文字进文字出的"模型",所以理论上可以用降低输出结果的困惑度的方法,按强化学习(RL)去训练这个复合了工具的“语言模型”。这里因为“动作的决策”不可微,所以来自“模型输出”的梯度只能用 RL 往回传。使用 RL 的具体步骤为:

•利用标注训练“动作决策模型”,使得整体有一定效果,即完成行为克隆(behavior cloning)这一启动步。•用强化学习继续训练整体,即复合了工具的“语言模型”。

Reward 由几项组成:

•利用<用户输入、模型输出>这样的成对数据(格式上接近 SFT 数据),计算困惑度•如果有用户偏好数据,也可以仿照 DPO 构造不同动作间的对比数据项。•把调用工具的时间和成本代价,折算进 Reward

实际,以上相当于使用了 Q-learning 的一个简单变体 DDPG,即假设存在函数映射μ使得μ(当前状态) = 最优工具调用动作与参数 如果不做这个假设,还是使用 Q(s, a) 的形式,则更接近 Reward Model 的搞法。

这里一个附送的好处,是可以做层级强化学习(hierarchical RL),就是说可以在工具调用中嵌套工具调用,比如一个网络搜索中嵌套网络搜索。因为上面在 Reward 里计入了“调用工具的时间和成本代价”,所以优化后的模型不太会出现盲目使用工具的情况。同时 RL 天然能处理多步决策,所以不特别需要研究“多轮交互时的动作决策模型标注“。

引入动态拆分任务

以上的 tool 调用,特别是网络搜索和 Python 执行,主要是为模型输出产生一些参考,因此本质上没有互斥性,就是说各个动作间没有强依赖。我们下面考虑一个动作间有强烈互相影响的场景:“任务拆分”。

当用户输入复杂到一定程度,我们需要引入拆分。静态拆分不需要特殊处理,但是如果希望子任务是跟据动态执行时获得的信息动态调整的,则要引入一个任务栈来进行管理。之前 AutoGPT 即引入了动态拆分子任务,基于语言模型实现了一定的 Agent 能力。但是一直以来 AutoGPT 并没有通过“训练”来加强能力的方法。下面,我们先把 AutoGPT 搬到 RL 里,一个搞法是借助 MCTS(蒙特卡洛搜索树)。

75d92ee4-90ef-11ee-939d-92fbcf53809c.jpg

根结点是当前任务。各个叶子结点有 expandable 和 terminal 两个属性,其中 expandable 结点可以进一步被展开成子任务。注意

•MCTS 里 sibling 结点之间是或关系,选一即可。•MCTS 的 Policy Network 对应上文中的“动作决策”模型。•MCTS 里的 Value Network 可以用一大模型实现,描述当前结点的价值。比如发现当前子任务是死胡同时(如发现模型在用穷举法证明“偶数加偶数还是偶数”时)可以喊停。•上文的工具调用“模型”可以自然地嵌入到这里使用

子任务拆分没什么可用的数据,可以先靠语言模型天赋能力开始。训练数据可以选有明确答案的题,以答对为 Reward。MCTS 的形式特别适用需要回溯的任务(把某种任务分解推倒重来),比如数学计算。

(到这,我们得到了一个用 Q-learning 整体驱动的,自动学习如何拆任务调工具的框架,似乎和 Q* 公开的一些线索对上了一些。)

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Agent
    +关注

    关注

    0

    文章

    103

    浏览量

    26693
  • Q-Learning
    +关注

    关注

    0

    文章

    5

    浏览量

    8100
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84439

原文标题:Q-Learning 在 Agent 的应用

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Q-Learning算法(2)#人工智能

    人工智能
    jf_49750429
    发布于 :2022年11月29日 00:19:24

    轻量级Agent平台怎么测试?

    跨平台的语言成功应用于嵌入式设备中,同时也方便了嵌入式环境下的轻量Agent(Lightweight Agent)的实现。本文ARM嵌入式环境下测试轻量级Agent平台。
    发表于 09-27 06:26

    树莓派如何开发Agent

    ,配置了JADE(基于java的Agent开发框架)。各项测试都正常,但是使用两台树莓派(都配置了JADE)进行远程Agent之间的通信测试时,一直提示通信失败。尝试了各种办法(包括更改树莓派主机名、固定IP地址、禁用IPV6
    发表于 05-18 05:56

    Multi-Agent工控系统中的应用研究

    近几年来,Agent 和Multi-Agent 理论和现场总线技术有着快速的发展。本文对Agent 和Multi-Agent 理论和现场总线技术进行简单介绍。并结合Multi-
    发表于 09-12 16:45 16次下载

    基于Q-Learning的认知无线电系统感知管理算法

    认知无线电系统不仅是一个自适应系统,更应该是一个智能系统。该文将智能控制中的Q-Learning 思想引入到认知无线电系统中,用于解决感知任务认知用户之间的分配问题,给出了
    发表于 03-06 10:46 9次下载

    基于LCS多机器人的算法介绍

    各种增强式学习中,Q-learning 或改进的Q-learning 应用的最多。JonathanH.Connell 和Sridhar Mahadevan Robot
    发表于 10-17 17:43 15次下载
    基于LCS多机器人的算法介绍

    基于Q-learning的码率控制算法

    近年来,各界对多媒体内容传输特别是视频流服务越来越重视。尽力交付的互联网上支持可靠视频流传输,基于HTTP的自适应流(HAS,HTTP adaptive streaming)已经成为视频业务技术
    发表于 01-10 10:29 0次下载
    基于<b class='flag-5'>Q-learning</b>的码率控制算法

    强化学习究竟是什么?它与机器学习技术有什么联系?

    Q-learning和SARSA是两种最常见的不理解环境强化学习算法,这两者的探索原理不同,但是开发原理是相似的。Q-learning是一种离线学习算法,智能体需要从另一项方案中学习到行为a*的价值
    的头像 发表于 04-15 10:32 1.4w次阅读

    Q Learning算法学习

    Q Learning算法是由Watkins于1989年在其博士论文中提出,是强化学习发展的里程碑,也是目前应用最为广泛的强化学习算法。
    发表于 07-05 14:10 3635次阅读

    浅谈Q-Learning和SARSA时序差分算法

    Q-Learning这一篇对应Sutton书的第六章部分和UCL强化学习课程的第五讲部分。 1. Q-Learning算法的引入 Q-Learning算法是一种使用时序差分求解强化学习控制问题的方法
    的头像 发表于 11-04 14:05 2822次阅读

    基于双估计器的Speedy Q-learning算法

    Q-learning算法是一种经典的强化学习算法,更新策略由于保守和过估计的原因,存在收敛速度慢的问题。 SpeedyQ-learning算法和 Double Q-learning算法
    发表于 05-18 15:51 2次下载

    《自动化学报》—多Agent深度强化学习综述

    Agent 深度强化学习综述 来源:《自动化学报》,作者梁星星等 摘 要 近年来,深度强化学习(Deep reinforcement learning,DRL) 诸多复杂序贯决策问题中取得巨大
    发表于 01-18 10:08 1566次阅读
    《自动化学报》—多<b class='flag-5'>Agent</b>深度强化学习综述

    怎样使用Bevy和dfdx解决经典的Cart Pole问题呢

    解决经典的 Cart Pole 问题有很多种, 作者这里借用 dfdx 这个深度学习的库, 使用 Deep Q-Learning 的方法来解决。
    的头像 发表于 10-26 09:39 641次阅读

    7个流行的强化学习算法及代码实现

    已被用于游戏、机器人和决策制定等各种应用中,并且这些流行的算法还在不断发展和改进,本文我们将对其做一个简单的介绍。 1、Q-learning Q-learningQ-learning
    的头像 发表于 02-03 20:15 1074次阅读

    7个流行的强化学习算法及代码实现

    作者:SiddharthaPramanik来源:DeepHubIMBA目前流行的强化学习算法包括Q-learning、SARSA、DDPG、A2C、PPO、DQN和TRPO。这些算法已被用于游戏
    的头像 发表于 02-06 15:06 1446次阅读
    7个流行的强化学习算法及代码实现