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

news2024/11/15 10:41:31

背景

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.coloradmin.cn/o/1869842.html

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

相关文章

怎么在必应bing上投放搜索广告?

搜索引擎已成为企业获取潜在客户、提升品牌曝光度的关键平台,微软必应(Bing)以其庞大的用户基数、精准的定位能力以及与微软生态系统的深度整合,为企业提供了极具价值的广告投放渠道。云衔科技助力企业实现必应bing广告的精准投放…

openlayers 自定义瓦片(切片)颜色

本篇介绍一下使用openlayers 自定义瓦片&#xff08;切片&#xff09;颜色 1 需求 自定义瓦片&#xff08;切片&#xff09;颜色 2 分析 使用各种source的tileLoadFunction属性 4 实现 修改前&#xff1a; 修改后&#xff1a; <template><div id"map&quo…

Linux内核虚拟内存空间

Linux中进程的虚拟内存空间被分为用户态内存空间和内核态内存空间&#xff0c;在32位和64位操作系统中&#xff0c;虚拟内存的布局如下&#xff1a; 32位 内核态虚拟内存空间是所有进程共享的&#xff0c;不同进程进入内核态之后看到的虚拟内存空间全部是一样的。 什么意思呢&…

【研究】美国2023年就业增长可能是假的?加州已经爆出大雷

美国就业市场可能比火热的非农数据所描绘的场面惨淡得多。 去年以来&#xff0c;美国劳动力市场顶着二十多年来最高的利率一路高歌猛进&#xff0c;让许多市场分析人士开始怀疑数据的准确性。尽管官方报告显示就业形势向好&#xff0c;但越来越多的证据表明&#xff0c;实际情…

RK3568技术笔记十三 Ubuntu的编译

Ubuntu文件系统编译 在编译前需要按照前面的方法初始化编译环境&#xff0c;否则会导致编译失败&#xff08;若配置过则无需重复配置&#xff09;。 按下述方法编译的Ubuntu系统&#xff0c;用户名是&#xff1a;dianyu 密码&#xff1a;1 编译Ubuntu&#xff0c;执…

electron-builder创建桌面应用

一、利用vue-cli创建vue项目 创建electron方式有很多&#xff0c;这里说的是vuecli创建的项目&#xff0c;通过安装electron-builder插件创建 也可以通过electron-vite构建项目 &#xff1a; https://cn.electron-vite.org/guide/ vue-cli构建 vue create XXX项目名 //按提示操…

​Chrome插件:React Developer Tools为React开发调试而生

React Developer Tools 是什么? 它是允许在Chrome和Firefox开发者工具中检查React组件层次结构的扩展插件。 插件源码下载 源码下载地址:GitHub - facebook/react-devtools at v3 下载完成以后执行红框中的代码,下载react-devtools 源码,源码如下图所示: 插件打包 当前n…

为什么javaer认为后台系统一定要用java开发?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;公司有两个开发团队&#xf…

开源创新框架MoA,可极大增强大模型的能力

知名大模型平台Together AI开源了一个创新框架Mixture-of-Agents&#xff08;简称&#xff0c;MoA&#xff09;。 MoA可以显著提升大模型的生成内容的能力和安全性&#xff0c;同时降低对AI算力的需求。研究人员在AlpacaEval 2.0、MT-Bench和FLASK等多个基准上进行了全面评测&…

Vatee万腾平台:一站式智慧服务,让生活更美好

在数字化浪潮席卷全球的今天&#xff0c;我们生活的方方面面都在经历着前所未有的变革。Vatee万腾平台凭借其一站式智慧服务&#xff0c;正成为推动这场变革的重要力量&#xff0c;让我们的生活变得更加美好。 Vatee万腾平台&#xff0c;作为一家专注于提供智慧服务的领军企业&…

