深度学习论文: LLaMA: Open and Efficient Foundation Language Models

news2024/9/28 21:25:25

深度学习论文: LLaMA: Open and Efficient Foundation Language Models
LLaMA: Open and Efficient Foundation Language Models
PDF:https://arxiv.org/pdf/2302.13971.pdf
PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

本文介绍了LLaMA,这是一系列基础而先进的语言模型,其参数规模横跨7亿至65亿不等,展现了强大的语言处理能力。研究表明,通过大规模公开数据的训练,LLaMA系列模型成功打破了对专有或受限数据集的依赖,达到了业界最前沿(SOTA)的性能水平。本研究的核心目标是通过显著增加训练中的token数量,开发出在不同推理场景下均能展现出卓越性能的语言模型。

LLaMA模型家族以其多样的参数配置,为语言模型领域带来了新的竞争力量。特别值得注意的是,即便是参数规模仅为GPT-3十分之一的LLaMA-13B版本,也在多数基准测试中超越了GPT-3,展现了其高效与强大。这一成果不仅提升了语言模型的性能边界,更旨在推动LLMs的普及,使得更多研究者能够在单个GPU的资源限制下,轻松访问并深入研究这些大型模型。
在这里插入图片描述
进一步地,在LLaMA系列中,65亿参数的顶级版本在性能上足以与Chinchilla、PaLM-540B等业界顶尖的大型语言模型相抗衡。尤为关键的是,LLaMA的训练完全基于公开数据,秉持开源精神,与许多依赖非公开或未详尽记录数据集的现有模型形成鲜明对比。尽管市场上已存在如OPT、GPT-NeoX、BLOOM和GLM等使用公开数据的模型,但它们在性能上尚未能与PaLM-62B或Chinchilla等顶尖模型相提并论。LLaMA的出现,无疑为语言模型领域注入了新的活力,也为未来的研究和应用开辟了更广阔的道路。

2 Approach

2-1 Pre-training Data

本训练数据集是精心构建的多元化数据集合,其数据来源广泛且覆盖多个领域,具体比例及处理方法如下:

英文CommonCrawl [67%]:
  • 精心预处理了2017年至2020年的五个CommonCrawl数据转储,采用CCNet管道(Wenzek等人,2020),确保数据质量。
  • 在行级别上进行去重操作,减少重复内容。
  • 利用fastText线性分类器识别并剔除非英文页面,保持语言一致性。
  • 通过n-gram语言模型过滤低质量内容,提升数据集质量。
  • 训练线性模型对页面进行分类,保留与维基百科参考相关的页面,丢弃其他低质量页面。
C4 [15%]:
  • 鉴于C4数据集在多样化预处理方面的优势,将其纳入以进一步提升模型性能。
  • 预处理包括去重和语言识别,确保数据纯净。
  • 质量过滤更多依赖于启发式规则,如标点符号、单词和句子数量等,筛选高质量内容。
Github [4.5%]:
  • 从Google BigQuery获取公开Github数据集,筛选符合Apache、BSD和MIT许可的开源项目。
  • 基于行长度和字母数字字符比例等启发式规则过滤低质量文件。
  • 使用正则表达式去除样板文字,如标题等,清理数据。
  • 在文件级别上进行精确匹配去重,确保数据唯一性。
维基百科 [4.5%]:
  • 添加2022年6月至8月期间的维基百科转储,涵盖20种使用拉丁或西里尔字母的语言。
  • 移除超链接、评论和其他格式化样板文字,使数据更纯净。
Gutenberg and Books3 [4.5%]:
  • 包含Gutenberg 项目和ThePile的Books3部分,提供公共领域书籍资源。
  • 在书籍级别上进行去重,移除内容重叠超过90%的书籍,避免数据冗余。
ArXiv [2.5%]:
  • 处理arXiv Latex文件,引入科学领域高质量数据。
  • 去除论文的引言部分和参考文献,专注于核心研究内容。
  • 去除.tex文件中的注释,并内联扩展用户编写的定义和宏,确保内容一致性和完整性。
Stack Exchange [2%]:
  • 引入Stack Exchange数据转储,包含多样化领域的高质量问题和答案。
  • 保留28个最大网站的数据,去除HTML标签,并按答案得分排序,优先使用高质量答案。
分词器:
  • 采用字节对编码(BPE)算法(Sennrich等人,2015),结合SentencePiece(Kudo和Richardson,2018)实现,对数据进行高效分词。
  • 将所有数字拆分成单个数字,并对未知UTF-8字符进行字节级分解,确保分词准确性和灵活性。

整个训练数据集分词后大约包含1.4T个token,其中大部分token在训练中仅使用一次,但计划对维基百科和图书领域数据进行大约两个周期的训练,以充分利用资源。
在这里插入图片描述

2-2 Architecture

基于近期在大语言模型领域的进展,提出的网络架构基于Transformer(Vaswani等,2017),并融入了多项优化改进,这些改进灵感来源于不同的先进模型如PaLM和GPTNeo。

