盘点!Instruction Tuning 时代的大模型(下)

news2024/11/26 21:35:38

format,png

作者 | Kevin吴嘉文  

整理 | NewBeeNLP 公众号 

https://zhuanlan.zhihu.com/p/617302168

Alpaca,ChatGLM 6B 等模型的效果可以接受,下文总结部分笔记,为训练自定义小型化(7B)模型提供点知识储备。

之前我们分享了LaMDA, Muppet, FLAN, T0, FLAN-PLAM, FLAN-T5等,见:盘点!Instruction Tuning 时代的大模型。今天继续,包括模型论文 LLAMA, PaLM, BLOOM, BLOOMZ-mT

LLAMA

论文: LLaMA: Open and Efficient Foundation Language Models

论文的重点在于预训练,虽然也尝试了使用 instruction tuning 进行模型测试,但介绍部分并不多。

数据:约 1.4 T token 预训练,多语言但就是没有中文;

模型:

  • 经典的大模型 Pre-normalization,采用 RMSNorm normalizing。使用 SwiGLU 激活函数,使用 ROPE。

  • 模型规模有:7B, 13B, 33B, 65B

训练:

  • 预训练:2048 A100 GPU 21 天

4ff7d31638d88d228c8bbe845b67b732.jpeg

结果:

LLAMA 对标 GPT-3, PALM, OPT 等预训练模型。根据论文中各种指标表格,直观上来看,在 0-shot 以及 few-shot 效果上, 13B 的 LLAMA 与 GPT-3 可比,7B 的 LLAMA 不会落后 GPT-3 太多。

PaLM

论文: Scaling Language Modeling with Pathways

论文主要以研究预训练模型为主,但部分 instruction tuning 模型会与 PaLM 作比较,因此记录一些关注点:

