ChatGLM-RM(Reward Model)实现代码逐行讲解

news2024/10/3 5:14:06

这里我们尝试通过RM训练让模型学会从给定上下文中提取信息,来进行RM模型的实践。你可以从下面链接获取代码

GitHub - Pillars-Creation/ChatGLM-RLHF-LoRA-RM: ChatGLM-6B添加了RLHF的实现,以及部分核心代码的逐行讲解 ,实例部分是做了个新闻短标题的生成

首先我们看例子,从随机给的50条新闻中提取我们希望的信息。

# 输入候选文章prompt和query
Prompt = "工程师舍身救人 各界纷纷伸出援手 妻子:将更多时间陪伴家人 (新闻)', '男生为恢复妈妈听力,考上了协和博士研究生!这应该是这位妈妈最骄傲的时候 (生活)', '三盘鏖战晋级!小花郑钦文险胜3号种子,首进红土巡回赛决赛 (体育)', '内蒙古锡林浩特降雨引发洪水,人员车辆被困 (新闻)', '海南师范大学回应录取唐尚珺:已录名单中未看到其报考信息 (生活)', '34国联合对华施压,要求加强领海船只识别,防止朝鲜规避制裁 (军事)', '郭峰演唱《让世界充满爱》,歌词耳熟能详,满满的回忆 (音乐)', '这是韩国裁判?韩国组合动作完全不同步,竟然还能拿58.50分 (体育)', '黑海成冲突新焦点,乌船无视俄警告要出海,普京敲打波兰不要冒险 (军事)', '30秒 | 成都大运村“开村” 执行副村长苏波介绍大运村亮点 (新闻)', '继续加油!中国女足世界杯首战失利,终场前丢球遭绝杀 (体育)', '当“社恐”在演唱会上被求婚,女生第一反应不要太搞笑 (生活)', '落夜前瞻预测:小虎帮前队友复仇成功!WBG轻松拿下NIP (游戏)', '这球精彩!费利佩凌空侧钩破门 划出美丽的弧线 (体育)', '公安部:专项行动侦办“网络水军”案件130余起,抓获620余人 (新闻)', '女子清洗空调外机中暑被困4楼外,丈夫营救也被困,消防紧急施救 (新闻)', '19岁男生给旧空调标价1000元,回收师傅多给1000元,男生痛哭跪谢 (新闻)', '美官员:乌克兰或于年底前接收F-16战机 (军事)', '女足门将“飞”起来多可怕:哥斯达黎加门前长城,单场10扑“锁”西班牙 (体育)', '【赛后采访】苏州KSG.啊泽:当时是想把小兵推走,没想到小兵比我还猛 (游戏)', '女子拒绝给弟弟买房,被父母起诉了!! (新闻)', '美国一客机舱内近44℃,等待起飞期间多人热晕 (新闻)', '小品《特殊劝导》:王小欠撞车却没钱赔,包袱十足笑点一个接一个 (综艺)', '拒绝盲人携带导盲犬入住酒店,甚至拒绝退款,被嫌弃的导盲犬究竟招惹了谁? (新闻)', '大暑炎炎,体验亲手制作汽水的乐趣|节节的外拍VLOG (新闻)', '希腊:罗得岛火势难控,20余艘船只协助疏散人员 (新闻)', '别买最贵的!iPad终于不是唯一真神了?安卓平板横评选购推荐 (数码)', '泽连斯基隔空对俄方撂下狠话:克里米亚大桥必须清除 (军事)', '锋芝有望合体?谢霆锋张柏芝都在澳洲,男方暖心带儿子滑雪 (娱乐)', '航拍新疆赛里木湖,蓝宝石湖面非常治愈,满目所及都是夏日清凉 (旅游)', '曝伍德和湖人的讨论正在升温!可能签底薪合同辅佐詹眉 (体育)', '朱婧佳演唱《陪我看日出》,句句醉人心扉,百听不厌 (音乐)', '英国铁路工作人员再次举行大规模罢工 (新闻)', '\\xa0骑着赃车去作案,这个小偷胆贼大 (新闻)', '山东省2023年选派216名“业务院长”下基层 (新闻)', '后续来了!逆行司机下车还讨要说法,西安交警迅速核查处罚 (新闻)', '江南韵、国际范、智能化!感受南大苏州校区的双面魅力 (生活)', '世界上只有一种英雄主义,就是在看清生活真相后,依然热爱生活 (生活)', '中国选了个好时候,普京此行或将决定俄罗斯未来 (新闻)', '练书法、学射箭、看锡剧!在东林书院体验惬意“书式生活” (新闻)', '鳞鲀警惕地守护着自己的领地,当入侵者出现时,筑巢的鳞鲀会及时回击 (纪录片)', '欧盟提出四年内向乌提供200亿欧元军事支持,匈牙利外长:此举意味着延长冲突 (新闻)', '各种馅料的派对酥皮馅饼是怎样制作的?圣诞节上的美味小点心! (纪录片)', '【视频】守护孩子健康从“口”开始!武汉太平社区开展爱牙护齿小课堂 (新闻)', '埃及媳妇回中国后胖了4斤,直言宁夏美食太诱人,想不胖都难 (旅游)', '巴西:民众拥有及携带枪支数量将受限 (新闻)', '因挪车发生纠纷 酒驾司机弃车逃跑 (新闻)', '关注苏丹武装冲突:谈判前景仍不明朗,民众期盼战争尽快结束 (军事)', '山高水长物象千万!百人王屋山同书《上阳台帖》 (新闻)"

