【总结】在嵌入式设备上可以离线运行的LLM--Llama

文章目录

  • Llama 简介
  • 运用
  • 另一种:MLC-LLM

一个令人沮丧的结论在资源受限的嵌入式设备上无法运行LLM(大语言模型)。

一丝曙光:tinyLlama-1.1b(10亿参数,需要至少2.98GB的RAM)

Llama 简介

LLaMA 模型集合由 Meta AI 于 2023 年 2 月推出, 包括四种尺寸(7B 、13B 、30B 和 65B)。由于 LLaMA 的 开放性和有效性, 自从 LLaMA 一经发布, 就受到了研究界和工业界的广泛关注。 LLaMA 模型在开放基准的各 种方面都取得了非常出色的表现, 已成为迄今为止最流行的开放语言模型。大批研究人员通过指令调整或持续 预训练扩展了 LLaMA 模型。特别需要指出的是, 指令调优 LLaMA 已成为一种主要开发定制专门模型的方法, 由于相对较低的计算成本。

LLaMA是在训练一系列模型中, 通过训练比通常来说更多的 tokens,在不同的推理预算下达到尽可能好的性能而最终产生的模型。其参数范围为 70 亿(7B)到 650 亿(65B)。LLaMA 的预训练数据包含: CommonCrawl, C4 ,Github ,Wikipedia ,Books ,ArXiv,以及 StackExchange。

LLaMA 也使用了基本的 transformer 架构,并利用了以前的语言模型提出的各种改进:

预归一化为了提升训练的稳定性, LLaMA 使用了 RMSNorm将每个 transformer 子层的输入归一化而 不是归一化输出。
SwiGLU 激活函数将 ReLU 激活函数替换为 SwiGLU 激活函数,维度变为 2/3 * 4d 而不是 PaLM 中的 4d。
旋转嵌入将每层的绝对位置嵌入替换为旋转位置嵌入(RoPE)。

另外, 该模型使用了 AdamW 优化器进行训练。其超参数为 β 1 = 0.9 ,β2 = 0.95。使用余弦学习率调 度, 使最终学习率为最大学习率的 10%。权重衰减为 0.1,梯度裁剪为 1.0,使用了 2000 个预热步骤, 而且根据 模型大小调整学习率和批次处理大小。

LLaMA 使用了两种方法提高模型的训练速度。首先是使用 causal 多头注意力来减少内存使用量和运行时 间。这种方法可以通过 xformers 库实现。这种效果是由于它不存储注意力权重以及它不计算被掩盖的 key 和 query 的分数而产生的。接着是通过检查点减少向后传播期间重新计算的激活量。这是通过手动实现transformer 的向后传播函数来实现的。为了充分利用这个优化, 需要通过模型和序列并行来减少模型的内存使用。另外, 使 用 all_reduce 尽可能地重叠激活函数计算和GPU 之间通过网络的通信。

从结论上来说, LLaMA- 13B 的性能比 GPT-3 更强, 但模型大小是其十分之一。而 LLaMA-65B 的表现可以 与 Chinchilla-70B 和 PaLM-540B 竞争。与以前的模型不同, LLaMA 展示了仅使用公共数据集也能达到最先进的性能。

运用

深度学习模型计算可以分为训练和推断,前者是用于构建包含大量网络化参数的模型,而后者则是利用这个模型对用户输入进行响应并给出答案。模型里包含的网络化参数越多,相当于脑细胞越多,思维能力越强,像 GPT-3 就有 175B(1750 亿)个网络参数,基于 GPT-3 衍生的大模型让人们意识到 AI 具备非常出色的对话能力,而且在很多情况下都比人类更出色。

GPT-3 的网络参数规模是 1750 亿,执行推断所需要的内存规模会达到百 GiB 级别,目前整套东西弄下来的成本达到 100 万元级别,且不说你能不能抢到相应的硬件资源,光是自己搭配起来也不是一件轻松的事情。

网络参数规模量纲是亿,能在手机端部署的 几十亿参数的 LLM,能在计算能力更弱的嵌入式设备上运行的就是在10亿以下参数的LLM。

会有这样的描述:
在这里插入图片描述
在树莓派上运行语音识别和LLama-2 GPT!

