<论文>聊聊初代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.mzph.cn/pingmian/66048.shtml

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

相关文章

【bluedroid】A2dp Source播放流程源码分析(4)

接上集分析:【bluedroid】A2dp Source播放流程源码分析(3)-CSDN博客 蓝牙和AUDIO之间的接口 蓝牙和audio之间的通信是通过socket,管理socket中的文件是UIPC,UIPC管理两条socket。 A2DP_CTRL_PATH /data/misc/bluedroid/.a2dp_ctrl A2DP_DATA_PATH /data/misc/bluedroid…

React 中结合 antd 的 Input 组件实现防抖输入

在 React 中结合 antd 的 Input 组件实现防抖输入,可以通过以下几种方式实现: 1. 使用 useEffect 和 setTimeout 代码示例 import React, { useState, useEffect } from "react"; import { Input } from "antd";const DebouncedI…

把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用

将vue项目发布成npm库文件,第三方通过npm依赖安装使用;使用最近公司接了一个项目,这个项目需要集成到第三方页面,在第三方页面点击项目名称,页面变成我们的项目页面;要求以npm库文件提供给他们;…

STM32 NOR FLASH(SPI FLASH)驱动移植(2)

2)FLASH 读取函数 /* * brief 读取 SPI FLASH * note 在指定地址开始读取指定长度的数据 * param pbuf : 数据存储区 * param addr : 开始读取的地址(最大 32bit) * param datalen : 要读取的字节数(最大 65535) * retval 无 */ void norflash_read(uint8_t *pbuf…

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码,我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时,才会发现它就像一本魔法书,轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具?它究…

【重庆】《政务数字化应用费用测算规范》(T/CDCIDA 001—2023)-省市费用标准解读系列36

《政务数字化应用费用测算规范(报批稿)》于2023年11月18日实施,本文件按照GB/T 1.1-2020给出的规则起草,主要适用于重庆政务数字化应用项目的费用测算。我司基于专业第三方信息化项目造价机构角度,从标准创新点、定制软…

Python | 学习type()方法动态创建类

getattr方法的使用场景是在访问不存在的属性时,会触发该方法中的处理逻辑。尤其是在动态属性获取中结合 type()动态创建类有着良好的使用关系。 type()方法常用来判断属性的类别,而动态创建类不常使用,通过如下的几个实例来学习使用&#xff…

机器学习之逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告

逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告 目录 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告1 逻辑回归算法1.1 概念理解1.2 算法导入1.3 算法优缺点 2 LogisticRegression理解2.1查看参数定义2.2 参数理解2.3 方法2.4基本格式 3 数据标准…

.NET在中国的就业前景:开源与跨平台带来的新机遇

随着技术的不断发展和市场需求的变化,.NET在中国的就业前景正变得愈加广阔。尤其是在开源和跨平台的推动下,越来越多的中国中小型企业选择了.NET技术作为其开发平台,进一步提升了.NET技术人才的市场需求。尽管在中国市场,.NET的市…

Linux(Ubuntu24.04)源码编译安装VTK7.1.1记录

VTK(Visualization Toolkit)是一个开源的3D可视化开发工具包,用于开发可视化和图形处理应用程序。VTK提供了一系列的算法和工具,用于创建、渲染和处理复杂的3D图形和数据。VTK由C编写,并提供了Python、Java和Tcl等语言…

Hadoop解决数据倾斜方法

数据倾斜是指在分布式数据处理过程中,数据在某些节点上的分布不均匀,导致这些节点的处理负载过重,而其他节点的资源闲置,从而影响整个系统的性能。在 Hadoop 中,以下是一些解决数据倾斜的方法: 1. 数据预处…

【人工智能】人工智能与大模型

人工智能与大模型的结合正在深刻改变多个行业和领域的格局。 1. 人工智能 (AI) 人工智能指的是使计算机或机器具备模拟人类智能的能力,包括学习、推理、问题解决、自然语言处理、视觉感知等。AI的发展可以分为几个阶段: 弱人工智能 (Narrow AI)&#…

安卓11 SysteUI添加按钮以及下拉状态栏的色温调节按钮

最近客户想要做一个台灯产品,需要实现 串口调节台灯功能 ,其中包括 亮度调节 色温调节 开关 三个功能 话不多说,贴代码 diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml old mode 100644 new …

node.js下载、安装、设置国内镜像源(永久)(Windows11)

目录 node-v20.18.0-x64 工具下载安装设置国内镜像源(永久) node-v20.18.0-x64 工具 系统:Windows 11 下载 官网https://nodejs.org/zh-cn/download/package-manager 版本我是跟着老师选的node-v20.18.0-x64如图选择 Windows、x64、v2…

如何轻松安全地销售旧 Android 手机

众所周知,手机不断更新换代。当您想要的手机终于到货时,您可能迫不及待地将旧 Android 手机更新为最新手机。在此之前,你们中的一些人可能会考虑以最多的钱卖掉旧的Android手机。 但永远不要冲动地卖掉你的旧 Android 手机!为了安…

欧科云链研究院:ChatGPT 眼中的 Web3

编辑|OKG Research 转眼间,2024年已经进入尾声,Web3 行业经历了热闹非凡的一年。今年注定也是属于AI的重要一年,OKG Research 决定拉上 ChatGPT 这位“最懂归纳的AI拍档”,尝试把一整年的研究内容浓缩成精华。我们一共…

【从零开始入门unity游戏开发之——unity篇04】unity6基础入门——场景窗口(Scene)和层级窗口(Hierarchy)介绍

文章目录 场景窗口(Scene)和层级窗口(Hierarchy)一、层级窗口(Hierarchy)1、添加新的对象(物体)2、Hierarchy层级窗口快捷键3、搜索 二、Scene场景窗口1、工具栏控制台2、操作物体位…

Jboss EnhancedQueueExecutor 使用案例及源码解读

使用案例 EnhancedQueueExecutor配置类 Configuration Slf4j public class EnhancedQueueExecutorConfig {Beanpublic EnhancedQueueExecutor enhancedQueueExecutor() {return createExecutor(5, 100,"enhancedQueueExecutor","任务处理失败 {}");}priv…

如何确保涡度通量观测数据的准确性?涡度通量光敏感性分析、温度敏感性分析、数据风浪区分析等

确保涡度通量观测数据的准确性,可以采取以下几个步骤: 1.数据预处理:在进行数据分析之前,需要对原始的高频涡度通量数据进行预处理,包括剔除异常值和进行数据缺失插补。异常值剔除可以通过设定合理的阈值来识别并剔除数…

docker镜像构建(基于ISO)

1. 前言 本文详细介绍如何基于kylin v10 ISO文件构建出docker image。系统环境如下: dockder: 20.10.7 linux os: kylinv 10 (GFB) linux kernel: 4.19.90-52.23.v2207.gfb01.ky10.aarch642. 构建yum离线源 2.1. 挂载ISO文件 mount Kylin-Server…