DeepSpeed-chat RLHF实战

轩辕-6bRLHF落地实战

模型介绍:轩辕-6B · 模型库 (modelscope.cn)

1.1偏好数据集构建

1.1.1Prompt构建

1.1.2 Response生成

保证RM训练数据和测试数据分布一致

使用模型来生成response,为了评价response的质量,可以提高采样参数中的temperature和top_p的值。

1.1.3偏好标注

rank标注:对多个response进行排序。instruct-GPT

pair标注:一条prompt只生成两个response。llama2

轩辕-6b:

2.2RM训练

在transformer中最后输出的是softmax后生成的概率,这个概率表示下一个生成词哪个概率最大的向量。在reward model中改为一个线性层,因此其不需要向量,需要一个评价结果的标量。

2.2.1损失函数

2.2.2Reward Model 选择

1.测试精度。

2.RM输出的reward值,不能过大过小。

3.需要拉开奖励值之间的差距。

3.3 RLHF训练

3.3.1结构

actor model和reference model为XuanYuan-6B-SFT, critic model和reward model用训练好的XuanYuan-6B-RM进行初始化。训练中,actor model和critic model需要进行更新,而reference model和reward model则!保持不变

3.3.2数据

强化训练的数据为prompt数据数据组成:偏好数据的prompt,增加了额外的新prompt,比例为1:11.偏好数据中的p2ompt用于强化训练会使训练过程更为“容易”,很大程度上可以避免RM打分不准而导致的一系列问题,如reward hacking、训练不收敛等。2.仅采用偏好数据中的prompt是不够的,这样模型见到的数据过于局限,不利于提升模型的泛化性能。因此增加了额外的新prompt一起用于强化训练。新prompt的构建方式和偏好数据中prompt构建方式相同。

3.3.3训练

应用了deepseed-chat的结构

目标

超参选择

KL散度beta参数、学习率(5e-7)、loss精度(fp32)

3.3.4模型选择和人工评估

DeepSpeed-Chat 源码学习

微调模型

运行:bash training_scripts/single_gpu/run_1.3b.sh

在output文件下 查看训练日志:tail -f training.log

对微调后的模型进行评估

执行脚本 :bash evaluation_scripts/run_prompt.sh

模型推理inference

在output下输入pwd可以查看微调后的模型保存的路径

python3 ./inference/chatbot.py --path {args.path}

参考说明

12大模型全栈-强化学习05-RLHF实战-端到端全流程解决方案-轩辕大模型强化学习完整流程介绍(数据+奖励模型+强化学习调参经验)_哔哩哔哩_bilibili
DeepSpeed-Chat 模型训练实战 | 大模型训练入门实战 (techdiylife.github.io)
DeepSpeed分布式训练框架 DeepSpeed-Chat Step-1-02 actor 模型微调_哔哩哔哩_bilibili
 

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

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

相关文章

通过抓包,使用frida定位加密位置

首先我们抓取一下我们要测试的app的某一个目标api,通过抓api的包,得到关键字。 例如:关键字:x-sap-ri 我们得到想要的关键字后,通过拦截 类,寻找我们的关键字,及找到发包收包的位置&#xff0c…

无线WiFi网络版毫米波雷达人体传感器,智能家居节能减排照明有人无人识别

在这个科技日新月异的时代,智能家居已经不再是遥不可及的未来概念,而是悄然融入了我们的日常生活,为我们的生活带来了未有的便捷与舒适。今天,让我们一起探索一项创新性的智能家居技术——飞睿智能无线WiFi网络版毫米波雷达人体传…

Linux介绍与安装指南:从入门到精通

1. Linux简介 1.1 什么是Linux? Linux是一种基于Unix的操作系统,由Linus Torvalds于1991年首次发布。Linux的核心(Kernel)是开源的,允许任何人自由使用、修改和分发。Linux操作系统通常包括Linux内核、GNU工具集、图…

26.100ASK_T113-PRO 测试摄像头 输出信息

1.测试代码 读到摄象头参数 输出 video_test.c #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <unistd.h> #include <stdio.h> #include <string.h> #include <linux/type…

tomcat,appche,nginix,jboss区别

Tomcat、Apache、Nginx和JBoss都是Web服务器或应用服务器领域的知名软件&#xff0c;它们各自具有独特的原理和特性&#xff0c;同时也存在一定的区别和联系。以下是对这四个软件的原理和区别联系的详细阐述。 Tomcat的原理和特性 Tomcat是一个开源的Java Web服务器和Servlet…

Spring中实现动态数据源切换,基于AbstractRoutingDataSource

背景 在项目开发过程中&#xff0c;我们可能会遇到一个场景&#xff1a;某个类型数据源有多个数据源实例&#xff0c;需要我们按照不同的请求切换到不同数据源去。 而目前绝大多数java应用都是基于Spring框架来开发&#xff0c;我们很多时候相关的数据源连接都是交给了Spring框…

Qt读写Usb设备的数据

Qt读写Usb设备的数据 问题:要读取usb设备进行通讯&#xff0c;qt好像没有对应的库支持。解决&#xff1a;libusbwindow下载 :Linux下载: QtUsb 开源的第三方库库里面的函数说明&#xff1a;window版本&#xff1a;Linux中也提供的直接下载测试代码&#xff1a;库下载&#xff1…

