【大模型】LLaMA: Open and Efficient Foundation Language Models

链接:https://arxiv.org/pdf/2302.13971
论文:LLaMA: Open and Efficient Foundation Language Models

Introduction

  1. 规模和效果
    7B to 65B,LLaMA-13B 超过 GPT-3 (175B)
  2. Motivation
    如何最好地缩放特定训练计算预算的数据集和模型大小,并不是模型参数越大越好,给定一个目标级别的性能,首选模型不是训练最快的而是推理最快的

Approach

  1. 预训练数据
    表中数据的混合:
    在这里插入图片描述
  • CommonCrawl数据:对数据进行重复数据删除,使用 fastText 线性分类器执行语言识别以删除非英语页面并使用 ngram 语言模型过滤低质量的内容。
  • C4:发现使用不同的预处理 CommonCrawl 数据集可以提高性能。对于质量使用启发式方法,比如标点符号和单词句子数量
  • Github:根据字母数字字符的线长或比例过滤低质量的文件,并删除带有正则表达式的样板,例如标题;在文件级别对结果数据集进行重复数据删除
  • Wikipedia:20种语言,删除超链接、评论和其他格式样板。
  • Gutenberg and Books3:两个书籍数据,书籍级别执行重复数据删除,删除内容重叠超过 90% 的书籍。
  • ArXiv:科学数据,在第一部分和书目之前删除了所有内容,删除了评论、tex 文件、以及用户编写的内联扩展定义和宏,以增加论文之间的一致性。
  • Stack Exchange:涵盖各种领域的高质量问题和答案网站,范围从计算机科学到化学,从 28 个最大的网站保留数据,从文本中删除 HTML 标签并按分数对答案进行排序
  • Tokenizer:BPE,将所有数字拆分为单个数字,并回退到字节以分解未知的 UTF-8 字符。共计1.4T tokens。
  • 训练集使用:除了 Wikipedia 和 Books 域之外,每个token在训练期间仅使用一次,执行大约两个 epoch。
  1. 结构
  • Pre-normalization(GPT-3):提高训练稳定性(后归一化是针对输出,前归一化是在每个sub-layer的输入),RMSNorm「对于 Post-LN 方式,Layer Norm 放置在 Self-Attn sub layer 和 FFN sub layer 的 output 上,实证发现会导致 output 上的梯度过大,训练时不稳定,loss 不能稳定下降;Pre-LN 方式下,梯度值则比较稳定」
    在这里插入图片描述

  • SwiGLU activation function(PaLM)
    原始的 Transformer 中 FFN layer 使用 ReLU 激活函数,如下:
    在这里插入图片描述
    对 FFN 的实现方式进行改进,可以提升 Transformer 在语言模型上的表现,主要思路是借鉴 Gated Linear Units (GLU) 的做法,并将 GLU 中的 sigmoid 激活函数更换为 Swish 激活函数。原始 GLU 的形式:
    在这里插入图片描述
    将其中的 sigmoid 激活函数σ更改为Swishβ​ 激活函数 (f(x)=x⋅sigmoid(β⋅x)),则有:
    在这里插入图片描述
    FFN 可使用 SwiGLU 替换为 (此处省略了 Bias 项):
    在这里插入图片描述

  • Rotary Embeddings [GPTNeo]:rotary positional embeddings (RoPE)
    Rope和相对位置编码相比油更好的外推性(外推性是指大模型在训练时和预测时的输入长度不一致,导致模型的泛化能力下降的问题)
    对于 token 序列中的每个词嵌入向量,首先计算其对应的 query 和 key 向量,然后对每个 token 位置都计算对应的旋转位置编码,接着对每个 token 位置的 query 和 key 向量的元素按照 两两一组 应用旋转变换,最后再计算 query 和 key 之间的内积得到 self-attention 的计算结果。
    在这里插入图片描述

  1. 优化器
    AdamW,β1 = 0.9, β2 = 0.95,cosine learning rate schedule,weight decay of 0.1 and gradient clipping of 1.0
  2. 高效实现
  • 使用因果多头注意力的有效实现来减少内存使用和运行时间,xformers library;不存储注意力权重,也不加算被mask的key/query的分数【Causal Multi-Head Attention:由于是解码器,为了保持 Left-to-Right 自回归特点而 Mask 掉的那些位置,不计算 Attention weights.】
  • 减少了在后向传递期间重新计算的激活量
  • 使用模型和序列并行性来减少模型的内存使用
  • 重叠网络上的激活和 GPU 之间的通信(由于 all_reduce 操作)
  • 训练 65B 模型,2048个80GB A100 ,380 个token/s/GPU。 1.4T token的数据集训练 21 天