预归一化 [GPT3灵感]

为了增强训练过程的稳定性,采用了预归一化策略,即在每个Transformer子层的输入处进行归一化,而非传统的输出处。这一优化借鉴了GPT3的做法,并采用了Zhang和Sennrich(2019)提出的RMSNorm归一化函数,以进一步提升性能。

SwiGLU激活函数 [PaLM启发]

为了提升模型的非线性表达能力和整体性能,将ReLU激活函数替换为SwiGLU激活函数。SwiGLU由Shazeer(2020)提出,并在PaLM等模型中展现出优势。在此基础上进行了微调,采用2^3/4d的维度设置,以适应我们的网络架构需求。

旋转位置嵌入 [GPTNeo创新]

为了更有效地处理序列中的位置信息,摒弃了传统的绝对位置嵌入,转而采用Su等人(2021)提出的旋转位置嵌入(RoPE)。这种嵌入方式在每个Transformer层的输入中动态地引入位置信息,有助于模型更好地理解和生成具有位置依赖性的文本。

通过上述优化,提出的网络架构在保持Transformer强大能力的同时,进一步提升了训练稳定性、非线性表达能力和对位置信息的处理能力,从而有望在大语言模型任务中取得更优的表现。
在这里插入图片描述

2-3 Optimizer

模型采用AdamW优化器训练,设置β1为0.9,β2为0.95,并使用余弦退火学习率计划,最终学习率是初始最大值的10%。同时使用权重衰减和梯度裁剪,使用2000步预热,并根据模型大小调整学习率和批量大小。

2-4 Efficient implementation

为了提升训练效率,采用了优化的因果多头注意力实现,减少了内存和时间消耗,并通过检查点技术减少了反向传播中的重复计算。同时实现了模型和序列并行性,以及尽可能重叠激活计算和GPU间的通信。

3 Main results

Common Sense Reasoning

在这里插入图片描述

Closed-book Question Answering

在这里插入图片描述
在这里插入图片描述

Reading Comprehension

在这里插入图片描述

Mathematical reasoning

在这里插入图片描述

Code generation

在这里插入图片描述

Massive Multitask Language Understanding

在这里插入图片描述

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

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

相关文章

身份证二要素API,实名认证领域的创新之选

身份证二要素API,是一种实名认证领域的创新解决方案。通过输入姓名和身份证号,该API可以通过官方权威渠道进行核查,实时校验二要素的一致性,并返回生日、性别、籍贯等详细信息。这篇博文将详细介绍身份证二要素API的使用方法&…

【fastadmin 开发实战】select 级联选择

先看实现的效果 1、表单页面实现级联选择 2、级联选项后台可以编辑添加 前端代码&#xff08;编辑窗口&#xff09;&#xff1a; <div class"form-group"><label class"control-label col-xs-12 col-sm-2">{:__(渠道归属)}:</label><…

swift与Internvl下的多模态大模型分布式微调指南(附代码和数据)

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 基于Dify的智能分类方案&#xff1a;大模型结合KNN算法&#xff08;附代码&#xff…

AD3518 SOP-8封装 单节锂电池保护芯片 可替代XB8608/XB8608A

AD3518 是一款内置 MOSFET 的单节锂电池保护芯片。该芯片具有非常低的功耗和非常低阻抗的内置 MOSFET。该芯片有充电过压&#xff0c;充电过流&#xff0c;放电过压&#xff0c;放电过流&#xff0c;过热&#xff0c;短路&#xff0c;电芯反接等各项保护等功能&#xff0c;确保…

MUNIK解读ISO26262:安全计划

前言 当我们进行功能安全开发时&#xff0c;由于整个项目周期和内容较多&#xff0c;因此需要在项目前期对一些问题提前进行规划&#xff1a;比如功能安全开发具体分为几个阶段&#xff0c;应该怎么去做&#xff1f;对于不同的环节&#xff0c;有哪些人员来执行&#xff1f;资…

@RequestBody注解的使用及源码解析

前言 RequestBody 注解是我们进行JavaEE开发&#xff0c;最常见的几个注解之一&#xff0c;这篇博文我们以案例和源码相结合&#xff0c;帮助大家更好的了解 RequestBody 注解 使用案例 1.自定义实体类 Data NoArgsConstructor AllArgsConstructor public class User {priv…

飞睿智能6公里WiFi图传接收模块,低延迟、抗干扰、高速稳定传输数据,无人机、农田远距离WiFi模块

在科技日新月异的今天&#xff0c;无线通信技术正以前所未有的速度发展&#xff0c;不仅改变了我们的生活方式&#xff0c;还为企业带来了前所未有的商业机遇。今天&#xff0c;我要向大家介绍一款飞睿智能的产品——6公里WiFi图传接收模块&#xff0c;它以其高性能、稳定的传输…

安防综合管理/视频汇聚平台EasyCVR视频监控存储技术:高效稳定的视频数据保障方案

