首页 > 编程语言 >PPO算法的一个简单实现:对话机器人

PPO算法的一个简单实现:对话机器人

时间:2023-05-25 16:22:05浏览次数:36  
标签:sequence SFT 机器人 PPO Critic value 算法 Actor logits

综上,PPO算法是一种具体的Actor-Critic算法实现,比如在对话机器人中,输入的prompt是state,输出的response是action,想要得到的策略就是怎么从prompt生成action能够得到最大的reward,也就是拟合人类的偏好。具体实现时,可以按如下两大步骤实现

首先定义4个模型:Actor(action_logits)、SFT(sft_logits)、Critic(value)、RM「r(x, y)」,和kl_div、reward、优势函数adv
从prompt库中采样出来的prompt在经过SFT(微调过GPT3/GPT3.5的模型称之为SFT)做generate得到一个response,这个『prompt + response』定义为sequence(这个采样的过程是批量采样进行generate,得到一个sequence buffer),然后这个sequence buffer的内容做batched之后输入给4个模型做inference

 


这4个模型分别为Actor、SFT、Critic、RM,其中:
Actor和SFT都是175B的模型,且Actor参数由SFT初始化(SFT是baseline),Actor输出action_logits,SFT输出sft_logits
sft_logits和action_logits做kl_div,为了约束actor模型的更新step不要偏离原始模型SFT太远

Critic和RM是6B的模型,Critic参数由RM初始化
Critic输出标量value,RM输出标量r(x, y),由r(x, y)和kl_div计算得到reward,reward和value计算得到adv
其次,通过pg_loss和value_loss优化迭代
Actor的流程是取出sequence,然后inference生成新的logits,再和sequence对应的之前的logits计算ratio,和adv计算出pg_loss,也就是actor的loss,然后反向传播,优化器迭代
Critic的流程是取出sequence,然后inference得到新的value,和old_value做clip_value,再和reward计算value loss,然后反向传播,优化器迭代

 


至于代码实现可以参阅此文:类ChatGPT逐行代码解读(2/2):从零起步实现ChatLLaMA和ColossalChat
————————————————
版权声明:本文为CSDN博主「v_JULY_v」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/v_JULY_v/article/details/128965854

标签:sequence,SFT,机器人,PPO,Critic,value,算法,Actor,logits
From: https://www.cnblogs.com/end/p/17431691.html

相关文章

  • 算法导论阅读记录
    \(\color{red}{不正确的算法如果其错误率可以被控制的情况下肯是很有用的}\)动态图解排序算法插入排序对少量元素的排序较为有效,每次选择一个待排序元素,依次与已排序集合比较伪代码```//从第2个元素开始比较for(i=2;i<length(arr);i++)在单个循环中保存每次的值,保证数据......
  • 文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及
    文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)1.项目介绍目标:输入一篇文档,将文档进行关键信息提取,进行结构化,并最终组织成图谱组织形式,形成对文章语义信息的图谱化展示。如何用图谱和结构化的方式,即以简洁的方式对......
  • 行业报告 | 2023中国机器人产业发展增长报告
    文|BFT机器人012023中国机器人产业发展增长报告2022世界机器人大会上发布的《中国机器人产业发展报告》预计,2022年中国机器人市场规模将达174亿美元,2017年至2022年年均增长率达22%。其中,2022年工业机器人市场规模有望达87亿美元,服务机器人市场规模有望达65亿美元,特种机器人市场规......
  • 非极大值抑制(NMS)算法详解
    NMS(nonmaximumsuppression)即非极大值抑制,广泛应用于传统的特征提取和深度学习的目标检测算法中。NMS原理是通过筛选出局部极大值得到最优解。在2维边缘提取中体现在提取边缘轮廓后将一些梯度方向变化率较小的点筛选掉,避免造成干扰。在三维关键点检测中也起到重要作用,筛选掉特......
  • C#使用词嵌入向量与向量数据库为大语言模型(LLM)赋能长期记忆实现私域问答机器人落地
    ------------恢复内容开始------------在上一篇文章中我们大致讲述了一下如何通过词嵌入向量的方式为大语言模型增加长期记忆,用于落地在私域场景的问题。其中涉及到使用openai的接口进行词嵌入向量的生成以及chat模型的调用由于众所周知的原因,国内调用openai接口并不友好,所以今......
  • 哈希算法
    哈希算法哈希算法哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。哈希算法最重要的特点就是:相同的输入一定得到相同的输出;不同的输入大概率得到不同的输出。哈希算法的目的就是为了验证原始数据是否被篡改。Java字符串......
  • 某验图片混淆算法还原
    文章只供技术交流使用,不放任何成品,如有侵害贵公司权益行为,联系我,立即予以删除抓包先完整的抓一次包简单分析register-slide----时间戳---->返回gt,challengegettype.php?----gt---->返回一串,包含各个js地址get.php?----gt,challenge,w---->返回一串json,里面有可疑......
  • SpringBoot 出现 Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘
    问题点1:如果Content-Type设置为“application/x-www-form-urlencoded;charset=UTF-8”无论是POST请求还是GET请求都是可以通过这种方式成功获取参数,但是如果前端POST请求中的body是Json对象的话,会报上述错误。请求中传JSON时设置的Content-Type如果是application/json或者tex......
  • 顺丰科技携手飞桨自研“智能外呼机器人”,为客户打造优质服务体验
    顺丰已成为国内领先的快递物流综合服务商、全球第四大快递公司,依托领先的科技研发能力,为用户提供便捷、专业、有温度寄递服务。作为顺丰的智慧大脑,顺丰科技聚焦实现物流大网和供应链底盘的数智化转型与升级,通过打通营运、销售、体验等环节与板块的数字闭环,助力客户体验提升。顺丰科......
  • 常见问题解决 --- Failed to build android app at server - class file for android.
    问题原因  这个错误主要是LocalBroadcastManager这个类被弃用了,而在库或者sdk中使用到了。解决办法build.gradle文件中添加implementation'com.android.support:support-v4:30.4.1'gradle.properties添加android.enableJetifier=true......