query = "从上面文章中找到旅游相关的新闻"

未训练前,大模型更倾向从过去学习的知识中获取答案,比如我们用glm和llama直接从候选文章中选择答案,模型倾向于旧有知识,大概率会给出一些不在候选池中的内容。

所以我们制定目标和lable的时候需要让模型能区分出从prompt里获取答案能获得奖励,不从prompt里获取答案会受到惩罚

2,lable定义

生成的lable数据如图,instruction是我们的输入,包含随机50条新闻。output是模型的lable,包含两个部分一个正例一个负例,比如我们希望查找一条军事新闻,正例是从50条新闻中获取的军事新闻标题,负例是随机给了一条军事新闻标题。

3,loss计算定义

通常我们利用

对应代码如下:

        r_accept, r_reject = values[-1].split(batch_size, dim=0)  # 将输出值按照 batch_size 进行拆分,得到 r_accept 和 r_reject
        loss = -torch.log(torch.sigmoid(r_accept - r_reject)).mean()  # 计算损失函数,这里使用二元交叉熵损失函数
        outputs = {"r_accept": r_accept, "r_reject": r_reject}  # 将 r_accept 和 r_reject 保存到 outputs 中
        return (loss, outputs) if return_outputs else loss  # 返回损失函数和 outputs,或者只返回损失函数,取决于 return_outputs 的值

4, 

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

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

相关文章

入行软件测试7年,才知道原来字节跳动这么容易进

当前就业环境,裁员、失业消息满天飞,好像有一份工作就不错了,更别说高薪了。其实这只是一方面,而另一方面,各大企业依然求贤若渴,高技术人才依然紧缺,只要你技术过硬,拿个年薪50w不是…

FUNBOX_1靶场详解

FUNBOX_1靶场复盘 这个系列的靶场给出的干扰因素都挺多的,必须从中找到有用的线索才可以。 这个靶场你扫描到ip地址后打开网页会发现,ip自动转换成域名了,所以我们需要添加一条hosts解析才可以。 192.168.102.190 funbox.fritz.box从目录…

4EVERLAND 托管让 Permaweb 变得更容易!

在互联网托管领域,我们通常将其与存储和管理网站的服务联系起来。传统的 Web2 托管服务在集中式服务器模型上运行,其中网站文件和数据库存储在集中管理的服务器上。用户通过互联网访问网站。这种托管模式应用广泛,相对简单,适合很…

计算机存储结构、执行速度及对应用的影响

万丈高楼,平地起。 计算机世界的信息化软件工程,是构筑于计算机硬件之上的。 由于信息的流转依托于计算机不同的部件,所以计算机系统的内部设计、各类应用架构无不受部件之间速度差异的影响。 本文,主要先介绍存储体系&#xff0c…

Spring Security 授权体系结构

目录 1、Authorities 授权(AuthorizationFilter 过滤器) 2、AuthorizationManager 授权管理器 3、角色的层次化(Roles) 1、Authorities 授权(AuthorizationFilter 过滤器) 通过 Authentication.getAutho…

Spring基础知识讲解

