打造SimPO新算法,微调8B模型超越Claude 3 Opus

前言

大型语言模型(LLM)近年来取得了巨大进展,但要将其与人类价值观和意图相一致,使其变得有用、诚实和无害,仍然是一个挑战。强化学习从人类反馈中(RLHF)是一种常用的方法,通过微调语言模型来实现有效对齐。传统的RLHF方法虽然取得了令人印象深刻的结果,但其多阶段过程(包括训练奖励模型和优化策略模型以最大化奖励)带来了优化挑战。

  • Huggingface模型下载:https://huggingface.co/princeton-nlp/Llama-3-Instruct-8B-SimPO

  • AI快站模型免费加速下载:https://aifasthub.com/models/princeton-nlp

技术特点

为了解决这些挑战,研究人员开始探索更简单的离线算法。直接偏好优化(DPO)是其中的一种方法。DPO重新参数化RLHF中的奖励函数,直接从偏好数据中学习策略模型,无需显式奖励模型。它因其简单性和稳定性而被广泛应用于实际中。

DPO 使用当前策略模型和监督微调(SFT)模型之间的响应可能性对数比作为隐式奖励。然而,这种奖励公式与指导生成的度量标准(近似于策略模型生成响应的平均对数可能性)不完全一致。这种训练和推断之间的差异可能会导致次优性能。

SimPO 针对 DPO 的局限性,提出了一种更简单但更有效的离线偏好优化算法。SimPO 的核心是将偏好优化目标中的奖励函数与生成度量标准保持一致。SimPO 包含两个主要组成部分:

  • 长度归一化奖励: 使用策略模型计算响应中所有标记的平均对数概率。

  • 目标奖励边际: 确保获胜响应的奖励比失败响应的奖励至少高出此边际。

SimPO 具有以下优点:

  • 简单性: SimPO 不需要参考模型,比 DPO 和其他依赖参考模型的方法更轻量级且更容易实现。

  • 显著的性能优势: 尽管简单,SimPO 显著优于 DPO 及其最新变体(例如,最近的无参考目标 ORPO)。这种性能优势在各种训练设置和广泛的指令遵循基准测试中都保持一致,包括 AlpacaEval 2 和具有挑战性的 Arena-Hard 基准测试。

  • 最小长度利用: 与 SFT 或 DPO 模型相比,SimPO 不会显著增加响应长度,表明它几乎没有利用长度偏差。

性能表现

SimPO 在 AlpacaEval 2 和 Arena-Hard 基准测试上都表现出优异的性能。在 AlpacaEval 2 上,SimPO 比 DPO 的胜率高出高达 6.4 个百分点。在 Arena-Hard 上,SimPO 比 DPO 的胜率高出高达 7.5 个百分点。SimPO 基于 Llama3-8B-Instruct 构建的模型在 AlpacaEval 2 上实现了 44.7 的长度控制胜率,超过了排行榜上的 Claude 3 Opus,并在 Arena-Hard 上实现了 33.8 的胜率,成为目前最强大的 8B 开源模型。

应用场景

SimPO 可以用于各种需要从人类反馈中学习的应用场景,例如:

  • 聊天机器人 提高聊天机器人的响应质量,使其更符合人类期望。

  • 文本生成: 生成更符合人类意图和价值观的文本。

  • 代码生成: 生成更安全、更可靠的代码。

总结

SimPO 是一种简单而有效的偏好优化算法,它通过将奖励函数与生成可能性对齐,并引入目标奖励边际,消除了对参考模型的依赖,并在不利用长度偏差的情况下实现了强大的性能。SimPO 证明了其在各种训练设置和基准测试中的有效性,并表明其有潜力成为下一代 LLM 对齐算法的基础。SimPO 的成功为进一步提升 LLM 的性能和安全性提供了新的思路和方向。

模型下载

Huggingface模型下载

https://huggingface.co/princeton-nlp/Llama-3-Instruct-8B-SimPO

AI快站模型免费加速下载

https://aifasthub.com/models/princeton-nlp

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

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

相关文章

Charles的安装和web端抓包配置

1.Charles的安装 通过官网下载:https://www.charlesproxy.com/download/,我之前下载的是4.6.2版本,下载成功后点击安装包,点击下一步下一步即可安装成功。 ​​ ​ 安装成功后打开charles页面如下所示。 ​ 2.乱码问题解决 打开…

【C++】STL:栈和队列模拟实现

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

绘画参数配置及使用

