轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了,针对特定领域较小的语言模型是否与较大的模型同样有效?

news2025/1/23 9:54:23

轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了,针对特定领域较小的语言模型是否与较大的模型同样有效?

在这里插入图片描述

当大家都在研究大模型(LLM)参数规模达到百亿甚至千亿级别的同时,小巧且兼具高性能的小模型开始受到研究者的关注。

小模型在边缘设备上有着广泛的应用,如智能手机、物联网设备和嵌入式系统,这些边缘设备通常具有有限的计算能力和存储空间,它们无法有效地运行大型语言模型。因此,深入探究小型模型显得尤为重要。

在这里插入图片描述

接下来我们要介绍的这两项研究,可能满足你对小模型的需求。

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 架构和分词器(tokenizer)为基础,这意味着 TinyLlama 可以在许多基于 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://huggingface.co/datasets/open-llm-leaderboard/details_ahxt__llama2_xs_460M_experimental

在这里插入图片描述
面对规模大幅缩小的 LiteLlama,有网友好奇,它是否能够在 4GB 的内存上运行。如果你也想知道,不如亲自试试看吧。


经过2023年的发展,大语言模型展示出了非常大的潜力,训练越来越大的模型成为有效性评估的一个关键指标,论文《A Comparative Analysis of Fine-Tuned LLMs and Few-Shot Learning of LLMs for Financial Sentiment Analysis》中,作者全面分析了微调大语言模型(llm)及其在金融情绪分析中的零样本和少样本的能力。

在这里插入图片描述

作者通过使用两种方法来探索金融情绪分析背景下的潜力和适用性:

在特定的领域(金融领域)的数据集上,使用小语言模型进行微调,作者测试了250M到3B参数各种模型
以gpt-3.5 turbo为重点的情境学习
作者还将结果与SOTA(最先进的)模型进行比较以评估其性能,我们看看小模型是否还同样有效。

论文证明了以下观点:

微调较小的llm可以达到与SOTA微调llm相当的性能。
零样本和少样本学习的的性能与经过微调的小型llm相当。
增加上下文学习中的样本数量并不一定会提高情感分析任务的性能。
微调较小的llm会降低成本和提高计算效率。
作者专注于使用QLoRa (Quantized low - rank - adaptive)机制对FLAN-T5模型进行微调。使用财务特定数据集,研究了3种尺寸:Flan-T5 base (250M), Flan-T5 large (780M)和Flan-T5-xl (3B参数)。

论文概述
论文首先总结了特定于金融领域的SOTA模型:

FinBERT:使用总计4.9B Token组的金融通信语料库进行微调的BERT。
bloomberg ggpt:这是一个包含50B个参数的闭源模型,专门针对各种金融数据进行训练。它在情感分析中表现出良好的性能。
使用LLama-7B对FinGPT进行微调。该模型使用更少的计算资源实现了与bloomberg ggpt相当的性能。
ChatGPT这样的llm也可以使用零样本学习。但是他们在少样本学习中表现并不理想
作者使用了以下模型:

1、没有进行任何微调:Flan-T5 base (250M), Flan-T5 large (780M), Flan-T5-xl (3B参数),ChatGPT (gpt-3.5 turbo)。目标是研究模型的大小对零样本和少样本学习的影响。

2、微调llm:具有3个尺寸的相同型号的Flan-T5已经进行了微调。

数据集
使用了Twitter财经新闻(Twitter Train),包括与金融主题相关的推文,可通过HuggingFace访问。它包含9540个样本。

TFSN: 2390个带有注释的财经相关推文语料库样本。

FPB: 4845篇金融新闻文章样本,由16位领域专家注释。

GPU资源
为了对3个模型进行微调,作者使用了A100 GPU,每个模型的总训练时间如下:基本模型28分钟,大模型54分钟,XL模型65分钟,所以说这个微调是非常节省资源的。