类似的模型运行取决于RAM的大小:

RAM参数级别
2GB及以下无支持的Llama LLM模型-
2GB无支持的Llama LLM模型-
4GBTinyLlama-1–1B-Chat-v1-0-GGUF10亿级参数,1B
8GBLlama-2–7b-Chat-GGUF70亿级参数,7B
16GBLlama-2–7b-Chat-GGUF70亿级参数,7B
32GBLlama-2–7b-Chat-GGUF70亿级参数,7B
模型名字自身大小最小RAM需求最大RAM需求
tinyllama-1.1b-chat-xxx.gguf0.48GB~1.17GB2.98GB3.67GB
llama-2_7b-chat-xxx.gguf2.83GB~7.16GB5.33GB9.66GB

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

美好的愿景:
根据摩尔定律, 5-10 年后,相同的模型将轻松运行在 1 美元的芯片上,就像现在我们可以运行成熟的 PDP-11 模拟器(PDP在80年代的时候价值10 万美元)在 5 美元的 ESP32 板上。

另一种:MLC-LLM

链接:https://www.zhihu.com/question/598610139/answer/3013322834

出于定制化、个性化或者隐私性的目的,人们想要自己在各种终端设备中本地运行大语言模型,不需要/不希望连接互联网或者依赖于服务器。

尽管现在有云计算、边缘计算等技术对大模型推算的算力支持,但是用户的个人数据安全和隐私也是不得不考虑的问题,那么模型的本地化部署一定会是一个重要的方向,甚至可能会成为刚需。

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

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

相关文章

数据处理库Pandas数据结构DataFrame

Dataframe是一种二维数据结构,数据以表格形式(与Excel类似)存储,有对应的行和列,如图3-3所示。它的每列可以是不同的值类型(不像 ndarray 只能有一个 dtype)。基本上可以把 DataFrame 看成是共享…

KIMI官方精选提示词,好牛的感觉啊啊啊!

晚上好,我是云桃桃。一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃 1枚程序媛,大专生,2年时间从1800到月入过万,工作5年买房。 分享成长心得。 255篇原创内容-公众号 后台回复“前端工具”可获取开发工具&#xff0…

vscode安装

🌈个人主页:Rookie Maker 🏆🏆关注博主,随时获取更多关于IT的优质内容!🏆🏆 😀欢迎来到小田代码世界~ 😁 喜欢的小伙伴记得一键三连哦 ૮(˶ᵔ ᵕ ᵔ˶)ა …

Qt+OpenGL入门教程(三)——绘制三角形

通过前两篇文章的学习,我想大家应该有了基本的理解,我们接下来实操一下。 创建Qt OpenGL窗口 QOpenGLWidget QGLWidget是传统QtOpenGL模块的一部分,与其他QGL类一样,应该在新的应用程序中避免使用。相反,从Qt5.4开始…

YOLOv8结合SCI低光照图像增强算法!让夜晚目标无处遁形!【含端到端推理脚本】

这里的"SCI"代表的并不是论文等级,而是论文采用的方法 — “自校准光照学习” ~ 左侧为SCI模型增强后图片的检测效果,右侧为原始v8n检测效果 这篇文章的主要内容是通过使用SCI模型和YOLOv8进行算法联调,最终实现了如上所示的效果:在增强图像可见度的同时,对图像…

亿图图示如何绘制WBS分解?

什么是WBS分解? Wbs分解俗称工作分解结构法,就是把一个大项目按照原则分成多个小任务,再把每项小任务分解成具体的工作,然后把工作分到每人的工作中的一种分解方法。 如下图这里以开店KTV为例,项目是开店,小…

【QT入门】 QListWidget各种常见用法详解之列表模式

往期回顾 【QT入门】 Qt代码创建布局之setLayout使用-CSDN博客 【QT入门】 Qt代码创建布局之多重布局变换与布局删除技巧-CSDN博客 【QT入门】 QTabWidget各种常见用法详解-CSDN博客 【QT入门】 QListWidget各种常见用法详解之列表模式 QListWidget有列表和图标两种显示模式&a…

C++bitset类型