绘画参数配置及使用 路径:站点后台-功能-AI绘画 进入参数配置 接口选择:多种接口自主选择(需自己准备key),对应接口的key对话和绘画通用 存储空间: 位置在超管后台-存储空间 自主选择存储(需…

【数据结构与算法】七大排序算法(下)

【数据结构与算法】七大排序算法(下) 🥕个人主页:开敲🍉 🔥所属专栏:数据结构与算法🍅 🌼文章目录🌼 2.3 交换排序 2.3.1 冒泡排序 2.3.2 快速排序 2.3.3 快速排序(非递归) 2.4 归并…

fpga入门 串口定时1秒发送1字节

一、 程序说明 FPGA通过串口定时发送数据,每秒发送1字节,数据不断自增 参考小梅哥教程 二、 uart_tx.v timescale 1ns / 1psmodule uart_tx(input wire sclk,input wire rst_n,output reg uart_tx);parameter …

【Python Cookbook】S01E12 根据字段将记录分组

目录 问题解决方案讨论 问题 如果有一系列的字典或对象实例,我们想根据某个特定的字段来分组迭代数据。 解决方案 假设有如下字典列表: rows [{address: 5412 N CLARK, date: 07/01/2012},{address: 5148 N CLARK, date: 07/04/2012},{address: 580…

W25Q64CV SPI Flash Memory

SPI简介 SPI是一种同步串行通信接口规范,用于短距离通信,主要应用于嵌入式系统。SPI通信由一个主设备和一个或多个从设备组成,其中主设备生成时钟信号并控制通信的开始和结束。 SPI通信的基本组成 四个基本信号 SCK (Serial Clock) - 时钟…

centos7下安装MySQL,Oracle数据库

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 操作系统版本为CentOS 7 使⽤ MySQ…

python数据分析——datetime数据类型2

参考资料:活用pandas库 # 导入pandas库 import pandas as pd # 加载数据集 teslapd.read_csv(r"...\data\tesla_stock_yahoo.csv") # 查看数据 print(tesla.head()) 1、基于日期取数据子集 # 将Date数据列转换为datetime类型 tesla[Date]pd.to_datetime…

学习笔记——网络参考模型——TCP/IP模型(传输层)

四、TCP/IP模型-传输层 一、TCP 1、TCP定义 TCP(Transmission Control Protocol,传输控制协议)∶为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。 连接:正式发送数据之前,提前建立好一种虚拟的&…

ES6-03-模版字符串、对象的简化写法

一、模版字符串 1-1、声明 反引号。 1-2、特性 1、字符串内容可以直接换行 得用号连接 2、变量拼接 现在: 二、对象的简化写法 ES6允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。 let name milk;let chage function(){con…

脚本实现登陆滑块

脚本实现登陆滑块 仅供学习参考,简单操作 你知道吗,滑动验证码居然是为了验证人类比机器人蠢而设计的。 你以为自己快速、准确地滑动拼图、对齐图案,才被允许通过,系统还说你超越了99%的用户,夸你“比闪电还快”&am…

STM32_SPI

1、SPI简介 1.1 什么是SPI SPI,即Serial Peripheral Interface,串行外设接口。SPI是一种高速的、全双工、同步的串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,…

FLINK-窗口算子

参考资料 官方文档- WindowFlink中的时间和窗口之窗口 窗口 在流处理中,我们往往需要面对的是连续不断、无休无止的无界流,不可能等到所有所有数据都到齐了才开始处理。所以聚合计算其实只能针对当前已有的数据——之后再有数据到来,就需要继…

chat4-Server端保存聊天消息到mysql

本文档描述了Server端接收到Client的消息并转发给所有客户端或私发给某个客户端 同时将聊天消息保存到mysql 服务端为当前客户端创建一个线程,此线程接收当前客户端的消息并转发给所有客户端或私发给某个客户端同时将聊天消息保存到mysql 本文档主要总结了将聊天…

JavaWeb_SpringBootWeb基础

先通过一个小练习简单了解以下SpringBootWeb。 小练习: 需求:使用SpringBoot开发一个Web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~"。 步骤: 1.创建SpringBoot项目,勾选We…

epoll模型下的简易版code

epoll模型下的简易版code c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/epoll.h> #include <fcntl.h>#define MAX_EVENTS 10 #define NUM_DESCRIPTORS 5 // 模拟多个文件描述符// …

工具类解决事务和过滤器解决事务

事务的四大特性ACID 原子性&#xff1a;强调事务的不可分割.多条语句要么都成功&#xff0c;要么都失败。 一致性&#xff1a;强调的是事务的执行的前后&#xff0c;数据要保持一致 隔离性&#xff1a;并发访问数据库时,一个事务的执行不应该受到其他事务的干扰. 持久性&#…

测试:ollama加载羊驼版本llama-3中文大模型

找了一个晚上各种模型&#xff0c;像极了当初找各种操作系统的镜像&#xff0c;雨林木风&#xff0c;深蓝、老毛桃…… 主要是官方的默认7B版本回答好多英文&#xff0c;而且回复的很慢&#xff0c;所以我是在ollama上搜索"chinese"找到了这个羊驼版本的&#xff0c…

crossover软件是干什么的 crossover软件安装使用教程 crossover软件如何使用

CrossOver 以其出色的跨平台兼容性&#xff0c;让用户在Mac设备上轻松运行各种Windows软件&#xff0c;无需复杂的设置或额外的配置&#xff0c;支持多种语言&#xff0c;满足不同国家和地区用户的需求。 CrossOver 软件是干嘛的 使用CrossOver 不必购买Windows 授权&#xf…