小而强大的模型盛火兴起:TinyLlama和LiteLlama成为热门选择
当前,研究者开始关注小巧且高性能的小模型,尽管大家都在研究参数规模达到百亿甚至千亿级别的大模型。
小模型在边缘设备上有广泛应用,如智能手机、物联网设备和嵌入式系统。这些设备通常计算能力和存储空间有限,无法有效运行大型语言模型。因此,研究小型模型变得尤为重要。
接下来我们要介绍的这两项研究,可能满足你对小模型的需求。
TinyLlama-1.1B
新加坡科技设计大学(SUTD)的研究者最近发布了TinyLlama,这是一个参数量为11亿的语言模型,经过在大约3万亿个token上的预训练。
- 论文地址:https://arxiv.org/pdf/2401.02385.pdf
- 项目地址:https://github.com/jzhang38/TinyLlama/blob/main/README_zh-CN.md
TinyLlama是基于Llama 2架构和分词器的,这使得它可以轻松地与许多使用Llama的开源项目集成。此外,TinyLlama只有11亿个参数,体积小巧,非常适合那些需要限制计算和内存占用的应用程序。
该研究表示仅需 16 块 A100-40G 的 GPU,便可在 90 天内完成 TinyLlama 的训练。
该项目从上线开始,持续受到关注,目前星标量达到 4.7K。
TinyLlama 模型架构详细信息如下所示:
训练细节如下:
研究者表示,这项研究旨在挖掘使用较大数据集训练较小模型的潜力。他们重点探究在用远大于扩展定律(scaling law)建议的 token 数量进行训练时,较小模型的行为表现。
具体来说,该研究使用大约 3 万亿个 token 训练具有 1.1B 个参数的 Transformer (仅解码器)模型。据了解,这是第一次尝试使用如此大量的数据来训练具有 1B 参数的模型。
尽管规模相对较小,但 TinyLlama 在一系列下游任务中表现相当出色,它的性能显著优于同等大小的现有开源语言模型。具体来说,TinyLlama 在各种下游任务中都超越了 OPT-1.3B 和 Pythia1.4B 。
此外,TinyLlama 还用到了各种优化方法,如 flash attention 2、FSDP( Fully Sharded Data Parallel )、 xFormers 等。
在这些技术的加持下,TinyLlama 训练吞吐量达到了每 A100-40G GPU 每秒 24000 个 token。例如,TinyLlama-1.1B 模型对于 300B token 仅需要 3,456 A100 GPU 小时,而 Pythia 为 4,830 小时,MPT 为 7,920 小时。这显示了该研究优化的有效性以及在大规模模型训练中节省大量时间和资源的潜力。
TinyLlama 实现了 24k tokens / 秒 / A100 的训练速度,这个速度好比用户可以在 8 个 A100 上用 32 小时训练一个具有 11 亿参数、220 亿 token 的 chinchilla-optimial 的模型。同时,这些优化也大大减少了显存占用,用户可以把 11 亿参数的模型塞入 40GB 的 GPU 里面还能同时维持 16k tokens 的 per-gpu batch size。只需要把 batch size 改小一点, 你就可以在 RTX 3090/4090 上面训练 TinyLlama。
实验中,该研究主要关注具有纯解码器架构的语言模型,包含大约 10 亿个参数。具体来说,该研究将 TinyLlama 与 OPT-1.3B、Pythia-1.0B 和 Pythia-1.4B 进行了比较。
TinyLlama 在常识推理任务上的性能如下所示,可以看出 TinyLlama 在许多任务上都优于基线,并获得了最高的平均分数。
此外,研究者在预训练期间跟踪了 TinyLlama 在常识推理基准上的准确率,如图 2 所示,TinyLlama 的性能随着计算资源的增加而提高,在大多数基准中超过了 Pythia-1.4B 的准确率。
表 3 表明,与现有模型相比,TinyLlama 表现出了更好的问题解决能力。
手快的网友已经开始整活了:运行效果出奇得好,在 GTX3060 上运行,能以 136 tok / 秒的速度运行。
「确实是快!」
小模型 LiteLlama
由于 TinyLlama 的发布,SLM(小型语言模型)开始引起广泛关注。德克萨斯工农大学的 Xiaotian Han 发布了 SLM-LiteLlama。它有 460M 参数,由 1T token 进行训练。这是对 Meta AI 的 LLaMa 2 的开源复刻版本,但模型规模显著缩小。
项目地址:https://huggingface.co/ahxt/LiteLlama-460M-1T
LiteLlama-460M-1T 在 RedPajama 数据集上进行训练,并使用 GPT2Tokenizer 对文本进行 token 化。作者在 MMLU 任务上对该模型进行评估,结果如下图所示,在参数量大幅减少的情况下,LiteLlama-460M-1T 仍能取得与其他模型相媲美或更好的成绩。
以下为该模型的性能表现,更详细内容请参阅:
https://www.php.cn/link/05ec1d748d9e3bbc975a057f7cd02fb6
面对规模大幅缩小的 LiteLlama,有网友好奇,它是否能够在 4GB 的内存上运行。如果你也想知道,不如亲自试试看吧。
以上是小而强大的模型盛火兴起:TinyLlama和LiteLlama成为热门选择的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

