Meta AI 重磅推出LIMA!媲美GPT-4、无需RLHF就能对齐!

news2025/1/10 12:32:13

f9a71e2991f92b70bc37b4114ccfaa84.png

深度学习自然语言处理 原创
作者:鸽鸽

昨天Meta AI+CMU这篇文章一出,twitter都炸了!

LIMA,只使用1000个精心挑选的样本微调一个 65B LLaMa,无需RLHF,性能媲美甚至优于GPT-4!

568103039cdb510e0ecb8c5d6177f465.png

论文:LIMA: Less Is More for Alignment
地址:https://arxiv.org/pdf/2305.11206.pdf

天下人苦“对齐”久矣!要让预训练语言模型的响应和特定任务和用户偏好对齐,动辄需要百万示例数据集上的instruction tuning、以及最近从人类反馈中进行的强化学习,才能实现ChatGPT级别的性能。

这篇文章旨在用简单的方法解决复杂的对齐问题,作者提出表面对齐假说(Superficial Alignment Hypothesis),将对齐视为一个简单的过程:学习与用户交互的样式或格式,来展示预训练期间就已经获得的知识和能力!

结果发现,少量高质量样例上的简单微调就足以与当今最先进的技术竞争!这也证明预训练过程的强大威力和重要性,远胜于大规模instruction tuning和强化学习

ba6f583741e9fbb5b1b17c422def3ecd.jpeg

实验设置

数据集来源:这1000个近似真实用户提示和高质量响应的示例中,有750个来自Stack Exchange和wikiHow这样的社区论坛,其余250个则是手动编写。

微调的超参数:使用AdamW进行微调,其中,,权重衰减为0.1。没有热身步骤,初始学习率设置为,并线性地降至训练结束时的。批量大小设为32个示例(更小的模型为64个),长度大于2048 token的文本将被裁剪。与以往的显著不同是在残差连接上应用dropout,从底层的 开始,线性升高到最后一层的 (更小的模型为 )。

基准模型

实验将 LIMA 与五个基准模型进行比较:

(1) Alpaca 65B :将 LLaMa 65B 在 Alpaca 训练集中的 52,000 个样例上进行微调;(2) OpenAI 的 DaVinci003,经过 RLHF 训练的大语言模型;(3) 基于 PaLM 的 谷歌 Bard;(4) Anthropic 的 Claude, 52B 参数,经过从 AI 反馈进行强化学习 (Constitutional AI) 训练;(5) OpenAI 的 GPT-4,经过 RLHF 训练,目前认为最先进的大语言模型。

结果

根据人类偏好的实验结果,LIMA 的表现比 Alpaca 65B 和 DaVinci003 都要更好!尽管Alpaca 65B 的训练数据量比 LIMA 高52倍,而DaVinci003 采用了 RLHF,一种被认为是更优秀的对齐方法。

Bard 情况要好,在 42% 的时间产生了比 LIMA 更好的响应;然而,这也意味着至少58%的时间, LIMA 的表现和 Bard 相当。

最后,虽然 Claude 和 GPT-4 通常比 LIMA 的表现更加出色,但很多情况下,LIMA 确实能产生更好的响应。有些讽刺的是,即使是 GPT-4 也有19% 的时间会认为 LIMA 的输出更好。

3add51ea44124ea8cc2cef640b4124b6.png

我们来欣赏下LLaMa的出色表演。蓝色文本为prompt,左边是与训练集中示例相关的提示,中间是训练集中不存在的提示,右边则是挑战模型拒绝不安全行为。

7ba46ee2f9e30909b0c9990551041324.png

数据质量和多样性更重要

为了证明 LIMA (Less Is More for Alignment)这个少胜于多的观点,作者通过消融实验研究了训练数据的多样性、质量和数量对模型的影响。

结果发现,数据质量对生成质量存在显著影响,使用筛选过的数据集训练的模型与使用未经过滤的数据源训练的模型之间存在0.5分差异。但是,令人惊讶的是,示例数量的加倍并不能改善响应的质量。这表明对齐的 scaling laws 不仅仅取决于数量,而在于保证质量的同时提高提示的多样性

2e37b33996b86c2c9254e1fb1c54a234.png

多轮对话

