AI新热点:边云协同:大模型结合小模型(大小模型联合推理)

背景

AI模型规模不断剧增已是不争的事实。模型参数增长至百亿、千亿、万亿甚至十万亿,大模型在算力推动下演变为人工智能领域一场新的“军备竞赛”。

这种竞赛很大程度推动了人工智能的发展,但随之而来的能耗和端侧部署问题限制了大模型应用落地。2022达摩院十大科技趋势指出,“大模型参数竞赛正进入冷静期,大小模型将在云边端协同进化”。

大模型向边、端的小模型输出模型能力,小模型负责实际的推理与执行,同时小模型再向大模型反馈算法与执行成效。
在这里插入图片描述
历史上计算形态经历了几次重要变化:

当本地计算成本低于通信成本时,计算模式由分时共享机制迅速转变为本地计算完成方式;当网络技术进步使得通信成本远低于计算成本时,开始出现由本地计算向云计算的过渡
随着硬件成本降低、计算能力提升、通信带宽飞跃、传感器感知能力进化等技术进步持续发生,传统计算长久以“算力为王”的模式来部署完成,即任务汇聚到大型机上集中处理,而后分散到用户终端设备处理,再然后相当一部分的计算任务重新汇聚到云计算中心处理。尤其是5G/6G通信技术的出现和萌芽,将进一步大幅降低通信成本。
然而,随着物联网技术的爆发,本地计算需求指数级持续涌现,将全部的计算和数据均交由集中式的云计算中心来处理并不现实,更合理的是既充分发挥云计算优势、又调动端计算敏捷性,形成端边云协同的新计算模式。
在这里插入图片描述

大模型结合小模型

主要有以下几个思路:

1、 模型压缩

模型压缩技术旨在减小深度学习模型的大小而不显著牺牲其性能。这可以通过剪枝、量化和知识蒸馏等多种方法实现。通过压缩大型模型,可以使它们更适合在资源有限的设备上部署或在小数据集上训练。

参考论文
Model Compression:An Evaluation of Model Compression & Optimization Combinations

论文简述:」本文旨在探索模型压缩领域的各种可能性,讨论不同级别的剪枝和量化的组合效率,并提出一种质量测量指标,以客观地决定哪种组合在最小化准确性差异和最大化大小减小因子方面最佳。

1.1 知识蒸馏

以大模型为teacher、小模型为student,通过数据蒸馏或者logits蒸馏等蒸馏方法,将大模型某方面的能力转移到小模型上。

用大模型去训练数据,然后用小模型去拟合大模型的输出,小模型可以学习大模型的知识(古已有之的线路是,以大模型为teacher对小模型进行知识蒸馏(KD),以期用更小的模型学会大模型涌现出的能力,提高推理效率)

具体步骤

首先需要一个性能优秀的大模型作为教师模型,让其学习数据并产生预测结果;
然后将这个大模型的输出概率向量作为软目标,称之为“soft targets”;
接着训练一个小模型,我们称其为学生模型,让学生模型去尽量拟合这些软目标;
最后在一些验证集或者测试集上评估学生模型的性能。

参考论文:

  • Distilling the Knowledge in aNeural Network
    提取神经网络中的知识

论文简述:」一种简单的方法是训练多个不同的模型,然后平均它们的预测结果来提高机器学习算法的性能。然而,使用整个模型集合进行预测可能会变得繁琐和计算密集。Caruana和他的合作者提出了将知识压缩到一个单一模型中的方法,这种方法更容易部署。他们通过将模型集合的知识蒸馏到一个单一模型中,显著提高了商用系统的声学模型性能。他们还引入了一种由完整模型和专家模型组成的新型集成方法,这些专家模型可以快速并行地训练,用于区分完整模型混淆的细粒度类别。
在这里插入图片描述

  • 代码下载

蒸馏的方法可以是数据蒸馏,即用大模型生成的文本数据训练小模型
参考论文:
Alpaca: A Strong, Replicable Instruction-Following Model

  • 论文下载
  • 代码下载

用GPT3.5生成的数据继续训练Llama-7b

logits蒸馏:即对同一对输入输出,让小模型模仿大模型输出的概率分布
参考论文:
微软的MiniLLM,MiniLLM有意思的地方是,提出把普通KD的KL散度loss°的两个项反过来(MReverseKLD),

  • 论文下载:Knowledge Distillation of Large Language Models
  • 代码下载

