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

文献阅读:LIMA: Less Is More for Alignment

  • 文献阅读:LIMA: Less Is More for Alignment
    • 1. 内容简介
    • 2. 实验设计
      • 1. 整体实验设计
      • 2. 数据准备
      • 3. 模型准备
      • 4. metrics设计
    • 3. 实验结果
      • 1. 基础实验
      • 2. 消解实验
      • 3. 多轮对话
    • 4. 结论 & 思考
  • 文献链接:https://arxiv.org/abs/2305.11206

1. 内容简介

这篇文章是Meta在今年5月发的一篇文章,算是对LLM进行的一个黑盒分析吧。核心来说,这篇文章就是想要探究一下为什么LLM能够拥有如此强大的能力。

众所周知,自打从BERT开始,NLP大模型的范式就是大语料预训练加小数据集finetune。虽然GPT3短暂的抛弃了finetune而倡导直接的zero-shot learning,但是从FLAN开始,后期的InstructGPT,ChatGPT以及现今还没有公开技术细节的GPT4,无一不是走的两阶段训练:第一阶段进行大数据上的预训练,第二阶段做instruct learning或者RLHF。

但是,具体到两个阶段具体都产生了多大的贡献,事实上还算是一个黑盒,尽管直觉上我们都知道,真正产生核心作用的必然是大数据的预训练过程,不过后续的finetune过程到底可以产生多大的影响却不是很确定,文中就是对这个点进行了细致地考察,然后初步得到结果如下:

  • LLM的核心还是在于预训练,后续只需要用少量的高质量标注数据进行LLM的finetune就能够获得堪比SOTA的模型效果。

下面,我们来具体看一下文章的细节。

2. 实验设计

1. 整体实验设计

首先,我们来看一下文中的实验整体设计。

由于文中要考察的是finetune对模型整体效果的影响,因此文中整体的实验设计思路就是减小finetune数据集,用一个精选的小数据集进行模型的finetune,即文中的LIMA模型,然后和现有的一些常用的大模型进行效果比较,检查这个方法训练得到的模型能否大幅提升模型的效果,以及能够抗衡现有的常见大模型。

2. 数据准备

因此,这里对于finetune使用的数据的质量的要求就很高。文中也是用了一个章节来介绍数据的构造方式。

首先,我们给出文中的总的finetune数据分布如下:

在这里插入图片描述

可以看到:

  • 文中的finetune主要使用了1000条数据
  • 其中,这一千条数据当中,有200条是人工写作的,剩下的800条来自于网上的高质量数据集中的高分数据。

3. 模型准备

然后,关于模型的准备方面,文中主要是使用Meta自己的LLaMa 65B模型然后进行finetune。具体就是使用上述提到的1000条数据进行15个epoch的finetune。

而作为对照模型,文中主要使用了如下几个模型作为对照组:

  1. Alpaca 65B
  2. Davinci003
  3. Bard
  4. Claude
  5. GPT4

4. metrics设计

最后,关于实验的metrics设计方面,文中其实给的比较简单,基本就是300个样本交给标注员进行side by side比较。

除此之外,考虑到人工标注的不稳定性,文中还使用GPT4来进行side by side比较判断,从而增加结论的可靠性。

3. 实验结果

下面,我们来看一下文中的具体实验结果。

1. 基础实验

我们首先给出基础的实验结果如下:

在这里插入图片描述

可以看到:

  • LIMA模型击败了Alpaca 65B以及Davinci003模型
  • 虽然LIMA模型没有击败BARD模型,但是有58%(人工标注)和53%(GPT4标注)的概率可以生成不差于BARD模型的结果
  • 模型效果逊于Claude模型以及GPT4模型

而除了考察LIMA模型和其他模型的比较之外,文中还考察了一下LIMA自身回答的好坏,抽样50个样本之后,人工分析其效果如下:

在这里插入图片描述

可以看到:

  • 只有12%的样本没有通过测试,而获得优秀评价的样本占比达到了50%。

最后,关于safety问题,LIMA通过了80%的safety测试,但是依然会出现差错,尤其当文本描述并不直接的时候。

下面,我们给出一些LIMA的具体case如下:

在这里插入图片描述

2. 消解实验

然后,文中还做了一些消解实验,研究了一下LIMA为何使用如此小量的数据就能获得如此好的效果。

具体而言,文中做了下面三个维度的消解实验:

  1. 标注数据的prompt的diversity
  2. 标注数据的质量
  3. 标注数据的数量

给出文中的实验结果如下:

在这里插入图片描述

