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

news/2024/11/14 14:06:20/

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.ppmy.cn/news/105404.html

相关文章

【观察】浪潮信息:自研液环式真空CDU技术,将被动应对变为主动防御

毫无疑问,在“双碳”战略的大环境下,数据中心走向绿色低碳和可持续发展已成为“不可逆”的大趋势,特别是随着全国一体化大数据中心、新型数据中心等政策文件的出台、“东数西算”工程的正式启动,数据中心的建设规模和数量呈现出快…

我用低代码结合ChatGPT开发,每天多出1小时摸鱼

👉腾小云导读 GPT 出现之后,很多人推测大量的软件都会因为其出现而重写。本文主要是低代码平台与 ChatGPT 结合的一些思考以及实践。期望与各位读者一起搭上 AI 这列快车,为开发提提速~ 👉目录 1 背景 2 Demo 演示 3 思…

权限维持-SSP-DLL 加载

前言 继续学习中,今天是权限维持的东西,大家永远不要忘记初心,要一起奋斗哦! 注:单机环境和域环境都可以使用 复现 一.进程注入lsass.exe 使用mimikatz将伪造的SSP注入内存,这样用户在注销重新登录的时候就…

知识点滴 - POSIX vs SUS vs LSB

SUS扩展了POSIX;LSB扩展了POSIX和SUS,但有一些冲突。 只有经过SUS认证的操作系统才能被称为 "Unix"(因为SUS的所有者Open Group拥有Unix商标);并非所有的Linux发行版都符合LSB,例如Debian和Ubunt…

ThreadLocal精讲

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

如何使用 Megatron-LM 训练语言模型

在 PyTorch 中训练大语言模型不仅仅是写一个训练循环这么简单。我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练。Hugging Face 🤗 Accelerate 的创建是为了支持跨 GPU 和 TPU 的分布式训练,并使其能够非常容易的…

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

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

Transformer升级之路:一种全局长度外推的新思路

©PaperWeekly 原创 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP、神经网络 说到 Transformer 无法处理超长序列的原因,大家的第一反应通常都是 Self Attention 的二次复杂度。但事实上,即便忽略算力限制,常规的 Transformer 也无法处…