1.2 剪枝大模型

训练一个大模型,然后通过剪枝的方法压缩模型,去掉冗余的结构和参数,得到一个更小但精度依然高的模型
参考论文:
论文下载:Pruning Filters for Efficient ConvNets
剪枝过滤器以获得高效的卷积神经网络
代码下载

论文简述:」本文介绍了一种加速卷积神经网络(CNN)的方法,即通过剪枝对网络影响较小的过滤器来减少计算成本。与权重剪枝不同,这种方法可以在整个网络中删除整个过滤器及其连接的特征图,从而显著降低计算成本。由于不需要稀疏卷积库的支持,因此该方法可以与现有的高效BLAS库一起使用。实验表明,即使在简单的过滤器剪枝技术下,VGG-16和ResNet-110在CIFAR10上的推理成本也可以分别降低34%和38%,并且通过重新训练网络可以获得接近原始精度的结果。
在这里插入图片描述

1.3 模型蒸馏

用大模型蒸馏出小模型实现降本
参考论文:

  • 论文下载:Large Language Models Are Reasoning Teachers
  • 代码下载

这篇论文提供了一个思路借助思维链(CoT)逐步解决复杂推理任务的能力,可以使用大模型作为推理教师,针对一批数据集,让大模型给出详尽的解答思路,然后把问题和解题过程交给学生模型进行 Fine-tuning。这个解决思路也有一个专有名词,叫做“模型蒸馏”,其效果还是非常亮眼的,在保持同样的推理能力,甚至超越大模型的情况下,模型的大小降低到原来的 1/500~1/25。这可以帮助很多特定场景降低成本,例如使用自建的蒸馏小模型替代直接调用 ChatGPT,很多简单场景都适用,如果蒸馏出来的模型足够小,还可以直接在端侧(移动设备或嵌入式系统)部署,在用户本地完成推理,进一步降低服务成本

2、联合推理:小模型杀鸡,大模型宰牛

在一个系统里集成大模型和小模型,用小模型处理简单的输入、大模型处理复杂的输入,提高整个系统的效率

基本思路是,一个系统里既有参数少速度快、性能低的小模型,又有参数多、速度慢、性能高的大模型,用小模型处理简单的任务,它处理不了的任务才交给大模型处理,以此提高整个系统的效率。这个”小刀杀鸡,大刀宰牛“的思路非常直观,其核心就是要怎么定义”简单“和”复杂“的”任务“,让大小模型各得其所、各尽所能。下面是两个有代表性的具体方法:

2.1 模型串联✳

所有样本先过小模型,根据小模型的置信度(如softmax概率或者熵)判断样本的难易程度,对置信度高的”简单样本“直接输出小模型的预测,置信度低的”困难样本“才交给大模型来处理。这个方法可以追溯到BERT时代的CascadeBERT
在这里插入图片描述

参考论文:
论文下载:CascadeBERT: Acceleratingnference of Pre-trained Language Models viaCalibrated Complete Models Cascade

代码下载

2.2 投机采样:

参考论文:
论文下载:Fast inference from transformers via speculative decoding

代码下载
它的思路是在某个生成的timestep,把自回归生成这个耗时的过程交给小模型(或者大模型的底下几层,我们统称为小模型),小模型采样生成几个候选序列,再把它们拼在一起输给大模型,让大模型选择language modeling概率最高的那个候选序列。

这里要注意的是,这几个候选序列输给大模型的时候要修改相应的attention mask(即Medusa的Tree Mask):
Medusa: Simple framework for accelerating LLM generation with multiple decoding heads
代码下载

3、权值共享

在小模型中共享大模型中部分层的权值,比如可以共享低层的特征提取层,然后在高层重新训练适合小模型的权值。参考论文:
Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks viaAttention Transfer
论文下载

代码下载

4、迁移学习

使用大模型预训练的权值来初始化小模型,然后基于小模型的任务重新进行微调,这种方法可以快速得到一个性能不错的小模型。

它涉及利用预训练的大型模型来构建小数据集上的模型。迁移学习允许从大型数据集转移知识到较小的数据集,从而提高小数据集上的模型性能。这在可用于训练的数据有限时特别有用。通过使用预训练的模型作为起点,小型模型可以从大型模型学到的特征和表征中受益。
在这里插入图片描述