微调小型LLMs
结果显示了经过微调的小型llm优于大型llm的性能:
在这里插入图片描述
所有Fine-tuned-FLAN-T5的性能都优于FinBERT;Large (780M)和XL(3B) fine - tuning - flan - t5性能优于directive - lama- 7b;在TFSN数据集中,即使是基础(250M)微调的flan - t5也比使用ChatGPT (gpt-3.5 turbo)的k-shot上下文学习表现更好。

少样本学习
以下是0 -shot和k-shot学习的结果(k= 1,5和10):
在这里插入图片描述

在TFSN数据集上,零样本和少样本学习的表现明显低于所有其他微调模型。(除了XL,表现比FinBert稍好)

但是在FPB数据集中,与ChatGPT相比,Large和XL Flan-T5零样本和少样本学习表现出较强的性能。

样本的增加使得基本型Flan-T5的性能略有提升。但在Large和XL fall - t5中,这导致精度下降。这是因为冗长的上下文窗口可能会导致LLM误入歧途。

所以作者建议,当k-shot增加时可以使用语义相似检索或思维链(CoT)或线索和推理提示(CARP)方法来解决性能下降的问题。

总结
可以看到,针对特定的领域,微调小模型还是能过够得到很好的效果,这在对于我们实际应用是是非常有帮助的,不仅可以节省成本,还可以节省我们的训练时间,可以让我们进行快速的版本迭代。

论文地址:

https://arxiv.org/pdf/2312.08725.pdf


参考链接:

https://twitter.com/_akhaliq/status/1744009616562819526

https://twitter.com/XiaotianHan1/status/1743824496916656275

https://twitter.com/abacaj/status/1743303507594097136

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

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

相关文章

【基于React实现共享单车管理系统】—项目简介(一)

【基于React实现共享单车管理系统】—项目简介(一) 一、项目整体架构

【自然语言处理三-自注意self attention】

自然语言处理三-自注意力 self attention 自注意力是什么?自注意力模型出现的原因是什么?词性标注问题解决方法1-扩展window,引用上下文解决方法2-运用seq2seq架构新问题来了:参数量增加、无法并行的顽疾 自注意力self attention模…

kali Linux 渗透系统的安装、提权与汉化(初识 Linux 系统)

目录 一、安装 kali 二、汉化 kali 三、kali 提权 1、暂时提权 root 2、永久提权 root 四、Linux 常用命令 一、安装 kali 官方镜像下载地址 https://www.kali.org/get-kali/#kali-virtual-machines 我这里推荐的是下载 vmx 文件,下载后解压,在 …

牛客前端八股文(每日更新)

1.说说HTML语义化? 得分点:语义化标签、利于页面内容结构化、利于无CSS页面可读、利于SEO、利于代码可读 1,标签语义化是指在开发时尽可能使用有语义的标签,比如header,footer,h,p&#xff0c…

uniapp实现单选框

采用uniapp-vue3实现的一款单选框组件,提供丝滑的动画选中效果,支持不同主题配置,适配web、H5、微信小程序(其他平台小程序未测试过,可自行尝试) 可到插件市场下载尝试: https://ext.dcloud.net…

【X806开发板试用】串口数据透传阿里云IOT

上成果 阿里云对接需要用的是PRODUCTKEY,DEVICENAME和DEVICESECRET,开始直接用MQTT的例子硬怼,没成功,后面看了文档,发现阿里云对接的client_id,username和password是通过三要素生成的。 找了一下代码,发…

禁止safari浏览器网页双击缩放功能

普通浏览器 普通浏览器&#xff0c;只需要增加meta标签禁止缩放功能就行了 <meta content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0;" name"viewport" /> user-scalableno或0 //禁止双指缩放页面initial-scale1.0…

nginx平滑升级,信号使用,分割日志

信号 kill -l 看信号大全 nginx -h 中可以看到的信号较少 s signal : send signal to a master process: stop, quit, reopen, reload 可以使用man手册来查看详细的信号 如果没安装&#xff0c;去源码包里找到man文件 man 路径/nginx.8 不加路径打不开man帮助 st…

