论文阅读_tinyllama_轻量级大模型

news2024/11/16 5:42:44

英文名称: 'TinyLlama: An Open-Source Small Language Model'
中文名称: 'TinyLlama: 一个开源的小型语言模型
链接: http://arxiv.org/abs/2401.02385v1
代码: https://github.com/jzhang38/TinyLlama
作者: Peiyuan Zhang, Guangtao Zeng, Tianduo Wang, Wei Lu机构: 新加坡科技与设计大学日期: 2024-01-04

1 读后感

文中介绍了 TinyLlama 一种开源的轻量级大语言模型。作者发布了所有相关信息,包括的预训练代码、所有中间模型检查点以及数据处理步骤的细节。TinyLlama 可以在移动设备上支持最终用户应用程序,并作为测试语言模型的轻量级平台。

TinyLlama 相对于 Llama2,在架构和算法上都没有太多改进,但有一些微调,旨在测试用更多 token,更小模型的训练结果,以及提交训练效率的方法。

论文正文 5 页左右。

2 摘要:

目标:TinyLlama 是在约 1T tokens 上进行了约 3 轮 (epochs) 的预训练的,大小为 1.1B 的紧凑型语言模型。

方法:基于 Llama 2 的架构和分词器,它利用了开源社区的各种新技术,实现了更好的计算效率。

结论:在一系列下游任务中,明显优于具有相似尺寸的现有开源语言模型。

3 引言

自然语言处理的最新进展在很大程度上是通过扩大语言模型规模来推动的。一些实证研究表明,要训练最优模型,模型的大小和训练数据量应以相同的速度增加。

也有实验证明,当使用更多数据训练时,较小模型训练较长时间的情况下,较小的模型可以匹配甚至优于较大的模型。

文中工作的重点是探索使用非常大量的数据训练具有参数量较小的模型,且开源了 TinyLlama。

4 预训练

4.1 预训练数据

采用自然语言数据和代码数据混合预训练 TinyLlama,从 SlimPajama 获取自然语言数据(1.2 T tokens),从 Starcoderdata 获取代码数据(86 种编程语言,约 250 B token)。采用 Llama 的分词器来处理数据。

将两个语料库结合起来后,总共有大约 950B Token 用于预训练。训练 3 轮 (epochs)。在训练过程中,以自然语言数据和代码数据之间大约 7:3 的比例采样。

4.2 架构

采用与 Llama 2 类似的模型架构

位置嵌入使用 RoPE 旋转位置嵌入;归一化使用 RMSNorm 提高训练效率;激活函数使用 SwiGLU;注意力使用 Grouped-query Attention 分组查询,以减少内存带宽开销并加快推理速度,它可在多个头之间共享键和值表示,而不牺牲太多性能。

4.3 速度优化

完全分片数据并行(FSDP)

在训练期间,集成了 FSDP,以有效地利用多 GPU 和多节点设置,显著提高了训练效率。

Flash Attention

集成了 Flash Attention 2 优化的注意力机制,以提高计算吞吐量。

xFormers

用原始的 SwiGLU 模块替换了 xFormers 中的融合 SwiGLU 模块。以减少内存占用,使 1.1B 模型能在 40GB 的 GPU RAM 训练。

图 1:训练速度比较。

性能分析及与其他型号的比较

将训练吞吐量提高到每个 A100-40G GPU 每秒 24,000 token。与其他模型相比,如图所示,TinyLlama-1.1B 模型只需要 3,456 个 A100 GPU 小时即可训练 300B token,在训练中节省大量时间和资源。

4.4 训练

基于 lit-gpt 构建框架,在预训练阶段采用了自回归语言建模目标,与 Llama 2 的设置一致。文中使用 16 个 A100-40G GPU 预训练了 TinyLlama。

5 结果

在广泛常识推理和解决问题的任务上评估了 TinyLlama,将其与大小相似的模型进行比较。

5.1 常识推理评测

图 2 展示了训练过程中性能的变化:

图 2:预训练期间常识推理基准的性能演变,与 Pythia-1.4B 性能比较。

5.2 解决问题评测

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

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

相关文章

数据库(银行数据库表构建)