随着科技的飞速发展&#xff0c;视频监控已成为现代社会不可或缺的一部分。无论是城市治安、交通管理&#xff0c;还是商业安保、家庭监控&#xff0c;视频监控都发挥着至关重要的作用。而在这背后&#xff0c;视频监控存储技术则是确保监控数据得以长期保存、高效检索和可靠利…

今天,纷享AI正式发布,开启智能CRM新纪元

纷享销客作为国产CRM中连续四年保持近40%增长的领先品牌&#xff0c;一直在探索AICRM领域的数字化变革。 7月10日&#xff0c;纷享AI产品正式上线。与通用大模型不同&#xff0c;纷享AI是在合规之下&#xff0c;开放性的接入各种大模型平台&#xff0c;并结合纷享销客在营销服…

Python爬虫教程第4篇-使用BeautifulSoup解析html

文章目录 Beautiful Soup简介安装Beautiful Soup快速开始如何使用Beautiful Soup中的对象TagNameAttributes多值属性 NavigableStringBeautifulSoupComment 遍历文档树子节点tag名字.contents 和 .children.descendants.strings 和 stripped_strings 父节点.parent.parents 兄弟…

深入解析RocketMQ的名字服务机制:功能、原理与应用

NameServer 是专为 RocketMQ 设计的轻量级名字服务&#xff0c;它的源码非常精简&#xff0c;八个类 &#xff0c;少于 1000 行代码。 这篇文章&#xff0c; 笔者会从基础概念、Broker 发送心跳包、NameServer 维护路由、Zookeeper vs NameServer 四个模块揭秘名字服务的设计精…

Paimon下载使用和基础操作说明

简介 Apache Paimon 是一种湖格式&#xff0c;支持使用 Flink 和 Spark 构建实时湖仓一体架构 用于流式处理和批处理操作。Paimon创新性地将湖格式与LSM&#xff08;Log-structured merge-tree&#xff09;相结合 结构&#xff0c;将实时流式更新引入 Lake 架构。 Paimon提供以…

力扣 203反转链表

思路 用cur->next指向pre,把链表倒转 cur后移&#xff0c;cur指向原链表的下一个 注意用tmp存储原链表中cur的后一个 class Solution { public: ListNode* reverseList(ListNode* head) { ListNode *cur head; ListNode *pre nullptr; ListNode *tmp; while (cur ! nul…

echarts——横坐标轴文字过长如何换行

横坐标轴文字过长,想要换行 实现如下效果 具体实现代码如下&#xff1a; axisLabel: {show: true,interval: 0,formatter: function (value) {var ret "";//拼接加\n返回的类目项 var maxLength 4;//每项显示文字个数 var valLength value.length;//X轴类目项…

为何Expo成为React Native官方推荐框架?

在React Conf上&#xff0c;我们更新了关于构建React Native应用的最佳工具指南&#xff1a;一个React Native框架——一个工具箱&#xff0c;包含所有必要的API&#xff0c;让你可以构建生产就绪的应用。 现在&#xff0c;使用React Native框架&#xff08;如Expo&#xff09…

快团团团长如何获得物流查询码以及如何查询呢?

快团团团长如何获得物流查询码以及如何查询呢&#xff1f; 一、功能说明 团长可自行生成物流查询码&#xff0c;直接将码发给顾客&#xff0c;顾客扫码可查询自己订单的物流状态&#xff01; 用户扫码后&#xff0c;会出现用户在该团长处下单的所有快递订单。团员可查看该订…

js逆向第24例:FastMoss数据分析网站Fm-Sign加密字段破解

文章目录 一、前言二、定位关键参数三、代码实现一、前言 破解:FastMoss数据分析网站Fm-Sign加密字段 二、定位关键参数 先看一下网站加密字段是长什么样,如下图,老手估计一下子就能发现字段Fm-Sign:的密文类似md5加密后的结果。 直接全局搜索Fm-Sign:看来key也没有做混…

【模块化与包管理】:解锁【Python】编程的高效之道

目录 1.什么是模块&#xff1f; 2. 模块的导入过程 3. 理解命名空间 4. import语句的多种形式 5. 模块的执行与重新导入 6. 包&#xff08;Package&#xff09; 7. sys模块和os模块 sys模块 常用属性 示例&#xff1a;使用sys模块 os模块 常用功能 示例&#xff1…

asan检测内存泄漏

文章目录 前言初始代码链接asan动态库静态方式链接额外说明小结 前言 ASAN是一个内存问题检测工具 类似的还有valgrind, 但是valgrind运行时会占用非常多的内存 初始代码 #include<stdio.h> #include"arcojson.h"int leak_func() {arco_json* jtest new_js…

复兴社在李忠平的引领下,奋力实现伟大复兴

李忠平&#xff0c;河北保定人&#xff0c;1965年6月生&#xff0c;现任中国财政科学研究院公共资产研究中心副主任副研究员和复兴社会长。他的一生充满了奋斗与奉献&#xff0c;为实现共同富裕和中华民族的伟大复兴而不断努力。复兴社在他的领导下&#xff0c;正走在一条坚定而…