当前位置: 首页 > article >正文

强化学习PPO算法学习记录

在这里插入图片描述

1. 四个模型:

  • Policy Model:我们想要训练的目标语言模型。我们一般用SFT阶段产出的SFT模型来对它做初始化。
  • Reference Model:一般也用SFT阶段得到的SFT模型做初始化,在训练过程中,它的参数是冻结的。Ref模型的主要作用是防止Actor”训歪”。(我们希望训练出来的Actor模型的输出分布和Ref模型的输出分布尽量相似,使用KL散度衡量两个输出分布的相似度,这个KL散度会用于后续loss的计算)
  • Reward Model:用于计算生成token At的即时收益,在RLHF过程中,它的参数是冻结的。
  • Value Model:用于预测期望总收益 Vt,和Actor模型一样,它需要参数更新。因为在t时刻,我们给不出客观存在的总收益,只能训练一个模型去预测它。

2. r,GAE,A

图中的r或者说rt的获得:训练模型的输出分布和ref模型的输出分布的KL散度*超参数 + reward 模型的输出。
在这里插入图片描述
在这里插入图片描述

GAE整合奖励(r)与价值(v),计算优势函数 A,指导策略优化:
在这里插入图片描述

3. 重要性权重(新旧策略概率比)

在PPO算法中,​约束重要性权重 有两种主要的约束方式​:Clip机制和KL散度惩罚。
在这里插入图片描述

3.1 Clip机制

在这里插入图片描述

3.2 KL散度惩罚

在这里插入图片描述
将这个公式展开也就是:
在这里插入图片描述

4. actor loss 和 critic loss

这两个loss 分别用于优化 policy model 和 value model

  1. 如果用clip限制策略更新的幅度下的actor loss:

在这里插入图片描述

  1. critic loss:

在这里插入图片描述

PPO 和 GRPO :

主要区别:提出一个不需要训练状态价值网络,就可以估算出每个token 优势值的方法,并且这个方法更适合训练大模型生成强化学习这个场景。
在这里插入图片描述

在这里插入图片描述

相关文章:

强化学习PPO算法学习记录

1. 四个模型: Policy Model:我们想要训练的目标语言模型。我们一般用SFT阶段产出的SFT模型来对它做初始化。Reference Model:一般也用SFT阶段得到的SFT模型做初始化,在训练过程中,它的参数是冻结的。Ref模型的主要作用…...

从零开始:用PyTorch构建CIFAR-10图像分类模型达到接近1的准确率

为了增强代码可读性,代码均使用Chatgpt给每一行代码都加入了注释,方便大家在本文代码的基础上进行改进优化。 本文是搭建了一个稍微优化了一下的模型,训练200个epoch,准确率达到了99.74%,简单完成了一下CIFAR-10数据集…...

uni-app使用web-view组件APP实现返回上一页

一、功能概述 本案例实现了在Uniapp中内嵌H5网页并深度控制的三项核心功能&#xff1a; 隐藏指定特征的内链元素自定义导航栏返回逻辑Webview原生特性保留 二、代码解析 2.1 基础结构 <template><view><web-view :webview-styles"webviewStyles"…...

Apache Velocity代码生成简要介绍

Apache Velocity 概述 Apache Velocity 是一个基于 Java 的模板引擎&#xff0c;它允许将 Java 代码与 HTML、XML 或其他文本格式分离&#xff0c;实现视图与数据的解耦。在 Web 开发中&#xff0c;Velocity 常用于生成动态网页内容&#xff1b;在其他场景下&#xff0c;也可用…...

初学Python爬虫

文章目录 前言一、 爬虫的初识1.1 什么是爬虫1.2 爬虫的核心1.3 爬虫的用途1.4 爬虫分类1.5 爬虫带来的风险1.6. 反爬手段1.7 爬虫网络请求1.8 爬虫基本流程 二、urllib库初识2.1 http和https协议2.2 编码解码的使用2.3 urllib的基本使用2.4 一个类型六个方法2.5 下载网页数据2…...

【办公类-99-05】20250508 D刊物JPG合并PDF便于打印

背景需求 委员让我打印2024年2025年4月的D刊杂志&#xff0c;A4彩打&#xff0c;单面。 有很多JPG&#xff0c;一个个JPG图片打开&#xff0c;实在太麻烦了。 我需要把多个jpg图片合并成成为一个PDF&#xff0c;按顺序排列打印。 deepseek写Python代码 代码展示 D刊jpg图片合…...