【这个词(Sequence-to-Sequence)在深度学习中怎么解释,有什么作用?】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;深度学习笔记 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Sequence-to-Sequence&#xff08;Seq2Seq&#xff09; Sequence-to-Sequence&#xff08;Seq2Seq…

继电器测试中需要注意的安全事项有哪些?

继电器广泛应用于电气控制系统中的开关元件&#xff0c;其主要功能是在输入信号的控制下实现输出电路的断开或闭合。在继电器测试过程中&#xff0c;为了确保测试的准确性和安全性&#xff0c;需要遵循一定的安全事项。以下是在进行继电器测试时需要注意的安全事项&#xff1a;…

leetcode:46.全排列

1.什么是排列&#xff1f; 有顺序&#xff01;&#xff01; 2.树形结构&#xff1a; 使用used数组进行标记取过的元素&#xff0c;一个元素一个元素地进行取值&#xff0c;取完之后将used数组进行标记。 3.代码实现&#xff1a;&#xff08;循环从i0开始&#xff0c;而不是…

【Java EE初阶二十五】简单的表白墙(一)

1. 前端部分 1.1 前端代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…

python Matplotlib Tkinter--pack 框架案例

环境 python:python-3.12.0-amd64 包: matplotlib 3.8.2 pillow 10.1.0 版本一 import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk import tkinter as tk import tkinter.messagebox as messagebox…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的遥感目标检测系统(Python+PySide6界面+训练代码)

摘要&#xff1a;本文介绍了一种基于深度学习的遥感目标检测系统系统的代码&#xff0c;采用最先进的YOLOv8算法并对比YOLOv7、YOLOv6、YOLOv5等算法的结果&#xff0c;能够准确识别图像、视频、实时视频流以及批量文件中的遥感目标。文章详细解释了YOLOv8算法的原理&#xff0…

路坦利集群虚拟机断网处理方法

路坦利集群虚拟机断网处理方法 问题描述&#xff1a; 在路坦利集群中&#xff0c;虚拟机时不时断网&#xff0c;导致业务中断&#xff0c;临时解决办法为新增网卡配置相同IP&#xff0c;然后禁用旧网卡网络临时恢复。 注&#xff1a; 该配置必须让虚拟化平台上层交换机和宿…

GPT 的基础 - T(Transformer)

我们知道GPT的含义是&#xff1a; Generative - 生成下一个词 Pre-trained - 文本预训练 Transformer - 基于Transformer架构 我们看到Transformer模型是GPT的基础&#xff0c;这篇博客梳理了一下Transformer的知识点。 BERT:通过自监督的方式,在大规模语料上预训练得到的Tran…

[C++核心编程](二):引用

目录 基本语法 引用做函数参数 引用做函数返回值 常量引用 基本语法 给变量取别名&#xff1a;数据类型 &别名 原名&#xff1b; 本质&#xff1a;指针常量&#xff08;指针的指向不可改&#xff0c;指向的值可改&#xff09; int value 10;int &index value; …

【Linux】head命令使用

head命令 head是一个在 Unix 和 Unix-like 操作系统中常用的命令行工具&#xff0c;用于输出文件的前 n 行。默认为 10&#xff0c;即显示 10 行的内容。 语法 head [options] [file(s)] head命令 -Linux手册页 选项及作用 执行令 &#xff1a; head --help 执行命令结果…

如何使用GAP-Burp-Extension扫描潜在的参数和节点

关于GAP-Burp-Extension GAP-Burp-Extension是一款功能强大的Burp扩展&#xff0c;该工具在getAllParams扩展的基础上进行了升级&#xff0c;该工具不仅可以帮助广大研究人员在安全审计过程中扫描潜在的参数&#xff0c;而且还可以搜索潜在的链接并使用这些参数进行测试&#…

git commit 后,本地远端都没有记录,消失不见

今天git commit 之后发现远端没有记录&#xff0c;本地没有最新代码记录 git commit 后&#xff0c;提交记录会消失不见的原因可能是&#xff1a; git只git commit了&#xff0c;没有push到远程分支&#xff0c;切换到其他分支时丢失。而且看不到提交记录&#xff0c;和找不到…