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

<论文>聊聊初代LLaMA

一、摘要

        本文介绍来自Meta的论文《LLaMA: Open and Efficient Foundation Language Models》,这篇2023年的研究发布了开源的LLaMA系列大模型,轰动一时。

译文:

        我们推出了 LLaMA,一系列参数规模从 70 亿到 650 亿的基础语言模型。我们使用数万亿的标记对模型进行训练,并证明仅使用公开可用的数据集就能训练出最先进的模型,而无需依赖专有和难以获取的数据集。特别是,LLaMA - 13B 在大多数基准测试中优于 GPT - 3(1750 亿参数),而 LLaMA - 65B 与最好的模型 Chinchilla - 70B 和 PaLM - 540B 具有竞争力。我们将所有模型向研究社区开源。

二、核心创新点

        正如论文摘要中说的,仅使用公开可用的数据集就能训练出最先进的大模型,因此作者使用了多个数据集混合进行模型预训练,此外就是一些架构上的小调整。

1、预归一化(Pre-normalization)

        LLaMA系列模型依然是基于Transformer架构所搭建,但为了提高训练的稳定性,作者对每个Transformer子层的输入进行了归一化而不是对输出进行归一化,归一化函数则采用了常用于Transformer架构模型的RMSNorm函数,通过计算输入向量的均方根,对其进行归一化处理。

        首先计算均方根RMS,再进行归一化计算,下式中x为输入向量,d为特征维度:

RMS(x) = \sqrt{\frac{1}{d} \sum_{i=1}^{d}x_{i}^{2}}

\hat{x} = \frac{x}{RMS(x)}

2、SwiGLU激活函数

        在LLaMA中,作者引入SwiGLU激活函数来替代ReLU。SwiGLU(Swish Gated Linear Unit)是一种结合了Swish激活函数和GLU(Gated Linear Unit)的激活函数。GLU引入了两个不同的线性层,其中一个首先经过sigmoid函数,其结果将和另一个线性层的输出进行逐元素相乘作为最终的输出,SwiGLU则将GLU中的sigmoid激活函数替换为Swish激活函数:

SwiGLU(x,W,V,b,c) = Swish(xW+b) \bigotimes (xV+c)

        其中,W、V、b、c都是线性层的参数,而Swish(x) = x \cdot \sigma (\beta x)\sigma是sigmoid函数,\beta则是一个可学习的参数。

3、旋转嵌入(Rotary Embeddings)

        作者还去除了绝对位置嵌入,在网络的每一层都添加旋转位置嵌入(RoPE)。RoPE的核心思想是通过旋转矩阵将位置信息嵌入到Token向量中。具体来说,RoPE将每个Token向量分解为多个二维子空间,每个子空间中的两个分量分别应用旋转操作。对于一个二维子空间的向量\left [ x_{1},x_{2} \right ],通过旋转角度\theta进行编码:

{x_{1}}' = x_{1} \cdot cos(\theta) - x_{2} \cdot sin(\theta)

{x_{2}}' = x_{1} \cdot sin(\theta) - x_{2} \cdot cos(\theta)

其中,旋转角度\theta = position \cdot freq,由Token在序列中的位置和频率共同决定。

4、训练提效

        为了提高模型的训练速度,作者使用了因果多头注意力来减少内存和时间的使用,这种注意力机制通过不存储注意力权重并且不计算由于语言建模任务的因果性质而被Masked的key/query得分来实现。


http://www.kler.cn/a/468189.html

相关文章:

  • Scala_【5】函数式编程
  • 实际开发中,常见pdf|word|excel等文件的预览和下载
  • 容器技术思想 Docker K8S
  • 【C++】P5733 【深基6.例1】自动修正
  • doris:基于 Arrow Flight SQL 的高速数据传输链路
  • 3 抢红包系统
  • Unity3D仿星露谷物语开发13之角色感知道具
  • 【项目开发】C#环境配置及VScode运行C#教程(学生管理系统)
  • 使用qiankun搭建微前端应用及踩坑
  • 高频 SQL 50 题(基础版)_1068. 产品销售分析 I
  • NLP-transformer学习:(8)trainer 使用方法
  • 抖音评论地区分布可视化期末项目
  • 【微服务】【Sentinel】认识Sentinel
  • JODConverter结合LibreOffice如何转换ppt pptx成图片
  • 谷粒商城-高级篇-Sentinel-分布式系统的流量防卫兵
  • Arduino 小白的 DIY 空气质量检测仪(5)- OLED显示模块、按钮模块
  • 微信小程序校园自助点餐系统实战:从设计到实现
  • CSS系列(50)-- View Transitions详解 系列总结
  • 应用Docker快速实现 JMeter + InfluxDB + Grafana 监控方案
  • 虚拟机图像界面打不开了
  • NLP初识
  • leetcode中简单题的算法思想
  • 计算机网络•自顶向下方法:网络安全、RSA算法
  • react报错解决
  • 1、pycharm、python下载与安装
  • 服务器信息整理:用途、操作系统安装日期、设备序列化、IP、MAC地址、BIOS时间、系统