参考论文:
A Simple Framework for Contrastive Learning of Visual Representations
论文下载

代码下载

Cross-property deep transfer learning framework for enhanced predictive analytics on small materials data
论文下载

5、将小模型作为插件

参考论文:
Small Models are Valuable Plug-ins for Large Language Models
论文下载
代码下载
背景:大型语言模型(LLMs)如GPT3和GPT-4非常强大,但它们的权重通常不公开,并且它们的巨大大小使得这些模型难以使用常见硬件进行调整。由于上下文长度限制,In-Context Learning(ICL)只能使用少量监督示例。
创新点:本文提出了Super In-Context Learning(SuperICL),它允许黑盒LLMs与本地微调的较小模型一起工作,从而在监督任务上获得更好的性能。超级上下文学习(SuperICL)将LLMs与本地微调的较小模型结合起来,使它们可以共同提高监督任务的性能。较小的模型充当插件,提供任务特定的知识和预测,而大型预训练模型则专注于一般语言理解。
效果:SuperICL可以提高性能,超越最先进的微调模型(比独立的大模型和小模型都要好),同时解决上下文学习的不稳定性问题。此外,SuperICL可以增强较小模型的能力,例如多语言性和可解释性。
步骤:SuperICL分为以下三个步骤:
在这里插入图片描述

插件模型微调
首先在具体任务上使用训练数据微调出一个小模型(例如RoBERTa),作为插件模型。

上下文构建
然后利用小型模型提供的任务特定知识,为大模型构造上下文。该上下文包括从训练数据中随机抽取的一组示例,以及它们对应的小型插件模型的预测结果(包括预测的标签及其置信度分数)。

推理
构造出上下文后,对于一条实际输入,插件模型的预测结果,包括的标签和置信度分数将与上下文连接起来,形成大型语言模型的完整输入。然后,LLM生成最终预测结果和对预测结果的解释。

6、提示语压缩

通过一个小模型对提示语进行压缩
参考论文:
LongLLMLingua:ACCELERATING ANDLLMS IN LONG CONTEXT SCENARIOS VIA PROMPTCOMPRESSION
项目下载
论文下载
在这里插入图片描述

7、集成学习

通过集成学习之类的技术可以实现将大型模型与小型模型结合。集成学习涉及结合多个模型进行预测。通过将大型模型与小型模型结合,可以利用两者的优势来提高整体性能。这可以通过模型平均或堆叠等技术来实现。
参考论文:
Ensemble deep learning: A review
论文下载
在这里插入图片描述

8、其他:

参考论文

8.1 SuperContext: WU等提出大小模型结合新思路

论文下载
论文提出了一个简单而有效的框架SuperContext,通过整合小型、有监督的语言模型(SLMs)的输出,来增强LLMs的可靠性,特别是在处理分布外数据和减少生成任务中的幻觉方面。这一方法为开发更可靠、泛化能力更强的LLMs提供了新的思路。
在这里插入图片描述

方法
传统ICL:基于假设,即LLMs在给定的上下文示例和任务特定数据的条件下,生成响应的概率是近似不变的。
SuperContext:在传统ICL的基础上,在推理阶段将SLMs的预测和置信度作为额外的提示信息插入到问题-答案对之间。

步骤
微调SLMs:在领域内数据集上微调SLMs。
测试SLMs:在测试集上使用微调后的SLMs进行预测。
整合输出:将SLMs的预测、置信度和特殊提示插入到LLMs的提示中。
推理:使用LLMs进行推理,输出预测结果。

8.2 投机式推理:「投机式推理」引擎SpecInfer

可以借助于轻量化的小模型帮助大模型,在完全不影响生成内容准确度的情况下,实现两到三倍的推理加速。
论文下载
项目主页
在这里插入图片描述

研究者提出了一种「投机式」推理引擎SpecInfer,其核心思想是通过计算代价远低于LLM的“小模型”SSM(Small Speculative Model)替代LLM进行投机式地推理(Speculative Inference),每次会试探性地推理多步,将多个SSM的推理结果汇聚成一个Speculated Token Tree,交由LLM进行验证,通过高效的树形解码算子实现并行化推理,验证通过的路径将会作为模型的推理结果序列,进行输出。