趣测系统搭建APP源码开发,娱乐丰富生活的选择!

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 趣测系统提供了一个集合多种有趣测试的平台&#xff0c;如心理测试和星座测试等&#xff0c;这些测试内容富有趣味性和娱乐性&#xff0c;能够帮助大众在忙碌的生活中找到放松和娱乐的时刻…

品牌进行3D数字化转型,有哪些优势?

各行业都在经历着从增量市场向存量市场的转变&#xff0c;同时用户的消费观念也日趋成熟&#xff0c;更加注重产品的体验和服务质量。 无论是线上购物平台还是线下实体门店&#xff0c;提供个性化和增强体验感的产品与服务已成为未来发展的核心驱动力&#xff0c;品牌转型也迫…

openlayer 我的标注功能

背景&#xff1a; 通过openlayer库&#xff0c;可以在地图上实现绘制点、线、面。 并把绘制的结果添加到我的标注的弹框。 我的标注功能&#xff0c;包括&#xff1a;我的标注查询结果的数据展示&#xff1b;添加分组&#xff1b;添加我的标注&#xff1b;编辑分组、删除分组&a…

6.26.3 基于Transformer的深度神经网络在数字乳腺断层合成图像上的乳腺癌分类

开发一种有效的深度神经网络模型&#xff0c;该模型结合了相邻图像部分的上下文&#xff0c;以检测数字乳腺断层合成(DBT)图像上的乳腺癌。 数字乳房断层合成(DBT)是一种医学成像技术&#xff0c;其中检测器围绕患者以有限角度旋转并记录多幅图像。然后将这些图像重建为二维(2D…

猫头虎 最新 Linux 系统查看服务器温度的方法大全

猫头虎 &#x1f42f;最新 Linux 系统查看服务器温度的方法大全&#x1f31f; 摘要 本文详细介绍了如何在 Linux 系统中查看服务器温度的方法&#xff0c;涵盖了多种工具和命令的使用&#xff0c;包括 lm-sensors、hwmon、thermal 以及其他相关工具。 这些方法适用于各种 Lin…

制作高校专属PPT时,如何将校徽设置成透明底色?无须PS

目录 示例&#xff1a;以清华大学为例 1必应搜索“清华大学校徽” 2保存清华大学校徽及校名。 3将校徽导入到PPT中 ​4 选中校徽&#xff0c;然后依次选择“图片格式”-->颜色-->设置透明色​编辑 5出现“画笔”&#xff0c;由于截图的缘故&#xff0c;画笔没有在截…

简单的同步压缩变换脊线检测(PythonMATLAB)

由于 Heisenberg 测不准原理&#xff0c;线性时频变换方法无法同时在时间和频率方向达到最佳的时频分布&#xff0c;窗函数和小波函数的选择也降低了各方法的自适应性。同样&#xff0c;二次型变换方法难以在去除交叉干扰项的同时保证较高的能量集中度。为了解决该问题&#xf…

vue表头字段添加鼠标悬浮提示

<el-table-column prop"jfScore" align"center" min-width"100px"><template slot"header" slot-scope"scope"><div><span>信用积分</span><el-tooltip:aa"scope"class"it…

Jetpack - Navigation: 一个全面的安卓开发指南

引言 导航是任何安卓应用程序中至关重要的部分。无缝地在不同的屏幕之间移动并传递数据&#xff0c;对于流畅的用户体验来说至关重要。在这篇博客中&#xff0c;我们将深入探讨Jetpack的Navigation组件&#xff0c;这个强大的框架旨在简化安卓应用中的导航。我们将涵盖从设置和…

TCP、UDP详解

TCP和UDP是传输层的两个重要协议&#xff0c;也是面试中经常会被问到的&#xff0c;属于面试高频点。今天&#xff0c;我们来学习这两个协议。 1.区别 1.1 概括 TCP&#xff1a;有连接&#xff0c;可靠传输&#xff0c;面向字节流&#xff0c;全双工 UDP&#xff1a;无连接…