可以看到:

  • prompt的diversity以及数据本身的质量会显著影响模型的效果;
  • 相对的,标注数据的数量方面却没有表现出明显的变化,从2k到32k的数据,模型效果都相差无几。

3. 多轮对话

最后,文中还考察了多轮对话当中LIMA的效果。

由于前期的实验当中并没有涉及多轮对话的训练语料,所以这里新增了30条多轮对话的数据进行模型训练,然后考察finetune前后在10个测试集上的测试结果如下:

在这里插入图片描述

可以看到:

  • 经过少量多轮对话进行finetune之后,模型在多轮对话上的表现明显提升。

下面是文中给出的一个具体的case展示:

在这里插入图片描述

4. 结论 & 思考

综上,我们可以看到:

  • 对于LLM而言,其所有的知识基本上都是在预训练阶段就已经完成了,finetune阶段的作用更多的是导出LLM在特定方向上的能力,而非是增加其知识。
  • 因此,对于LLM的finetune而言,数据质量的影响远高于数据量的影响,少量高质量的数据就足以令模型在特定领域发挥出足够优秀的效果。
  • 不过,数据量少的代价也就是效果的不稳定,这一点在文中的讨论部分也有提及,少量数据虽然可以优化对应任务上的效果,但是会弱化模型的泛化能力。

Anyway,这些讨论的前提都是LLM可以载入并且进行finetune,这一点可能就劝退大部分人了,因此这篇文章可能也就是看看了,围观一下大佬们的实验结论就是了……

相关文章:

文献阅读:LIMA: Less Is More for Alignment

文献阅读:LIMA: Less Is More for Alignment 1. 内容简介2. 实验设计 1. 整体实验设计2. 数据准备3. 模型准备4. metrics设计 3. 实验结果 1. 基础实验2. 消解实验3. 多轮对话 4. 结论 & 思考 文献链接:https://arxiv.org/abs/2305.11206 1. 内容简…...

机器学习第十四课--神经网络

总结起来,对于深度学习的发展跟以下几点是离不开的: 大量的数据(大数据)计算资源(如GPU)训练方法(如预训练) 很多时候,我们也可以认为真正让深度学习爆发起来的是数据和算力,这并不是没道理的。 由于神经网络是深度学习的基础,学…...

React(react18)中组件通信04——redux入门

React(react18)中组件通信04——redux入门 1. 前言1.1 React中组件通信的其他方式1.2 介绍redux1.2.1 参考官网1.2.2 redux原理图1.2.3 redux基础介绍1.2.3.1 action1.2.3.2 store1.2.3.3 reducer 1.3 安装redux 2. redux入门例子3. redux入门例子——优…...

最新AI创作系统+ChatGPT网站源码+支持GPT4.0+支持ai绘画+支持国内全AI模型

一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统?小编这里写一个详细图文教程吧&#x…...

react+umi项目中引入antd组件报错:“Button”不能用作 JSX 组件解决方案

具体报错信息 “Button”不能用作 JSX 组件。 Its type ‘(props: IProps) > React.ReactElement’ is not a valid JSX element type. 不能将类型“(props: IProps) > React.ReactElement”分配给类型“(props: any, deprecatedLegacyContext?: any) > ReactNode”。…...

常用算法模板

目录 快读、快输 快读、快输 #include <cstdio> #define Re register int #define LD double// 读整数 inline void in(Re &x) {int f 0; x 0; char c getchar();while (c < 0 || c > 9) f | c -, c getchar();while (c > 0 && c < 9) x …...

最全跨境独立站建站详细步骤解析

对于跨境电商卖家来说&#xff0c;无论是规避“鸡蛋放在同一个篮子里”的风险&#xff0c;还是追求更多的销售额和利润&#xff0c;多平台、多站点的布局都是其至关重要的战略。加之市场的变化带来了新的发展机遇&#xff0c;这也使得如今很多出海企业都在抢占独立站新风口。然…...

提升群辉AudioStation音乐体验,实现公网音乐播放

文章目录 本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是本教程使用环境&#xff1a;1 群晖系统安装audiostation套件2 下载移动端app3 内网穿透&#xff0c;映射至公网 很多老铁想在上班路上听点喜欢的歌或者相声解解闷儿&#xff0c;于是打开手…...

虹科分享 | 谷歌Vertex AI平台使用Redis搭建大语言模型

文章来源&#xff1a;虹科云科技 点此阅读原文 基础模型和高性能数据层这两个基本组件始终是创建高效、可扩展语言模型应用的关键&#xff0c;利用Redis搭建大语言模型&#xff0c;能够实现高效可扩展的语义搜索、检索增强生成、LLM 缓存机制、LLM记忆和持久化。有Redis加持的大…...