总体上来说,SpecInfer利用了SSM的内在知识帮助LLM以更低廉的计算成本完成了主要的推理过程,而LLM则在一定程度上破除了逐token解码的计算依赖,通过并行计算确保最终输出的结果完全符合原始的推理语义。

8.3 大模型辅助小模型

大模型在各方面的表现都还可以,但是在很多垂直领域反而是一种浪费,因为很多时候我们并不需要它是个通才,只需要专注于特定任务。今天分享一篇文章,主要思想就是借助LLM来辅助训练一个特定任务的小模型。
论文标题:《PROMPT2MODEL: Generating Deployable Models from Natural Language Instructions》
论文下载
代码下载
在这里插入图片描述

本文提出了一种名为Prompt2Model的框架,它可以接受自然语言任务描述,然后训练一个特定目的且便于部署的模型。该方法结合了检索现有数据集、预训练模型、使用LLM生成数据集,并在这些数据上进行微调。实验结果显示,与gpt-3.5-turbo相比,Prompt2Model训练的模型性能提高了20%,但模型大小减少了700倍。

9 应用场景

把大模型和小模型相结合,常见应用场景:

1.自然语言处理

通过使用预训练的大模型 (如BERT、GPT-3等) 作为特征提取器或生成器,然后在下游任务 (如文本分类、问答、文本生成等)上进行微调或融合,可以提高小模型的效果和效率

2.计算机视觉

通过使用预训练的大模型 (如ResNet、VGG等) 作为特征提取器或分类器,然后在下游任务 (如目标检测、人脸识别、图像分割等) 上进行微调或融合,可以提高小模型的效果和效率

3.多模态学习

通过使用预训练的大模型 (如CLIP、DALL-E等)作为多媒体信息的编码器或生成器,然后在下游任务 (如图像检索、图像描述、图像生成等) 上进行微调或融合,可以提高小模型的效果和效率。

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

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

相关文章

非极大值抑制算法(Non-Maximum Suppression,NMS)

https://tcnull.github.io/nms/ https://blog.csdn.net/weicao1990/article/details/103857298 目标检测中检测出了许多的候选框,候选框之间是有重叠的,NMS作用重叠的候选框只保留一个 算法: 将所有候选框放入到集和B从B中选出分数S最大的b…

VBA技术资料MF168:移动工作表为单独工作簿

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

eventbus和vuex

EventBus和Vuex EventBus 工作原理 创建一个vue实例,然后通过空的vue实例作为组件之间的桥梁,进行通信,利用到的设计模式有发布订阅模式 Vuex 工作原理 维护了一个state树,是独立的状态树,有明显的层级关系。不论…

云计算-期末复习题-框架设计/选择/填空/简答(2)