2024最新python使用yt-dlp

2024最新python使用yt-dlp下载YT视频 1.获取yt的cookie1&#xff09;google浏览器下载Get cookies.txt LOCALLY插件2&#xff09;导出cookie 2.yt-dlp下载[yt-dlp的GitHub地址](https://github.com/yt-dlp/yt-dlp?tabreadme-ov-file)1&#xff09;使用Pycharm(2024.3)进行代码…

windows docker 入门

这个教程将指导你如何安装Docker、运行第一个容器以及理解一些基本概念。 第一步&#xff1a;安装Docker Desktop for Windows 系统要求&#xff1a; Windows 10 64位版本&#xff08;专业版、企业版或教育版&#xff09;。启用Hyper-V和Windows Subsystem for Linux (WSL 2)。…

python学opencv|读取图像

【1】引言 前序学习了使用matplotlib模块进行画图&#xff0c;今天开始我们逐步尝试探索使用opencv来处理图片。 【2】学习资源 官网的学习链接如下&#xff1a; OpenCV: Getting Started with Images 不过读起来是英文版&#xff0c;可能略有难度&#xff0c;所以另推荐一…

27加餐篇:gRPC框架的优势与不足之处

gRPC作为一个现代的、开源的远程过程调用(RPC)框架,在多个方面都展现了其优雅之处,同时也存在一些不足之处。这篇文章我们就相对全面的分析一下gRPC框架那些优雅的地方和不足的地方。 优雅的地方 gRPC作为一个RPC框架,在编码、传输协议已经支持多语言方面都比较高效,下…

linux模拟HID USB设备及wireshark USB抓包配置

文章目录 1. 内核配置2. 设备配置附 wireshark USB抓包配置 linux下模拟USB HID设备的简单记录&#xff0c;其他USB设备类似。 1. 内核配置 内核启用USB Gadget&#xff0c;使用fs配置usb device信息。 Device Drivers ---> [*] USB support ---><*> USB …

Ubuntu20.04运行R-VIO2

目录 1.环境配置2.构建项目3. 运行 VIO 模式4.结果图 1.环境配置 CMakeLists.txt中 C 使用 14、opencv使用4 2.构建项目 克隆代码库&#xff1a; 在终端中执行以下命令克隆项目&#xff1a;git clone https://github.com/rpng/R-VIO2.git编译项目&#xff1a; 使用 catkin_m…

2024年09月CCF-GESP编程能力等级认证Scratch图形化编程三级真题解析

本文收录于《Scratch等级认证CCF-GESP图形化真题解析》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(一共 15 个题目,每题 2 分,共 30 分) 第 1 题 据有关资料,山东大学于 1972 年研制成功 DJL-1 计算机,并于 1973 年投入运行,其综合性能居当时…

BGE-M3模型结合Milvus向量数据库强强联合实现混合检索

在基于生成式人工智能的应用开发中&#xff0c;通过关键词或语义匹配的方式对用户提问意图进行识别是一个很重要的步骤&#xff0c;因为识别的精准与否会影响后续大语言模型能否检索出合适的内容作为推理的上下文信息&#xff08;或选择合适的工具&#xff09;以给出用户最符合…

ffmpeg命令详解

原文网址&#xff1a;ffmpeg命令详解_IT利刃出鞘的博客-CSDN博客 简介 本文介绍ffmpeg命令的用法。 命令示例 1.mp4和avi的基本互转 ffmpeg -i D:\input.mp4 E:\output.avi ffmpeg -i D:\input.avi E:\output.mp4 -i 表示input&#xff0c;即输入。后面填一个输入地址和一…

基于YOLOv8深度学习的智慧课堂教师上课行为检测系统研究与实现(PyQt5界面+数据集+训练代码)

随着人工智能技术的迅猛发展&#xff0c;智能课堂行为分析逐渐成为提高教学质量和提升教学效率的关键工具之一。在现代教学环境中&#xff0c;能够实时了解教师的课堂表现和行为&#xff0c;对于促进互动式教学和个性化辅导具有重要意义。传统的课堂行为分析依赖于人工观测&…

十、事件类型(鼠标事件、焦点.. 、键盘.. 、文本.. 、滚动..)、事件对象、事件流(事件捕获、事件冒泡、阻止冒泡和默认行为、事件委托)

1. 事件类型 1.1 鼠标事件 1.1.1 click 鼠标点击 1.1.2 mouseenter 鼠标进入 1.1.3 mouseleave 鼠标离开 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widt…

java——Spring Boot的配置加载顺序和优先级

Spring Boot的配置加载顺序和优先级是确定应用程序如何读取和应用配置的关键。以下是对Spring Boot配置加载顺序和优先级的详细解释&#xff1a; 一、配置加载顺序 命令行参数&#xff1a; Spring Boot会首先加载命令行中指定的参数。这些参数可以通过在命令行中使用--keyval…

wireshark基础

免责声明&#xff1a; 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 泷羽sec官网&#xff1a;https://longyusec.com/ 泷羽sec B站地址&#xff1a;https:/…