文章目录 Spring是什么?IoC容器与DIDI与IoC的区别 Spring项目的创建配置maven国内源创建Spring项目有关Bean的操作存储Bean使用Bean ApplicationContext和BeanFactory的区别getBean()的三种使用方法 更简单的存储和获取对象类注解方法注解获取Bean对象的简单方法——…

Ubuntu18.04下安装ROS

安装相关依赖 sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip ----------------------------------------------------------------…

TCP/IP 介绍

一、TCP/IP 是什么 TCP /IP 是因特网通信协议 (注释:通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信。) 因特网浏览器和因特网服务器均使用 TCP/IP 来连接因特网。浏览器使用 TCP…

Idea 避免import *

File -> setting -> Editor -> Code Style -> Java -> Imports

详解Mybatis查询之resultType返回值类型问题【4种情况】

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 Mybatis版本:3.5.6 文章目录 引言一、查询单行数据返回单个对象二、查询多行数据返回对象的集合三、 查询单行数据返回Map[Key,…

pandas学习

(个人学习使用) 添加索引 # index是行索引,columns是列索引 pd.DataFrame(score, indexidx, columnscol) 常用属性和方法 data.shape # 形状 data.index # 行索引 data.columns # 列索引 data.values # 里面的值,结果是ndarray类型数组 …

SpringBoot登陆+6套主页-【JSB项目实战】

SpringBoot系列文章目录 SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录本系列校训 SpringBoot技术很多很多环境及工具:上效果图主页登陆 配置文件设置导数据库项目目录如图:代码部分:控制器过滤器详细的解…

docker Registry私有仓库

一、docker自带的本地私有仓库配置 #首先下载registry镜像 docker pull registry#在daemon.json文件中添加私有仓库地址 vim /etc/docker/daemon.json {"insecure-registries": ["192.168.60.11:5000"], #添加,注意用逗号结尾"registr…

验证码登录如何实现?

手机验证码登录 1、需求分析2、数据模型3、代码开发-交互过程4、代码开发-准备工作5、代码开发-修改LoginCheckFilter6、代码开发-接口开发7、前端代码介绍8、启动测试 1、需求分析 为了方便用户登录,移动端通常都会提供通过手机验证码登录的功能。 手机验证码登录…

Android性能优化之修复游戏中内存泄漏(java层)

游戏在bugly上内存OOM越来越严重,因此,近期对内存进行优化。从java层的内存进行优化开始,通过LeakCannary或者adb shell 获取到内存快照,发现好几处内存泄漏点。 1.单例类持有Activity: 查看内存快照,该闪…

MFC第二十天 数值型关联变量 和单选按钮与复选框的开发应用

文章目录 数值型关联变量数值型关联变量的种类介绍 单选按钮与复选框单选按钮的组内选择原理解析单选按钮和复选框以及应用数值型关联变量的开发CMainDlg.cppCInputDlg.hCInputDlg.cpp 附录 数值型关联变量 数值型关联变量的种类介绍 1、 数值型关联变量: a)控件型…

STM32MP157驱动开发——按键驱动(异步通知)

文章目录 “异步通知 ”机制:信号的宏定义:信号注册 APP执行过程驱动编程做的事应用编程做的事异步通知方式的按键驱动程序(stm32mp157)button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “异步通知 ”机制: 信号的宏定义&#x…

请问学JavaScript 前要学html 和css 吗?

前言 html和css可以理解为是一个网站的骨架和皮肤,这两部分做好后整个网站的外观展示的完成度基本就有了个90%左右,所以在学习js前是需要学习html和css 的,这两部分不用花特别多的时间(虽然css如果想做一些非常炫酷的效果个人认为…

记一次容器环境下出现 Address not available

作者:郑明泉、余凯 困惑的源地址 pod 创建后一段时间一直是正常运行,突然有一天发现没有新的连接创建了,业务上是通过 pod A 访问 svc B 的 svc name 的方式,进入 pod 手动去 wget 一下,发现报错了 Address not avai…

Roslyn 动态编译

NET 编译器平台(.NET Compiler Platform) 也称为Roslyn,是Microsoft的一组用于C#和Visual Basic (VB.NET) 语言的开源 编译器和代码分析 API。 该项目特别包括C# 和 VB.NET 编译器的自托管版本——用语言本身编写的编译器。编译器可通过传统…