Results

包括zero-shot 和 few-shot 任务,20个benchmark

  1. Common Sense Reasoning
    在这里插入图片描述
  2. 闭卷问答
    在这里插入图片描述
    在这里插入图片描述
    模型推理可以在单个v100运行
  3. 阅读理解
    在这里插入图片描述
  4. 数学推理
    Minerva 是一系列 PaLM 模型,在从 ArXiv 和 Math Web Page 中提取的 38.5B 标记上进行微调,而 PaLM 或 LLAMA 都没有在数学数据上进行微调
    在这里插入图片描述
    maj1@k 表示我们为每个问题生成 k 个样本并执行多数投票的评估
  5. 代码生成
    在这里插入图片描述
  6. 大规模多任务语言理解

在这里插入图片描述
预训练数据中使用了有限数量的书籍和学术论文

  1. 训练期间性能的演变
    在这里插入图片描述
    在这里插入图片描述

指令微调

非常少量的微调提高了 MLU 的性能,进一步提高了模型遵循指令的能力
在这里插入图片描述

偏见、有毒性和错误信息

大型语言模型已被证明可以重现和放大训练数据中存在的偏差

  1. RealToxicityPrompts基准
    RealToxicityPrompts 由模型必须完成的大约 100k 个提示组成;然后通过向 PerspectiveAPI 3 请求自动评估毒性分数(分数越高,有毒越多)
    在这里插入图片描述

  2. CrowS-Pairs
    该数据集允许测量 9 个类别中的偏见:性别、宗教、种族/颜色、性取向、年龄、国籍、残疾、身体外观和社会经济地位
    在这里插入图片描述
    分数越高Bias越大

  3. WinoGender(性别偏见)

在这里插入图片描述
4. TruthfulQA
该基准可以评估模型生成错误信息或虚假声明的风险
在这里插入图片描述
与 GPT-3 相比,LLaMA在这两个类别中得分都更高,但正确答案的比率仍然很低

总结

贡献点一:“以少胜多”

  • LLaMA-13B outperforms GPT-3-175B on most benchmarks, despite being 10× smaller;
  • LLaMA-65B is competitive with PaLM-540B;
    贡献点二:open-sourcing
  • 训练数据全都 publicly available;
  • 参数公开;

Toread:Chinchilla and PaLM

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

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

相关文章

2024 RISC-V中国峰会 安全相关议题汇总

安全之安全(security)博客目录导读 第四届 RISC-V 中国峰会(RISC-V Summit China 2024)于8月21日至23日在杭州成功举办。此次峰会汇聚了 RISC-V 国际基金会、百余家重点企业及研究机构,约3000人线下参与,并在19日至25日间举办了超过20场同期活动,与全球开发者共同…

Pyhon基础数据结构(列表)【蓝桥杯】

a [1,2,3,4,5] a.reverse() print("a ",a) a.reverse() print("a ",a)# 列表 列表(list)有由一系列按照特定顺序排序的元素组成 列表是有顺序的,访问任何元素需要通过“下标访问” 所谓“下标”就是指元素在列表从左…

【Visual Studio系列教程】如何在 VS 上编程?

上一篇博客中,我们介绍了《什么是 Visual Studio?》。本文,我们来看第2篇《如何在 VS 上编程?》。阅读本文大约10 分钟。我们会向文件中添加代码,了解 Visual Studio 编写、导航和了解代码的简便方法。 本文假定&…

MySQL更换瀚高语法更换

MySQL更换瀚高语法更换 一、前言二、语句 一、前言 水一篇,mysql更换瀚高之后,一些需要更换的语法介绍 > 二、语句 MySQL瀚高MySQL用法瀚高用法说明ifnull(x,y)coalesce(x,y)相同相同用于检查两个表达式并返回第一个非空表达式。如果第一个表达式不是 NULL&…

论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)

一.基本信息 论文名称:Intrusion detection systems using longshort‑term memory (LSTM) 中文翻译:基于长短期记忆(LSTM)的入侵检测系统 DOI:10.1186/s40537-021-00448-4 作者:FatimaEzzahra Laghrissi1* , Samira Douzi2*, Kha…

大数据挖掘期末复习

大数据挖掘 数据挖掘 数据挖掘定义 技术层面: 数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中、人们事先不知道的、但又潜在有用的信息的过程。 数据准备环节 数据选择 质量分析 数据预处理 数据仓库 …

等精度频率计的设计

目录 主控电路设计 频率测量与计算电路设计 顶层电路设计 功能扩展及应用 频率测量的三种方法 等精度频率计通过控制闸门信号与被测信号同步,消除了直接测频法中的计数误差,因而在被测信号频率范围内测量精度基本上是恒定的。 本节以设计能够测量信号…