VS Code 代码跳转到定义(.js 和 .vue文件跳转)

vscode 代码跳转到定义&#xff08;.js 和 .vue文件跳转&#xff09; 在日常的开发工作中&#xff0c;我们经常需要跳转到方法或变量的定义处&#xff0c;以便更好地理解和修改代码。VS Code 是目前比较流行的开发工具&#xff0c;然而它默认情况下并不支持这个功能&#xff0c…...

华为云云耀云服务器L实例评测 | Docker 部署 Reids容器

文章目录 一、使用Docker部署的好处二、Docker 与 Kubernetes 对比三、云耀云服务器L实例 Docker 部署 Redis四、可视化工具连接Redis⛵小结 一、使用Docker部署的好处 Docker的好处在于&#xff1a;在不同实例上运行相同的容器 Docker的五大优点&#xff1a; 持续部署与测试…...

聚观早报 | 杭州亚运开幕科技感拉满;腾讯官宣启动「青云计划」

【聚观365】9月25日消息 杭州亚运开幕科技感拉满 腾讯官宣启动「青云计划」 FF任命新全球CEO 比亚迪夺得多国销冠 iPhone 15/15 Pro销售低于预期 杭州亚运开幕科技感拉满 杭州第19届亚洲运动会开幕式23日晚在杭州奥体中心主体育馆举行&#xff0c;这届开幕式可谓科技感拉…...

Linux Gnome桌面无法打开终端Terminal

文章目录 前言排障解决方式一解决方式二 前言 由于不知名的原因&#xff0c;导致gonme桌面里打开terminal一直转圈&#xff0c;无法打开。 这里我的故障是已知的&#xff0c;我是因为要把英文改为中文。但是界面依旧是英文&#xff0c;同时导致终端无法打开。 此方式centos d…...

MySQL学习笔记15

1、内连接查询&#xff08;重点&#xff09;&#xff1a; 基本语法&#xff1a; select 数据表1.字段列表,数据表2.字段列表 from 数据表1 inner join 数据表2 on 连接条件; 案例&#xff1a;获取产品表中每个产品的分类信息&#xff1a; mysql> select * from tb_goods …...

6、SpringBoot_项目的打包与运行

七、SpringBoot项目的打包与运行 1.目前项目怎么运行的 通过浏览器访问idea 将jar部署到服务器 2.maven 打包项目 命令 mvn package使用命令后会得到如下的jar 3.程序运行 命令 java -jar 项目.jar启动如下 4.springboot打包需要插件 插件 <plugin><group…...

图像语义分割概述

图像语义分割概述 一、图像语义分割概念 图像语义分割&#xff08;Image Semantic Segmentation&#xff09;是一项计算机视觉任务&#xff0c;其目标是将输入的图像分割成多个区域&#xff0c;并为每个像素分配一个语义类别标签&#xff0c;以表示该像素属于图像中的哪个物体…...

ViT细节与代码解读

最近看到两篇解读ViT很好的文章&#xff0c;备忘记录一下&#xff1a; 先理解细节 1&#xff1a;再读VIT&#xff0c;还有多少细节是你不知道的 再理解代码 1&#xff1a;ViT源码阅读-PyTorch - 知乎...

Linux中软链接与硬链接的作用、区别、创建、删除

1、软链接与硬链接的作用 (1)软链接 软链接是Linux中常用的命令,它的功能是某一文件在另外一个位置建立一个同步的链接,相当于C语言中的指针,建立的链接直接指向源文件所在的地址,软链接不会另外占用资源,当同一文件需要在多个位置被用到的时候,就会使用到软连接。 …...

第一章:最新版零基础学习 PYTHON 教程(第十四节 - Python 条件和循环语句–Python 中的 with 语句)

在Python中,with语句用于异常处理,使代码更简洁、更具可读性。它简化了文件流等公共资源的管理。观察以下代码示例,了解使用 with 语句如何使代码更简洁。 Python3 # 文件处理# 1) 不使用with语句 file = open(文件路径, w) # 打开文件以进行写操作 file.write(你好,世界…...

安科瑞AMC16-DETT铁塔jizhan直流电能计量模块,直流计量用

安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 9月20日&#xff0c;在杭州亚运会火炬传递的现场&#xff0c;不少人通过网络与亲友连线&#xff0c;共同见证火炬传递的历史时刻。上午6时&#xff0c;杭州铁塔的一线通信保障人员共27人就已经在本次火炬传递收官点位奥体中心西广场附近&a…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...