目录 框架设计 1.负载分布架构 2.动态可扩展架构 3.弹性资源容量架构 4.服务负载均衡架构 5.云爆发结构 6.弹性磁盘供给结构 7.负载均衡的虚拟服务器实例架构 填空题/简答题 单选题 多选题 云计算期末复习部分练习题,包括最后的部分框架设计大题(只是部分…

AI办公自动化:多音频轨电影视频抽取出英语音频

很多电影视频是有中、英、粤语等多个音频轨的,如果直接转换成音频,很有可能不是自己想要的那种语音。 可以先查看音频流信息,确定属于哪个音频轨: Reading video file: E:\1-7\比得兔1.mp4 输出音频流信息 Available audio str…

利用viztracer进行性能分析和优化

上一篇文章,我们详细讲解了scalene这个性能分析和优化工具的使用流程;今天,我们将深入探讨另一个性能分析和优化工具——viztracer。 什么是viztracer? viztracer是一个非常强大的分析器,可以生成详细的性能报告和可…

设计师进阶指南:掌握这6条版式设计要点

布局设计是设计师的必修课。优秀的排版不是强制性的“东拼西凑”,而是通过设计师独特的排版获得的。这不是简单的信息列表,而是认真思考如何分层、有节奏地组织和安排元素。今天我将给你带来它 6 文章还附带了布局设计模板资源,设计师朋友一定…

EthernetIP IO从站设备数据 转opc ua项目案例

1 案例说明 设置网关采集EthernetIP IO设备数据把采集的数据转成opc ua协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议。网关可以采集西门子,欧姆龙,三菱,AB PLC&#xff0…

Element 页面滚动表头置顶

在开发后台管理系统时,表格是最常用的一个组件,为了看数据方便,时常需要固定表头。 如果页面基本只有一个表格区域,我们可以根据屏幕的高度动态的计算出一个值,给表格设定一个固定高度,这样表头就可以固定…

红酒达人教你秘技:选酒、存酒,一招一式皆学问

在繁忙的都市生活中,红酒不仅仅是一种饮品,更是一种生活态度,一种品味的象征。然而,面对琳琅满目的红酒品牌与种类,如何选择一瓶心仪的红酒,又如何妥善保存,使其保持很好口感,成为了…

LabVIEW遇到无法控制国外设备时怎么办

当使用LabVIEW遇到无法控制国外产品的问题时,解决此类问题需要系统化的分析和处理方法。以下是详细的解决思路和具体办法,以及不同方法的分析和比较,包括寻求代理、国外技术支持、国内用过的人请教等内容。 1. 了解产品的通信接口和协议 思路…

Python 基础 (标准库):collections (集合类)

1. 官方文档 collections --- 容器数据类型 — Python 3.12.4 文档 Python 的 collections 模块提供了许多有用的数据类型(包括 OrderedDict、Counter、defaultdict、deque 和 namedtuple)用于扩展 Python 的标准数据类型。掌握 collections 中的数据类…

五子棋纯python手写,需要的拿去

import pygame,sys from pygame import * pygame.init()game pygame.display.set_mode((600,600)) gameover False circlebox [] # 棋盘坐标点存储 box [] def xy():for x in range(0,800//40): for y in range(0,800//40): box.append((x*40,y*40)) xy() defaultColor wh…

8.DELL R730服务器对RAID5进行扩容

如果服务器的空间不足了,如何进行扩容?我基本上按照如何重新配置虚拟磁盘或添加其他硬盘来进行操作。我的机器上已经有三块硬盘了,组了Raid5,现在再添加一块硬盘。 先把要添加的硬盘插入服务器,无论是在IDRAC还是管理…

物联网“此用户无权修改接入点名称设置”解决方案

根本原因apns-conf.xml里面没有 符合 物理网卡 的配置 可以先加一个APN试一下,看看默认的MCC和MNC是什么 然后在”命令行“查询一下 adb shell sqlite3 /data/user_de/0/com.android.providers.telephony/databases/telephony.db "select * from carriers wh…

乐鑫已支持Matter 1.2标准新增多种设备类型,启明云端乐鑫代理商

随着物联网技术的飞速发展,智能家居正逐渐成为现代生活的一部分。物联网和智能家居行业应用取得了巨大的增长,一系列无线连接的智能设备涌入家庭,为家庭生活带来自动化和便利。 像是可以连网的扬声器、灯泡和中控开关,它们都可以…

迁移学习——CycleGAN

CycleGAN 1.导入需要的包2.数据加载(1)to_img 函数(2)数据加载(3)图像转换 3.随机读取图像进行预处理(1)函数参数(2)数据路径(3)读取文…

MySQL笔记——索引

索引 SQL性能分析使用原则SQL提示覆盖索引前缀索引单列索引和联合索引索引设计原则 学习黑马MySQL课程,记录笔记,用于复习。 查询建表语句: show create table account;以下为建表语句: CREATE TABLE account (id int NOT NULL …

Redis-集群-环境搭建

文章目录 1、清空主从复制和哨兵模式留下的一些文件1.1、删除以rdb后缀名的文件1.2、删除主从复制的配置文件1.3、删除哨兵模式的配置文件 2、appendonly修改回no3、开启daemonize yes4、protect-mode no5、注释掉bind6、制作六个实例的配置文件6.1、制作配置文件redis6379.con…

使用 fvm 管理 Flutter 版本

文章目录 Github官网fvm 安装Mac/Linux 环境Windows 环境 fvm 环境变量fvm 基本命令 Github https://github.com/leoafarias/fvmhttps://github.com/flutter/flutter 官网 https://fvm.app/ fvm 安装 Mac/Linux 环境 Install.sh curl -fsSL https://fvm.app/install.sh …