不过,一个仅在1,000个单轮对话上进行微调的模型能否从事多轮对话(Multi-Turn Dialogue)呢?

在零样本上,LIMA的响应出奇地连贯,并引用了前面对话的信息。但很明显,这个模型正在超出分布范围;在10次交流中有6次,LIMA在3个互动之内未能遵循提示。

为了提高对话能力,作者收集了30个多轮对话链。使用组合的1,030个示例对预训练的LLaMa模型进行微调,得到一个新版本的LIMA,并针对相同的提示进行了10次实时对话。发现加入这30个示例后生成质量显著提升,优质响应比例从45.2%提高到76.1%!

f032ac84f6c6fbbb0a20d3ce6aa36867.png

30个样本的有限监督就能调用模型的多轮对话能力,这也支持了作者提出的表面对齐假说,即:这些能力是在预训练期间学习的。

总结

作者在discussion部分指出了该方法的一系列问题:比如构建数据集示例需要巨大的脑力投入、难以扩展,不如产品级别的模型稳健等~

话虽如此,这篇研究证明了简单方法就有解决复杂对齐问题的潜力。几乎所有大语言模型中的知识都是在预训练期间学习的,教导模型产生高质量输出只需少量但精心的instructional tuning.

简单才是王道!


进NLP群—>加入NLP交流群

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

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

相关文章

游戏洞察丨自来水还是井水,后流量时代的私域挑战

流量生意本质上是买卖用户浏览时间的生意,如果用户增长到顶,那就意味着供给到顶。对比 2021 年,2022 年的游戏出海在谷歌和 Facebook 上投入的广告成本几乎翻了一倍。新晋“渠道王者”TikTok 逐渐走进大家的视野。该现象背后的原因在于&#…

解决幂等问题,只需要记住这个口诀!

△Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 417 篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) 作为开发人员,我们每天都要开发大量的接口,其中包括了读接口和写接口,而对于写接…