配置Debian邮件服务器的防火墙是确保服务器安全性的重要步骤。以下是几种常用的防火墙配置方法,包括iptables和firewalld的使用。使用iptables配置防火墙安装iptables(如果尚未安装):sudoapt-getupdatesudoapt-getinstalliptables查看当前iptables规则:sudoiptables-L配置

本文介绍如何在Debian系统中调整ApacheWeb服务器的日志记录级别。通过修改配置文件,您可以控制Apache记录的日志信息的详细程度。方法一:修改主配置文件定位配置文件:Apache2.x的配置文件通常位于/etc/apache2/目录下,文件名可能是apache2.conf或httpd.conf,具体取决于您的安装方式。编辑配置文件:使用文本编辑器(例如nano)以root权限打开配置文件:sudonano/etc/apache2/apache2.conf

Debian系统中的readdir函数是用于读取目录内容的系统调用,常用于C语言编程。本文将介绍如何将readdir与其他工具集成,以增强其功能。方法一:C语言程序与管道结合首先,编写一个C程序调用readdir函数并输出结果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

在Debian系统中,readdir系统调用用于读取目录内容。如果其性能表现不佳,可尝试以下优化策略:精简目录文件数量:尽可能将大型目录拆分成多个小型目录,降低每次readdir调用处理的项目数量。启用目录内容缓存:构建缓存机制,定期或在目录内容变更时更新缓存,减少对readdir的频繁调用。内存缓存(如Memcached或Redis)或本地缓存(如文件或数据库)均可考虑。采用高效数据结构:如果自行实现目录遍历,选择更高效的数据结构(例如哈希表而非线性搜索)存储和访问目录信

在Debian邮件服务器上安装SSL证书的步骤如下:1.安装OpenSSL工具包首先,确保你的系统上已经安装了OpenSSL工具包。如果没有安装,可以使用以下命令进行安装:sudoapt-getupdatesudoapt-getinstallopenssl2.生成私钥和证书请求接下来,使用OpenSSL生成一个2048位的RSA私钥和一个证书请求(CSR):openss

在Debian系统中,readdir函数用于读取目录内容,但其返回的顺序并非预先定义的。要对目录中的文件进行排序,需要先读取所有文件,再利用qsort函数进行排序。以下代码演示了如何在Debian系统中使用readdir和qsort对目录文件进行排序:#include#include#include#include//自定义比较函数,用于qsortintcompare(constvoid*a,constvoid*b){returnstrcmp(*(

在Debian系统上使用OpenSSL进行数字签名验证,可以按照以下步骤操作:准备工作安装OpenSSL:确保你的Debian系统已经安装了OpenSSL。如果没有安装,可以使用以下命令进行安装:sudoaptupdatesudoaptinstallopenssl获取公钥:数字签名验证需要使用签名者的公钥。通常,公钥会以文件的形式提供,例如public_key.pe

在Debian系统中,OpenSSL是一个重要的库,用于加密、解密和证书管理。为了防止中间人攻击(MITM),可以采取以下措施:使用HTTPS:确保所有网络请求使用HTTPS协议,而不是HTTP。HTTPS使用TLS(传输层安全协议)加密通信数据,确保数据在传输过程中不会被窃取或篡改。验证服务器证书:在客户端手动验证服务器证书,确保其可信。可以通过URLSession的委托方法来手动验证服务器