高效C/C++之十:Coverity修复问题:尽量多使用 c++强制类型转化

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 高效C/C之十&#xff1a;Coverity修复问题&#xff1a;尽量多使用 c强制类型转化 目录 【关注我&#xff0c;后…...

相机的方向和位置

如何更好的控制相机按照我们需要来更好的观察我们需要的地貌呢? 使用 // setview瞬间到达指定位置,视角//生成position是天安门的位置var position Cesium.Cartesian3.fromDegrees(116.397428,39.90923,100)viewer.camera.setView({//指定相机位置destination: position, 在…...

suna界面实现原理分析(二):浏览器工具调用可视化

这是一个基于React的浏览器操作可视化调试组件&#xff0c;主要用于在AI开发工具中展示网页自动化操作过程&#xff08;如导航、点击、表单填写等&#xff09;的执行状态和结果。以下是关键技术组件和功能亮点的解析&#xff1a; 一、核心功能模块 浏览器操作状态可视化 • 实时…...

操作系统面试问题(4)

32.什么是操作系统 操作系统是一种管理硬件和软件的应用程序。也是运行在计算机中最重要的软件。它为硬件和软件提供了一种中间层&#xff0c;让我们无需关注硬件的实现&#xff0c;把心思花在软件应用上。 通常情况下&#xff0c;计算机上会运行着许多应用程序&#xff0c;它…...

websocketd 10秒教程

websocketd 参考地址&#xff1a;joewalnes/websocketd 官网地址&#xff1a;websocketd websocketd简述 websocketd是一个简单的websocket服务Server&#xff0c;运行在命令行方式下&#xff0c;可以通过websocketd和已经有程序进行交互。 现在&#xff0c;可以非常容易地构…...

C++ Dll创建与调用 查看dll函数 MFC 单对话框应用程序(EXE 工程)改为 DLL 工程

C Dll创建 一、添加 DllMain&#xff08;必要&#xff09; #include <fstream>void Log(const char* msg) {std::ofstream f("C:\\temp\\dll_log.txt", std::ios::app);f << msg << std::endl; }BOOL APIENTRY DllMain(HMODULE hModule, DWORD u…...

【prometheus+Grafana篇】基于Prometheus+Grafana实现Linux操作系统的监控与可视化

&#x1f4ab;《博主主页》&#xff1a; &#x1f50e; CSDN主页 &#x1f50e; IF Club社区主页 &#x1f525;《擅长领域》&#xff1a;擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控&#xff1b;并对SQLserver、NoSQL(MongoDB)有了…...

小刚说C语言刷题—1004阶乘问题

1.题目描述 编程求 123⋯n 。 输入 输入一行&#xff0c;只有一个整数 n(1≤n≤10)&#xff1b; 输出 输出只有一行&#xff08;这意味着末尾有一个回车符号&#xff09;&#xff0c;包括 1 个整数。 样例 输入 5 输出 120 2.参考代码(C语言版) #include <stdio…...

CurrentHashMap的整体系统介绍及Java内存模型(JVM)介绍

当我们提到ConurrentHashMap时&#xff0c;先想到的就是HashMap不是线程安全的&#xff1a; 在多个线程共同操作HashMap时&#xff0c;会出现一个数据不一致的问题。 ConcurrentHashMap是HashMap的线程安全版本。 它通过在相应的方法上加锁&#xff0c;来保证多线程情况下的…...

spring ai alibaba 使用 SystemPromptTemplate 很方便的集成 系统提示词

系统提示词可以是.st 文件了&#xff0c;便于修改和维护 1提示词内容&#xff1a; 你是一个有用的AI助手。 你是一个帮助人们查找信息的人工智能助手。 您的名字是{name} 你应该用你的名字和{voice}的风格回复用户的请求。 每一次回答的时候都要增加一个65字以内的标题形如:【…...

@PostConstruct @PreDestroy

PostConstruct 是 Java EE&#xff08;现 Jakarta EE&#xff09;中的一个注解&#xff0c;用于标记一个方法在对象初始化完成后立即执行。它在 Spring 框架、Java Web 应用等场景中广泛使用&#xff0c;主要用于资源初始化、依赖注入完成后的配置等操作。 1. 基本作用 执行时…...

网络的搭建

1、rpm rpm -ivh 2、yum仓库&#xff08;rpm包&#xff09;&#xff1a;网络源 ----》网站 本地源 ----》/dev/sr0 光盘映像文件 3、源码安装 源码安装&#xff08;编译&#xff09; 1、获取源码 2、检测环境生成Ma…...

C++学习之类和对象_1