将矩阵按指定对角线转化为一个上三角矩阵numpy.triu()方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将矩阵按指定对角线转化为一个上三角矩阵 numpy.triu() 选择题 关于以下代码说法错误的一项是? import numpy as np a np.array([[1,2],[3,4]]) print("【显示】a\n",a) print(&…

应用程序和 API 攻击呈上升趋势

Akamai Technologies 发布了一份新的互联网现状报告,标题为“突破安全漏洞:针对组织的应用程序和 API 攻击的兴起”。 报告显示,亚太地区和日本(APJ)的金融服务业仍然是该地区受攻击最严重的行业,Web 应用…

大模型推理性能优化之KV Cache解读

0. 引言 做大模型性能优化的一定对KV Cache不陌生,那么我们对这个技术了解到什么程度呢?请尝试回答如下问题: KV Cache节省了Self-Attention层中哪部分的计算?KV Cache对MLP层的计算量有影响吗?KV Cache对block间的数据…

知识点滴 - 什么是膳食结构

膳食结构是指膳食中各类食物的数量及其在膳食中所占的比重,由于影响膳食结构的这些因素是在逐渐变化的,所以膳食结构不是一成不变的,人们可以通过均衡调节各类食物所占的比重,充分利用食品中的各种营养,达到膳食平衡&a…

适配器模式:代码接口的神奇转换

一、概要 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口,使得原本由于接⼝不兼容⽽不能⼀起⼯作的那些类可以⼀起⼯作。通俗来讲,就是通过适配器来连接两个不…

Js 如何实现一个类似 chatGPT 打字机效果

在使用chatGPT的时候,会有一个打字机的效果,以下是分别使用原生Js和Vue实现 原生 JS 实现 如下是示例代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Printer 打字机效果</title><style>* {margin: 0;bor…

记录--使用率比较低的10个Web API

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 avaScript中有些API可能使用率比较低&#xff0c;下面我们逐一介绍它们的用法和使用场景。 至于标题&#xff0c;主要是想让你进来看看&#xff0c;兄弟们别打我&#xff01; Blob API Blob API 用于处…

电脑技巧:CopyQ剪切板增强工具介绍(附下载)

目录 1、软件简介 2、主要功能介绍 3、使用说明 4、总结 今天给大家再分享一款剪切板增强工具——CopyQ&#xff0c;感兴趣的朋友可以下载试一试&#xff01; 1、软件简介 CopyQ 是一款开源的、跨平台剪贴板管理工具&#xff0c;支持 Windows、macOS、Linux&#xff0c;可…

项目中遇到的一些问题总结(十)

nacos保护阈值 Nacos 中的保护阈值&#xff08;Protection Threshold&#xff09;是用来保护服务实例的一种机制。当某个服务实例出现故障或异常时&#xff0c;服务注册中心 Nacos 会通过心跳检测等方式将其从服务列表中移除&#xff0c;以避免客户端继续向其发送请求。但是&a…

在Linux中为Simulink添加ROS自定义消息类型

在Linux中为Simulink添加ROS自定义消息类型 基于Matlab/Simulink的ROS自定义消息类型的添加方法 ROS与Simulink联合仿真(三):自定义Message 1、下载 ROS Toolbox Interface for ROS Custom Messages 将 roscustommsg.mlpkginstall 文件放入 MATLAB 工作空间 双击 roscustommsg…

Nature -- 人类首个 “泛基因组”旨在编目人类遗传多样性

在人类基因组项目发布第一个人类基因组草图的20多年后,研究人员发布了人类“泛基因组”草图——这预示着一种新的参考基因组的出现,它能捕获到更多的人类遗传多样性信息。 泛基因组变异图由两个元素组成:序列图&#xff0c;其ode表示定向DNA链&#xff0c;双向边表示连通性关系…

学系统集成项目管理工程师(中项)系列25_计算机网络知识

1. OSI七层协议 1.1. 物理层 1.1.1. RS232、V.35、RJ-45、FDDI 1.2. 数据链路层 1.2.1. 【21上选17】 1.2.2. IEEE802.3/.2、HDLC、PPP、ATM 1.3. 网络层 1.3.1. IP、ICMP、IGMP、IPX、ARP 1.3.2. 路由选择 1.3.2.1. 【20下选17】 1.4. 传输层 1.4.1. TCP、UDP、SPX…

越小越好: Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI

大语言模型 (LLM) 正在席卷整个机器学习世界。得益于其 transformer 架构&#xff0c;LLM 拥有从大量非结构化数据 (如文本、图像、视频或音频) 中学习的不可思议的能力。它们在 多种任务类型 上表现非常出色&#xff0c;无论是文本分类之类的抽取任务 (extractive task) 还是文…

又一批令人惊艳的 AI 工具,诞生了!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 自 ChatGPT 发布以后&#xff0c;AIGC 行业的热度也一直在持续发酵。几个月过去了&#xff0c;对比之前&#xff0c;各类 AI 工具的热度不减反增&#xff0c;各行各业的人都早开始拥抱 AIG…

SAP工具箱 MR22自定义BAPI

点击蓝字 关注我们 一 前言 标准事务代码MR22 通过调整金额影响物料的成本价,前台界面中单个凭证中允许输入多行物料, 但是对应的BAPI函数仅支持输入单行物料 BAPI_MATVAL_DEBIT_CREDIT 正常库存BAPI_SALESORDSTCK_DEBIT_CREDIT 销售订单库存 这种情况 婶可忍叔不可忍 (感谢用户…

Python 闭包装饰器和多任务--闭包,装饰器,进程,线程

1.闭包案例 在函数嵌套的前提下&#xff0c;内部函数使用了外部函数的变量&#xff0c;并且外部函数返回了内部函数&#xff0c;我们把这个使用外部函数变量的内部函数称为闭包. 外层函数: config_name(),外层函数中的变量是 name 内层函数: inner(),inner()使用了外层函数的变…

34从零开始学Java之构造方法都有哪些特性?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的几篇文章中&#xff0c;壹哥给大家介绍了不少关于方法的内容&#xff0c;这些内容是我们日常…

zabbix监控之javasnmp自定义监控

1、客户端开启 java jmxremote 远程监控功能 上传 tomcat 软件包到 /opt 目录中 cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mv apache-tomcat-9.0.16 /usr/local/tomcat #配置 java jmxremote 远程监控功能 vim /usr/local/tomcat/bin/catalina.sh ...... #位置在 cygw…