Matlab使用深度网络设计器为迁移学习准备网络

迁移学习通过对预训练网络进行微调,使深度学习模型能在少量数据下快速适应新任务,类似于“举一反三”,而不需要从头训练。本文使用matlab自带的深度网络设计器,可以便捷地修改预训练网络进行迁移学习,通过对预训练网络…

基于yolov8、yolov5的电塔缺陷检测识别系统(含UI界面、训练好的模型、Python代码、数据集)

摘要:电塔缺陷检测在电力设备巡检、运行维护和故障预防中起着至关重要的作用,不仅能帮助相关部门实时监测电塔运行状态,还为智能化检测系统提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的电塔缺陷检测模型&#xf…

代理商培训新策略:内部知识库的高效运用

在竞争激烈的市场环境中,代理商作为企业与终端消费者之间的关键纽带,其专业能力和服务质量直接影响着企业的市场表现和品牌形象。因此,如何对代理商进行高效、系统的培训,以提升其业务能力和服务水平,成为企业亟需解决…

uniapp 相关的swiper的一些注意事项

先推荐一个一个对标pc端swiper的uniapp版本 zebra-swiper 缺点是自定义分页器不是很好处理 不知道怎么弄 优点:可以进行高度自适应 &#xff08;这个uniapp原生swiper没有 只能动态修改 采用js 或者只有几种固定高度时采用变量修改&#xff09; <swiperref"lifeMiddle…

ARM中ZI-data段和RW-data段

ARM中ZI-data段和RW-data段 1、只定义全局变量&#xff0c;不使用&#xff0c;不占用内存空间2、 定义并初始化全局变量为0 占用ZI-Data区域3、定义并初始化全局变量非0 占用RW-Data区域4、增加的是一个int8的数据为什么&#xff0c;size增加不是15、定义的全局变量为0&#xf…

jmeter--CSV数据文件设置--请求体设置变量

目录 一、示例 1、准备组织列表的TXT文件&#xff0c;如下&#xff1a; 2、添加 CSV数据文件设置 &#xff0c;如下&#xff1a; 3、接口请求体设置变量&#xff0c;如下&#xff1a; 二、CSV数据文件设置 1、CSV Data Set Config 配置选项说明 2、示例 CSV 文件内容 3、…

golang实现TCP服务器与客户端的断线自动重连功能

1.服务端 2.客户端 生成服务端口程序: 生成客户端程序: 测试断线重连: 初始连接成功

ssm148基于Spring MVC框架的在线电影评价系统设计与实现+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;在线电影评价系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本在线电影评价系…

DAY1 网络编程(TCP客户端服务器)

作业&#xff1a; TCP客户端服务器。 server服务器代码&#xff1a; #include <myhead.h> #define IP "192.168.110.52" #define PORT 8886 #define BACKLOG 20 int main(int argc, const char *argv[]) {int oldfdsocket(AF_INET,SOCK_STREAM,0);//IPV4通信…

基于arduino 用ESP8266获取实时MAX30102 血氧数据动态曲线显示在网页上

基于arduino 用ESP8266获取实时MAX30102 血氧数据动态曲线显示在网页上 原理&#xff1a; ESP8266获取MAX30102 血氧数据&#xff08;R,IR,G的值&#xff09;发送到路由器局域网内&#xff0c;局域网内的手机电脑&#xff0c;访问ESP的ip地址&#xff0c;获取实时的血氧数据动…

vue3:scss引用

原文查看&#xff1a;https://mp.weixin.qq.com/s?__bizMzg3NTAzMzAxNA&mid2247484356&idx2&sn44b127cd394e217b9e3c4eccafdc0aa9&chksmcec6fb1df9b1720b7bd0ca0b321bf8a995fc8cba233deb703512560cbe451cfb1f05cdf129f6&token1776233257&langzh_CN#rd…

SrpingBoot基础

SpringBoot基本框架中重要常用的包讲解: .idea包和.mvn包框架生成不经常用 src包下主要存放前后端代码: main包下的java包存放的是后端java代码主要负责数据处理 resource包下存放的是配置资源和前端页面,其中static中存放的是前端html网页一般存放静 态资源,templates包…

Nacos实现IP动态黑白名单过滤

一些恶意用户&#xff08;可能是黑客、爬虫、DDoS 攻击者&#xff09;可能频繁请求服务器资源&#xff0c;导致资源占用过高。因此我们需要一定的手段实时阻止可疑或恶意的用户&#xff0c;减少攻击风险。 本次练习使用到的是Nacos配合布隆过滤器实现动态IP黑白名单过滤 文章…