1. 面向过程与面向对象 C语言是面向过程的&#xff0c;注重过程&#xff0c;通过调用函数解决问题。 比如做番茄炒蛋&#xff1a;买番茄和鸡蛋->洗番茄和打鸡蛋->先炒蛋->把蛋放碟子上->炒番茄->再把蛋倒回锅里->加调料->出锅 而C是面向对象的&#xff…...

YOLOv12云端GPU谷歌免费版训练模型

1.效果 2.打开 https://colab.research.google.com/?utm_sourcescs-index 3.上传代码 4.解压 !unzip /content/yolov12-main.zip -d /content/yolov12-main 5.进入yolov12-main目录 %cd /content/yolov12-main/yolov12-main 6.安装依赖库 !pip install -r requirements.…...

OpenCV进阶操作:图像直方图、直方图均衡化

文章目录 一、图像直方图二、图像直方图的作用三、使用matplotlib方法绘制直方图2.使用opencv的方法绘制直方图&#xff08;划分16个小的子亮度区间&#xff09;3、绘制彩色图像的直方图 四、直方图均衡化1、绘制原图的直方图2、绘制经过直方图均衡化后的图片的直方图3、自适应…...

基环树(模板) 2876. 有向图访问计数

对于基环树&#xff0c;我们可以通过拓扑排序去掉所有的树枝&#xff0c;只剩下环&#xff0c;题目中可能会有多个基环树 思路&#xff1a;我们先利用拓扑排序将树枝去掉&#xff0c;然后求出每个基环树&#xff0c;之后反向dfs求得所有树枝的长度即可 class Solution { publi…...

【物联网】基于树莓派的物联网开发【1】——初识树莓派

使用背景 物联网开发从0到1研究&#xff0c;以树莓派为基础 场景介绍 系统学习Linux、Python、WEB全栈、各种传感器和硬件 接下来程序猫将带领大家进军物联网世界&#xff0c;从0开始入门研究树莓派。 认识树莓派 正面图示&#xff1a; 1&#xff1a;树莓派简介 树莓派…...

Qt读写XML文档

XML 结构与概念简介 XML&#xff08;可扩展标记语言&#xff09; 是一种用于存储和传输结构化数据的标记语言。其核心特性包括&#xff1a; 1、树状结构&#xff1a;XML 数据以层次化的树形结构组织&#xff0c;包含一个根元素&#xff08;Root Element&#xff09;&#xff…...

学习Python的第一天之网络爬虫

30岁程序员学习Python的第一天&#xff1a;网络爬虫 Requests库 1、requests库安装 windows系统通过管理员打开cmd&#xff0c;运行pip install requests!测试案例&#xff1a; 2、Requests库的两个重要对象 Response对象Resoponse对象包含服务器返回的所有信息&#xff…...

前端展示后端返回的图片流

一、请求 重点&#xff1a;添加responseType: “blob”, // Vue2组件中请求示例 methods: {fetchImage() {return axios.get(/api/getImage, {params: { id: 123 },responseType: blob // 关键配置&#xff08;重点&#xff0c;必须配置&#xff09;});} }或 export function…...

65.微服务保姆教程 (八) 微服务开发与治理实战

微服务开发与治理实战:搭建一个简单的微服务系统 在这个实战中,我们将使用以下技术栈来搭建一个简单的微服务系统: 注册中心和配置中心:使用 Nacos。服务开发框架:使用 Spring Boot。服务间通信:使用 Feign。API 网关:使用 Spring Cloud Gateway。依赖管理工具:使用 M…...

AI服务器通常会运用在哪些场景当中?

人工智能行业作为现代科技的杰出代表&#xff0c;在多个领域当中发展其强大的应用能力和价值&#xff0c;随之&#xff0c;AI服务器也在各个行业中日益显现出来&#xff0c;为各个行业提供了强大的计算能力和处理能力&#xff0c;帮助企业处理复杂的大规模数据&#xff0c;本文…...

linux下的Redis的编译安装与配置

配合做开发经常会用到redis&#xff0c;整理下编译安装配置过程&#xff0c;仅供参考&#xff01; --------------------------------------Redis的安装与配置-------------------------------------- 下载 wget https://download.redis.io/releases/redis-6.2.6.tar.gz tar…...

【官方题解】StarryCoding 入门教育赛 2 | acm | 蓝桥杯 | 新手入门

比赛传送门&#xff1a; 本场比赛开始时题面存在一些问题&#xff0c;私密马赛&#xff01; A.池化【入门教育赛】 根据题目所给公式计算即可。 #include "bits/stdc.h"signed main() {int t; std::cin >> t;while (t --) {int l, k, s, p; std::cin >&…...