当前位置: 首页 > 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…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...