bitset类型 我们介绍了将整型运算对象当作二进制位集合处理的一些内置运算符。 标准库还定义了bitset类,使得位运算的使用更为容易,并且能够处理超过最长整型类型大小的位集合。bitset类定义在头文件bitset中。 定义和初始化bitset bitset类是一个类模…

朵米3.5客服系统源码,附带系统搭建教程

朵米客服系统是一款全功能的客户服务解决方案,提供多渠道支持(如在线聊天、邮件、电话等),帮助企业建立与客户的实时互动。该系统具有智能分流功能,可以快速将客户请求分配给适当的客服人员,提高工作效率。…

协程库-锁类-实现线程互斥同步

mutex.h:信号量,互斥锁,读写锁,范围锁模板,自旋锁,原子锁 锁 **锁不能进行拷贝操作:**锁是用于管理多线程并发访问共享资源的同步原语。这些锁包括互斥锁(mutex)、读写锁…

【攻防世界】file_include (PHP伪协议+过滤器)

打开题目环境: 进行PHP代码审计,发现这是一个文件包含漏洞。 我们尝试利用PHP伪协议中的 php://filter来读取 check.php 中的内容。 构造payload 并提交: 发现payload被过滤掉了,我们就需要尝试使用不同的转换器。 PHP各类转换…

【面经】2023年软件测试面试题大全(持续更新)附答案

前阵子一位读者告诉我,某位大厂HR给他发了我之前做的面试题答案合集。 这个消息让我开心了一整天😂,因为这说明我之前做的面试题系列真的能帮助到部分测试同学,也算是侧面得到了一种认可吧。 坚持可是我们程序员家族的优良传统&a…

未来购物新篇章:臻奶惠无人新零售

未来购物新篇章:臻奶惠无人新零售 随着科技的不断进步和消费者购物习惯的变化,无人新零售已经成为零售行业的一大趋势,它不仅重新定义了购物体验,也为零售行业带来了前所未有的变革。无人新零售,一种融合了AI技术、物…

Java程序运行的问题——异常

什么是异常? Java程序在运行时出现的问题就叫异常 jdk中将异常一新封装成了一个个的类,当出现问题时,就会创建异常对象,抛出异常信息(问题原因、位置) 1.异常 1.1异常的继承体系 Throwable 是所有错误(…

Python控制浏览器——selenium模块

Python控制浏览器——selenium模块 目录 Python控制浏览器——selenium模块准备工作【1】安装selenium【2】安装浏览器驱动【3】测试驱动(作者是Edge) 导航和操作窗口导航返回前进刷新最大化窗口切换选项卡 查找和操作元素8种基本By定位方式[1]ID[2]Name…

关系(二)利用python绘制热图

关系(二)利用python绘制热图 热图 (Heatmap)简介 热图适用于显示多个变量之间的差异,通过颜色判断彼此之间是否存在相关性。 快速绘制 基于seaborn import seaborn as sns import pandas as pd import numpy as np i…

一个 hipsolver 特征值示例

1,原理 通过雅可比旋转,对对称矩阵计算特征值和特征向量; 通过初等正交变换,每次把其中一个非主对角元素消成零,最终只剩主对角线非零元素为特征值,同时把初等变换累积下来,构成特征向量。 2&a…

CAS(Compare And Swap)

目录 CAS概念 乐观锁与悲观锁 ABA问题 Unsafe类 ​编辑 原子类 基本类型原子类 原子引用类 原子数组 原子更新器类 原子累加器 CAS概念 CAS是Compare And Swap的缩写,中文翻译成:比较并交换,实现无锁并发时常用到的一种技术。它一…

element plus的el-image图片发布到nginx不显示

问题&#xff1a; <el-image alt""src"/img/month-b.png" class"card-icon"style"width: 89px;height: 89px;right: -7px;top: -5px;"/> 部署到nginx二级路由访问地址是&#xff1a; http://192.168.1.207/divided/# 这时候使用…

总结jvm中GC机制(垃圾回收)

前言 本篇博客博主将介绍jvm中的GC机制&#xff0c;坐好板凳发车啦~~ 一.GC相关 1.1回收栈内存 对于虚拟机栈&#xff0c;本地方法栈这部分区域而言&#xff0c;其生命周期与相关线程相关&#xff0c;随线程而生&#xff0c;随线程而灭。并且这三个区域的内存分配与回收具有…