模型架构上:

  • SwiGLU 激活函数,采用 RoPE,共享 input, output embedding,所有 layer 不用 biases,更改 Transformer Block 中 Layernorm 的并行方式,使用 multi-query attention 取代 multi_head attention(仅将 Q 映射到 [k, h],K,V 保持 [1, h]

训练

  • 预训练 780 billion tokens

  • 针对训练过程中,loss 爆炸的情况,采用回滚的方式:在loss 爆炸点前 100 steps 开始,跳过 200 到 500 个 data batches,这样使得训练更加稳定

结果:总体看来 540 B 的 PaLM 在大部分任务上式新 SOTA

a87ce762dee30cc43cb094b4790e9d34.jpeg

同时 PaLM 62B 的效果与 GPT-3 相近。

3ee97e2ce99d287ff7eb28e28e6269d8.jpeg

Bloom

论文: BLOOM: A 176B-Parameter Open-Access Multilingual Language Model

Bloom 偏向于研究预训练的文章,文章将较大比重放在了多语言能力的实验上,文中的 Bloom 和 BLOOMz 两个模型也都开源。

模型: Vocab size 比 LLAMA 等其他模型大很多。位置编码采用了 ALiBi Positional Embeddings。

ef6db620e8a63e39bf927b4e426f2d25.jpeg

数据:预训练:498 个 huggingface 数据集,1.6 TB 文本(涵盖 46 种语言和 13中编程语言);BLOOMz 在多语言多任务数据集上额外进行了训练。

效果:

superGLUE 的评分图:

3271bd5813032b0b35bb605aec45b415.jpeg

文中还有其他评分任务,总体看来, BLOOM 效果好于 OPT。 不同规格的 BLOOM 效果差距还是很大的。

909b7c5a97a3eaebf45ef1a2b1395430.jpeg

Bloomz/mT0

论文: Crosslingual Generalization through Multitask Finetuning

在 BLOOM 和 mT5 上实验了 Multitask prompted finetuning 的效果。

模型:实验的都是多语言模型,文中使用了 BLOOM 和 mT5

数据:仍然采用公开数据集

e886670359aaf93cfd6e1ad438fb34fb.jpeg

prompt finetuning 采用的 prompt 也被分成三种形式进行测试:

d26e3499656fd026736b7deed3ae1695.jpeg

结果:

对照上图文中对比了三种模型的结果:BLOOMZ-P3 (prompt数据为 P3 数据),BLOOMZ(prompt数据为 xP3 数据),BLOOMZ-MT(prompt数据为 xP3mt 数据)。

c02139a725b32fafc5f252ce75a31d96.jpeg

论文中没有找到直接与 GPT 对比的实验,但根据下面的 code 续写成绩来看,BLOOM系列和 GPT 差距应该不小。

74d2bf44ff2715ba444aa72352c1ecd7.jpeg

SELF-INSTRUCT

论文: Aligning Language Model with Self Generated Instructions

fce478e09a49c55a72290a3c14c7e8ae.jpeg
self-instrcut 生成数据流程图

大致数据生成流程:

8a972817e717d3aa223b141feb29767e.png

数据:82k sample,52k instruction

论文中基于 ROUGE-L 进行的结果对比不太公平,毕竟数据集是冲着低 ROUGE-L 去做的。还是参考下图的人工评测结果好点。self-instruct 后 GPT-3 效果能够接近 InstructGPT-001,同时在 self-instruct 数据集上训练的效果会好于在公开数据集上训练的效果:

7b6435ec63449f6b5ec01102aba6a11c.jpeg

Alpaca 中稍微修改了 self-instruct 生成数据的方式。一共使用 52K instruction 即 sample 对 LLAMA 进行训练,花费 3 hours on 8 80GB A100s。

BELLE 基于 BLOOMz-mt 进行了中文微调,根据论文实验的结果看来,想要达到 ALPACA 类似的成绩,可能有点悬。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

format,png

2fca8f8b286b640b690f2081b5c1163c.gif

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

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

相关文章

Spring Boot 整合 分布式搜索引擎 Elastic Search 实现 我附近的、酒店竞排

文章目录 ⛄引言一、我附近的酒店⛅需求分析⚡源码编写 二、酒店竞价排名⌚需求分析⏰修改搜索业务 ✅效果图⛵小结 ⛄引言 本文参考黑马 分布式Elastic search Elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中…

Maven安装与配置(图解)

Maven是一个基于 Java 的项目管理工具,因此最基本的要求是在计算机上安装 JDK。 Maven 对系统要求如下表: JDKJDK 7.0 及以上。内存没有最低要求。磁盘空间Maven 安装本身大约需要 10MB。除此之外,其他磁盘空间将用于本地 Maven 存储库。本地…

【Vue2.0源码学习】虚拟DOM篇-Vue中的DOM-优化更新子节点

1. 前言 在上一篇文章中,我们介绍了当新的VNode与旧的oldVNode都是元素节点并且都包含子节点时,Vue对子节点是 先外层循环newChildren数组,再内层循环oldChildren数组,每循环外层newChildren数组里的一个子节点,就去…

《HelloGitHub》第 86 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …

华为OD机试真题B卷 Java 实现【旋转数组的最小数字】,附详细解题思路

一、题目描述 有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。 二、输入描述 3,4,5,1,2 …

MyBatis缓存和二级缓存整合Redis

MyBatis缓存和二级缓存整合Redis ⼀级缓存缓存验证在⼀个sqlSession中,对user表根据username进⾏两次查询,查看他们发出sql语句的情况同样是对user表进⾏两次查询,只不过两次查询之间进⾏了⼀次update操作。总结 ⼀级缓存原理探究与源码分析 …

安装 Nginx 修改默认端口

用远程工具连接我们上次购买的机器,这里我要介绍一个知识点,博主使用的工具是 MobaXterm,这个工具有一个多操作的功能,在下图的位置可以开启多操作,然后连接你的服务器机子即可: 首先我们将机子里面的依赖源…

【JavaSE】Java基础语法(三十四):实现多线程

文章目录 1. 简单了解多线程2. 并发和并行3. 进程和线程4. 实现多线程方式一:继承Thread类【应用】5. 实现多线程方式二:实现Runnable接口【应用】6. 实现多线程方式三: 实现Callable接口【应用】7. 设置和获取线程名称【应用】8. 线程休眠【应用】9. 线…

[PyTorch][chapter 36][经典卷积神经网络-1 ]

前言: ILSVRC(ImageNet Large Scale Visual Recognition Challenge)是近年来机器视觉领域最受追捧也是最具权威的学术竞赛之一,代表了图像领域的最高水平。 ImageNet数据集是ILSVRC竞赛使用的是数据集,由斯坦福大学李…

多线程屏障CyclicBarrier

文章目录 前言一、CyclicBarrier可以做什么?二、使用步骤1 单参数CyclicBarrier2 多参数 CyclicBarrier3 与CyclicBarrier类似的Exchanger 总结 前言 多线程中的CyclicBarrier,同样也是juc包下的一个工具类; 一、CyclicBarrier可以做什么? CyclicBarri…

C#,码海拾贝(28)——求解“对称正定方程组”的“平方根法”之C#源代码,《C#数值计算算法编程》源代码升级改进版

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…

【译】Google Guava 的 Table 接口介绍

原文&#xff1a;https://www.baeldung.com/guava-table 1. 概述 在本教程中&#xff0c;我们将展示如何使用 Google Guava 的 Table 接口及其多个实现。 Guava 的 Table 是一种集合&#xff0c;表示包含行、列和相关单元格值的表结构&#xff0c;行和列充当有序的键对。 2…

React Native开发速记

文章目录 引子React Native适用场景React基础JSX 组件的定义基础APIFlex弹性布局例子: Flex布局实现多行多列 常用UI组件几个核心钩子函数useState用法useEffect典型用法 和原生模块交互调用原生模块方法 调试其它工具UI框架参考资源 引子 软件开发&#xff0c;移动优先&#…

webAJAX概述.

1.1什么是AJAX. Ajax即AsynchronousJavascript And XML&#xff1a;异步数据回调。 使用Ajax技术网页应用能够快速地将更新呈现在用户界面上&#xff0c;不需要重载&#xff08;刷新&#xff09;整个页面【只刷新局部】&#xff0c;这使得程序能够更快地回应用户的操作。、 1…

使用Node. js输出到命令行

目录 1、使用控制台模块的基本输出 2、清除控制台 3、计数元素 4、复位计数 5、打印堆栈跟踪 6、计算花费的时间 7、stdout和stderr 8、为输出着色 9、创建进度条 1、使用控制台模块的基本输出 Node.js提供了一个console模块&#xff0c;它提供了大量非常有用的与命令…

Qt Quick系列(4)—定位元素

&#x1f680;作者&#xff1a;CAccept &#x1f382;专栏&#xff1a;Qt Quick 文章目录 前言相对布局代码示例示例一示例二示例三示例四示例五示例六 简单"布局器"ColumnRowGridFlow 结语 前言 在Qt Quick中&#xff0c;可以使用以下方式来定位元素&#xff1a;…

需要建立强大的网络响应框架

由于头条新闻充斥着网络攻击&#xff0c;因此企业制定网络响应框架变得前所未有的重要。当今的网络安全形势继续快速发展&#xff0c;黑客行动主义、民族国家支持的网络攻击、勒索软件和其他攻击策略变得更加危险、复杂&#xff0c;组织的防御成本也越来越高。随着企业进行数字…

华为OD机试真题B卷 Java 实现【名字的漂亮度】,附详细解题思路

一、题目描述 给出一个字符串&#xff0c;该字符串仅由小写字母组成&#xff0c;定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。 每个字母都有一个“漂亮度”&#xff0c;范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。字母忽略大小写。 给出多个…

Ex-ChatGPT本地部署+Azure OpenAI接口配置+docker部署服务

Ex-ChatGPT项目分为 Ex-ChatGPT 和 WebChatGPTEnhance 两部分&#xff0c;Ex-ChatGPT启动后是个web服务&#xff0c;通过访问ip端口体验&#xff1b; WebChatGPTEnhance可编译生成一个浏览器插件&#xff0c;Chrome或者Microsoft edge浏览器可以安装该插件&#xff0c;点击该插…

Golang中文件目录操作的实现

目录 文件 文件目录 文件目录操作 读取文件 一、方法一 (file.Read()) 二、方法二 (bufio读取文件) 三、方法三 (ioutil 读取方法) 写入文件 一、方法一 二、方法二 三、方法三 (ioutil写入文件) 复制文件 一、方法一 二、方法二 文件 Golang中&#xff0c;文件是…