题目: 通过所提供的E-R图和数据库模型图完成库表的创建,并插入适量的数据.要求必须使用SQL命令进行构建。 表1 UserInfo **建表** CREATE TABLE USERINFO (customerID INT AUTO_INCREMENT COMMENT 客户编号,customerName CHAR(50) CHARACTER SET utf8mb…

Ubuntu虚拟内存设置-----必成功!!!

!!!!!!!!!下面实例是32G的方式,其他的注意修改count和对应的数值!!!!!! 使用 dd 命令…

c语言-实现动态内存管理的库函数

文章目录 前言一、什么是动态内存分配?二、malloc()和free()2.1 malloc()介绍2.2 malloc()的使用2.3 free()介绍 三、calloc()3.1 calloc()介绍3.2 calloc()使用 四、realloc()4.1 realloc()介绍4.2 realloc()使用 总结 前言 本篇文章介绍c语言中实现动态内存管理的…

【C++】string的基本使用二

我们接着上一篇的迭代器说起,迭代器不只有正向的,还有反向的,就是我们下边的这两个 它的迭代器类型也是不同的 rbegin就是末尾,rend就是开头,这样我们想遍历一个string对象的话就可以这样做 int main() {string s1(…

《WebKit 技术内幕》学习之七(4): 渲染基础

4 WebKit软件渲染技术 4.1 软件渲染过程 在很多情况下,也就是没有那些需要硬件加速内容的时候(包括但不限于CSS3 3D变形、CSS3 03D变换、WebGL和视频),WebKit可以使用软件渲染技术来完成页面的绘制工作(除非读者强行…

【分布式技术】注册中心zookeeper

目录 一、ZooKeeper是什么 二、ZooKeeper的工作机制 三、ZooKeeper特点 四、ZooKeeper数据结构 五、ZooKeeper应用场景 ●统一命名服务 ●统一配置管理 ●统一集群管理 ●服务器动态上下线 ●软负载均衡 六、ZooKeeper的选举机制 七、实操部署ZooKeeper集群 步骤一…

《WebKit 技术内幕》学习之五(1): HTML解释器和DOM 模型

第五章 HTML 解释器和 DOM 模型 1.DOM 模型 1.1 DOM标准 DOM (Document Object Model)的全称是文档对象模型,它可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。这里的文档可以是 HTML 文档、XML 文档或者 XHTML 文档。D…

MarkDown学习笔记 直观全面详细

前言 为什么我们要学习Markdown呢?因为Markdown简单易学易上手,可以以纯文本格式编写文档,然后转换成有效的HTML文档,并且以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档,许多网站平台的文章、博客、论文均可…

将输入框的数据输出成json

刚学,做一下记录 先上效果图,来不及解释了,后面再说 源码:链接:https://pan.baidu.com/s/1pV8hDVwpB1kresHag7gIew 提取码:**** 操作: 进入项目目录下,cmd 清除npm缓存&#xff1…

Java并发基础:Executor接口和Executors类的区别

Executor是Java中的一个接口,它定义了一种将任务提交与任务执行机制(包括线程管理、调度等)分离的方式,Executors是一个工具类,它提供了多个静态工厂方法,用于创建不同类型的Executor实例。 代码案例 下面…

国家急救日倡议活动暨120急救大课堂公益培训在京成功举办

2024年1月20日,由国家卫生健康委员会等多个相关部门指导,中国医院协会急救中心(站)分会主办,北京急救中心承办的“国家急救日”倡议活动暨急救科普大课堂公益培训系列活动,在全国范围内启动。 健康中国行动…

AI企业知识库:企业智慧之源,引领未来发展

AI企业知识库作为优秘智能的核心技术(shuziren06),具有许多引人注目的功能和特点。接下来让我们深入探讨一下AI企业知识库如何在实际应用中助力企业。以下是对AI企业知识库的更详细介绍: 1. 强大的知识整合能力 AI企业知识库能够…

智慧校园大数据应用系统介绍(2)

OA办公管理系统 教育OA管理系统,是为配合学校内部办公自动化的实施而研发的一套稳定、安全、灵活、实用的办公自动化管理系统。该系统结构精明实用;功能模块灵活稳定;设计人性化、使用简单化且扩展性强。系统由通知,信息采集,工作计划,公文流转、听课反馈、行政护导、资…

ML Design Pattern——I see

ML Life Cycle MLOps ML Pipelines Fully automated processes ML Design Patterns Reading the book? 链接:https://pan.baidu.com/s/1MgOSHASAOJ0EVhMYmT9QeQ?pwd96uk 提取码:96uk

即时按需原子 CSS 引擎:比 Tailwind JIT 快 5 倍! | 开源日报 No.149

unocss/unocss Stars: 14.6k License: MIT 该项目是一个即时的按需原子 CSS 引擎,受到 Windi CSS、Tailwind CSS 和 Twind 的启发,解决了定制化、速度和体积的问题。 以下是该项目的特点和核心优势: 完全可定制:通过预设提供所…

阿里巴巴开源联邦学习框架FederatedScope

5月5日,阿里巴巴达摩院发布新型联邦学习框架FederatedScope,声称可以在不共享训练数据的情况下开发机器学习算法,从而保护隐私。,其源代码现已在Apache 2.0许可下发布在GitHub上。 介绍 该平台被描述为一个全面的联邦学习框架&a…

Day16 linuxC高级(存储类型 linux命令 shell命令)

文章目录 C补充标识常量存储类型1.auto // 自动型2.static:修饰变量和函数 // 静态型3.extern:外部引用4.register:寄存器类型 LinuxC高级简介:嵌入式系统(将软件嵌入到硬件里面)Linux起源查看操作系统版本内核系统架构系统关机或…

阿里云优惠券领取入口、使用方法和限制条件,2024最新

阿里云优惠代金券领取入口,阿里云服务器优惠代金券、域名代金券,在领券中心可以领取当前最新可用的满减代金券,阿里云百科aliyunbaike.com分享阿里云服务器代金券、领券中心、域名代金券领取、代金券查询及使用方法: 阿里云优惠券…

Python Process创建进程(2种方法)详解

虽然使用 os.fork() 方法可以启动多个进程,但这种方式显然不适合 Windows,而 Python 是跨平台的语言,所以 Python 绝不能仅仅局限于 Windows 系统,因此 Python 也提供了其他方式在 Windows 下创建新进程。 Python 在 multiproces…

程序员必备命令之-网络状态命令netstat ss

本文介绍一下两个常用的Linux命令,netstat以及ss,这两个命令均用来查看主机的网络相关的信息。 Netstat netstat 是Unix系统上用于显示各种网络统计信息的命令,目前大多数的Linux系统默认自带该命令。该命令用于显示系统网络连接、路由表等…