3万字详细解析清华大学最新综述工作:大模型高效推理综述

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2024.06.10北京

深度学习自然语言处理原创作者:fanmetasy

LLM领域经历了显著的增长和显著的成就。许多开源llm已经出现,包括gpt-系列(GPT-1,GPT-2和GPT-3),OPT,lama系列(LLaMA,LLaMA2,BaiChuan2,Vicuna,LongChat),BLOOM,FALCON,GLM和Mtaistral[12],他们用于学术研究和商业落地。大模型的成功源于其处理各种任务的强大能力,如神经语言理解(NLU)、神经语言生成(NLG)、推理和代码生成[15],从而实现了ChatGPT、Copilot和Bing等有影响力的应用程序。越来越多的人认为[16]LMM士的崛起和取得的成就标志着人类向通用人工智能(AGI)迈进了一大步。

然而,LLM的部署并不总是很顺利。如图1所示,在推理过程中,使用LLM通常需要更高的计算成本,内存访问成本和内存占用。(根本原因分析见Sec.2.3)在资源受限的场景中,推理效率也会降低(如,延迟,吞吐量,功耗和存储)。这对LLM在终端以及云场景这两方面的应用带来了挑战。例如,巨大的存储需求使得在个人笔记本电脑上部署70B参数量的模型来用于辅助开发是不切实际的。此外,如果将LLM用于每一个搜索引擎请求,那么低吞吐量将带来巨大的成本,从而导致搜索引擎利润的大幅减少。

目前,综述[17],[18],[19],[20],[21],[22]均涉及LLM领域。这些综述主要集中在LLM效率的不同方面,但提供了进一步改进的机会。Zhu等[17],Park等[18]和Wang等。[19]将综述的重心放在,模型压缩技术上,是模型级别的优化。Ding等[20]将数据和模型架构作为研究重心。Miao等[21]从机器学习系统(MLSys)研究的角度研究LLM的有效推理。相比之下,本文提供了一个更全面的研究范围,在三个层次上解决优化:数据级别、模型级别和系统级别,同时也囊括了最近的研究工作。而Wan等[22]和Xu等[23]也对高效LLM研究进行了全面综述。基于在几个关键的子领域如模型量化和模型server端中进行的实验分析,本文通过整合对比实验,提供实际的见解和建议。如表1所示,展示了各种综述之间的比较。

语言建模作为语言模型的基本功能,包括对单词序列概率进行建模并预测后续单词的概率分布。近年来研究人员发现增加语言模型规模不仅提高了语言建模能力,除了传统的NLP任务之外,还产生了处理更复杂任务的能力[24],这些规模更大的语言模型是被称为大模型(LLMs)。

主流大模型是基于Transformer架构[25]设计的。典型的transformer架构的模型由数个堆叠的transformerblock组成。通常,一个transformerblock由一个多头自注意力(MHSA)模块,一个前馈神经网络(FFN)和一个LayerNorm(LN)层组成。每个transformerblock接收前一个transformerblock的输出特征,并将其作为输入,并将特征串行送进每个子模块中,最后输出。特别的是,在第一个transformerblock前,需要用一个tokenizer将传统的输入语句转化为token序列,并紧接着使用一个embedding层将token序列转化为输入特征。且一个额外的位置embedding被加入到输入特征中,来对输入token序列的token顺序进行编码。

Transformer架构的核心是自注意力机制,其在多头自注意力(MHSA)模块被使用。MHSA模块对输入进行线性变换,得到了Q,K,V向量,如公式(1)所示:

其中为输入特征,为第个注意力头的变换矩阵。接着自注意力操作被应用于每个()元组并得到第个注意力头的特征,如公式(2)所示:

其中是query(key)的维度。自注意力计算包含矩阵乘法,其计算复杂度是输入长度的二次方。最后,MHSA模块将所有注意力头的特征进行拼接,并对他们做映射矩阵变换,如公式(3)所示:

其中是映射矩阵。自注意力机制可以让模型识别不同输入部分的重要性,而不用去考虑距离,也已就此可以获得输入语句的长距离依赖以及复杂的关系。

FFN作为transformerblock的另一个重要模块,被设置在多头自注意力(MHSA)模块之后,且包含两个使用非线性激活函数的。其接收MHSA模块的输出特征如公式(4)所示,进行计算:

其中,和为两个线性层的权重矩阵,为激活函数。

KV缓存技术,包括在多头自注意(MHSA)块内,存储和复用前面的token对应的key向量(K)和value向量(V)。此项技术在大模型推理以中得到了广泛的应用,因为其对文本生成延迟实现了巨大的优化。基于此项技术,大模型的推理过程可以划分为两个阶段:

①ModelSize:主流大模型通常包含数十亿甚至万亿的参数。例如,LLaMA-70B模型包括700亿参数,而GPT-3为1750亿参数。在推理过程中,模型大小对计算成本、内存访问成本和内存使用产生了显著影响。

②AttentionOperation:如2.1和2.2中所述,prefilling阶段中,自注意操作的计算复杂度为输入长度的2次方,因此输入长度的增加,计算成本、内存访问成本和内存使用都会显著增加。

③DecodingApproach:自回归解码是逐token的进行生成。在每个decodingstep,所有模型权重都来自于GPU芯片的片下HBM,导致内存访问成本巨大。此外,KV缓存随着输入长度的增长而增长,可能导致内存分散和不规则内存访问。

数据级别的优化今年来的工作可以划分为两类,如优输入压缩或者输出组织。输入压缩技术直接缩短了模型的输入长度来减少推理损失。同时输出组织技术通过组织输出内容的结构来实现批量(并行)推理,此方法可以提升硬件利用率和降低模型的生成延迟。

提示词总结的核心思想是在保持相似的语义信息的前提下,将原有提示词浓缩为更短的总结。这些技术还可以作为提示词的在线压缩方法。与前面提到的保留未裁剪标记的提示词裁剪技术不同,这一行方法将整个提示符转换为总结。RECOMP[34]引入了一个抽象压缩器(AbstractiveCompressor),其将输入问题和检索到的文档作为输入,生成一个简洁的摘要。具体来说,它从大规模的大模型中提取轻量级压缩器来进行总结工作。SemanticCompression提出了一种语义压缩方法。它首先将文本分解成句子。然后,它根据主题将句子分组,然后总结每组中的句子。

这种压缩技术的核心思想是设计一个比原始提示词短得多的软提示词,作为大模型的输入。软提示词被定义为一系列可学习的连续token。有些技术对固定前缀的提示词(如系统提示词、特定任务提示词)采用脱机压缩。例如,PromptCompression训练软提示来模拟预定的系统提示词。该方法包括在输入token之前添加几个软token,并允许在反向传播期间对这些软token进行调整。在对提示数据集进行微调之后,软token序列充当软提示词。Gisting引入了一种方法,使用前缀词调优将特定任务的提示词压缩为一组简洁的gisttoken。鉴于特定任务的提示会因任务而异,前缀词调优将针对每个任务单独使用。为了提高效率,Gisting进一步引入了一种元学习方法,用于预测新的未见过的gisttoken基于先前任务中的的gisttoken。

其他技术对每个新的输入提示词进行在线压缩。例如,AutoCompressors训练一个预训练的语言模型,通过无监督学习将提示词压缩成总结向量。ICAE训练了一个自动编码器将原始上下文压缩到短记忆槽中。具体来说,ICAE采用适应LoRA的大模型作为编码器,并使用目标大模型作为解码器。在输入token之前添加一组记忆token并将其编码到记忆槽中。

思维骨架(Skeleton-of-Thought,SoT)是这个方向的先驱。SoT背后的核心思想是利用大模型的新兴能力来对输出内容的结构进行规划。具体来说,SoT包括两个主要阶段。在第一阶段(即框架阶段),SoT指导大模型使用预定义的“框架提示词”生成答案的简明框架。例如,给定一个问题,如“中国菜的典型类型是什么”,这个阶段的输出将是一个菜的列表(例如,面条,火锅,米饭),没有详细的描述。然后,在第二阶段(即点扩展阶段),SoT指导大模型使用“点扩展提示符”来同时扩展骨架中的每个点,然后将这些拓展连接起来最终形成最后答案。当应用于开源模型时,可以通过批推理执行点扩展,这可以提升硬件利用率,并在使用相同的计算资源的前提下减少总体生成延迟,以减少额外的计算。SoT的推理流程展示如图6所示:

SGD进一步扩展了SoT的思想,其将子问题点组织成一个有向无环图(DAG),并在一个回合内并行地回答逻辑独立的子问题。与SoT类似,SGD还利用大模型的新兴能力,通过提供自己制作的提示词和几个示例来生成输出结构。SGD放宽了不同点之间严格的独立性假设,以提高答案的质量,特别是对于数学和编码问题。与SoT相比,SGD优先考虑答案质量而不是速度。此外,SGD引入了一个自适应的模型选择方法,来根据其估计的复杂性为每个子问题分配最优模型大小,从而进一步提高效率。

APAR采用了与SoT类似的思想,利用大模型输出特殊的控制token(如,[fork])来自动动态的触发并行解码。为了有效地利用输出内容中固有的可并行化结构并准确地生成控制token,APAR对大模型进行了微调,这些大模型是精心设计的数据上进行的,这些数据是在特定树结构中形成的。因此,APAR在基准测试中实现1.4到2.0倍的平均加速,且对答案质量的影响可以忽略不计。此外,APAR将他们的解码方法与推测解码技术(如Medusa)和推理框架(如vLLM)结合,来进一步改进推理延迟和系统吞吐量。

SGLang在Python特征原语中引入了一种领域特定语言(DSL),其能够灵活地促进大模型编程。SGLang的核心思想是自动分析各种生成调用之间的依赖关系,并在此基础上进行批量推理和KV缓存共享。使用该语言,用户可以轻松实现各种提示词策略,并从SGLang的自动效率优化(如SoT,ToT)中收益。此外,SGLang还介绍并结合了几种系统级别的编译技术,如代码移动和预取注释。

随着大模型的功能越来越强大,是有可能能利用它们来压缩输入提示词或构建输出内容的。输出组织方法的最新进展也证明了利用大模型将输出内容组织成独立点或依赖图的有效性,从而便于批量推理以改善生成延迟。这些方法利用了输出内容中固有的可并行结构,使大模型能够执行并行解码,从而提高硬件利用率,从而减少端到端的生成延迟。

最近,各种提示词pipeline(如,ToT,GoT)和Agent框架正在出现。虽然这些创新提高了大模型的能力,但它们也增加了输入prompt的长度,导致计算成本增加。为了解决这个问题,采用输入压缩技术来减少输入长度是一种很有希望的解决方案。同时,这些pipeline和框架自然地为输出结构引入了更多的并行性,增加了并行解码和跨不同解码线程来共享KVcache的可能性。SGLang支持灵活的大模型编程,并为前端和后端协同优化提供了机会,为该领域的进一步扩展和改进奠定了基础。总之,数据级别优化,包括输入压缩和输出组织技术,在可预见的将来,为了提高大模型推理效率,将变得越来越必要。

除了优化现有框架的推理效率外,一些研究还侧重于直接设计更高效的智能体框架。例如,FrugalGPT提出了一个由不同大小的大模型组成的模型级联,如果模型对答案达到足够的确定性水平,那么推理过程就会提前停止。该方法通过利用分层的模型体系结构和基于模型置信度估计的智能推理终止来提高效率。与模型级别的动态推理技术(第5.2.5节)相比,FrugalGPT在pipeline级别执行动态推理。

在这一方面,许多研究都集中在将混合专家(mixture-of-experts,MoE)技术集成到大模型中,以提高大模型的性能,同时保持计算成本。MoE的核心思想是动态地分配各种预算,在面对不同的输入token时。在基于MoE的Transformers中,多个并行的前馈审计网络(FFN),即专家,与可训练的路由模块一起使用。在推理过程中,模型选择性地为路由模块控制的每个token激活特定的专家。

一些研究集中研究FFN专家的工作,主要是在优化专家权值的获取过程或使专家更轻量化以提高效率。例如,MoEfication设计了一种方法,使用预训练的权重将非MoE大模型转换为MoE版本。这种方法免去了对MoE模型进行昂贵的预训练的需要。为了实现这个技术,MoEfication首先将预训练大模型的FFN神经元分成多组。在每一组中,神经元通常同时被激活函数激活。然后,它以专家的身份重组每组神经元。SparseUpcycling引入了一种方法,直接从密集模型的checkpoint中初始化基于MoE的LLM的权重。在这种方法中,基于MoE的LLM中的专家是密集模型中FFN的精确复制品。通过使用这种简单的初始化,SparseUpcycling可以有效地训练MoE模型以达到高性能。MPOE提出通过矩阵乘积算子(MatrixProductOperators,MPO)分解来减少基于MoE的大模型的参数。该方法将FFN的每个权重矩阵分解为一个包含公共信息的全局共享张量和一组捕获特定特征的局部辅助张量。

①Multi-QueryAttention。Multi-QueryAttention(MQA)通过共享横跨不同注意力头的KV缓存来优化attention操作。这项策略有效的减少了推理时的内存访问成本和内存使用,对改善Transformer模型的性能带来了帮助。如第2.2节所述,transformer类型的大模型通常采用多头注意力(MHA)操作。该操作需要在解码阶段为每个注意力头存储和检索KV对,导致内存访问成本和内存使用大幅增加。而MQA通过在不同的头上使用相同的KV对,同时保持不同的Q值来解决这一问题。通过广泛的测试,MQA已经被证明可以显著降低内存需求,且对模型性能的影响很小,这使它成为一个提高推理效率的关键技术。Grouped-queryattention(GQA)进一步扩展了MQA的概念,它可以看作是MHA和MQA的混合。具体来说,GQA将注意力头分成不同的组,然后为每个组存储一组KV值。这种方法不仅保持了MQA在减少内存开销方面的优势,还强化了推理速度和输出质量之间的平衡。

②Low-ComplexityAttention。Low-ComplexityAttention方法旨在设计新的机制来降低每个注意力头的计算复杂度。为了简化讨论,这里假设Q(查询)、K(键)和V(值)矩阵的维度是相同的,即。由于下面的工作不涉及像MQA那样改变注意头的数量,此处的讨论集中在每个头内的注意力机制。如2.2节所述,传统注意力机制的计算复杂度为,相当于随着输入长度增长,呈二次增长。为了解决低效率问题,Kernel-basedAttention和Low-RankAttention方法被提出,此方法将复杂度降低到。

除了聚焦于优化注意力操作之外,最近的研究还创新地设计了高效而有效的序列建模体系结构。表2比较了一些代表性的非transformer架构模型的性能。在训练和推理过程中,这些架构的模型在序列长度方面表现出小于二次方的计算复杂度,使大模型能够显着增加其上下文长度。

StateSpaceModel:状态空间模型(SSM)在某些NLP和CV任务中的建模能力极具竞争力。与基于注意力的Transformer相比,SSM在输入序列长度方面表现出线性的计算和存储复杂度,这提高了其处理长上下文序列的能力。本篇综述中,SSM是指一系列满足以下两个属性的模型架构:

(1)它们基于HiPPO和LSSL提出的以下公式对序列进行建模:

其中,表示转移矩阵。为中间状态,为输入序列。

(2)他们基于HiPPO理论设计了转移矩阵A。具体来说,HiPPO提出通过将输入序列映射到一组多项式基上,将其压缩为系数序列(即)。

另一类研究方向是基于SSM设计更好的模型架构。GSS和BiGS结合了门控注意力单元(GAU)和SSM。它们将GAU中的注意力操作替换为SSM操作。BST将SSM模型与提出的使用强局部感应偏置的BlockTransformer相结合。H3观察到SSM在召回较早的token和跨序列比较token方面很弱。为此,它建议在标准SSM操作之前增加一个移位SSM操作,用于直接将输入令牌移位进入状态。MambaFormer结合了标准Transformer和SSM模型,将Transformer中的FFN层替换为SSM层。Jamba引入了另一种方法,通过在SSM模型中添加四个Transformer层来组合Transformer和SSM模型。DenseMamba探讨了传统SSM中隐藏状态退化的问题,并在SSM体系结构中引入了稠密连接,以在模型的更深层中保存细粒度信息。BlackMamba和MoE-mamba提出用混合专家(Mixture-of-Experts,MoE)技术增强SSM模型,在保持模型性能的同时优化训练和推理效率。

其中,和Transformer一样,分别为quey,key,vakue,为一个可学习的成对位置偏差和为一个非线性函数。具体来说,它进一步将位置偏差进行重参数化,,因此可以将公式(8)重写为递归形式。这样,RWKV可以将Transformer的有效并行化训练特性和RNN的高效推理能力结合起来。

另一方面,在推理过程中,大多数研究选择循环架构来保持prefilling阶段的线性计算复杂度并在decoding阶段保持上下文长度不可知。而且,在decoding阶段,这些新颖的体系结构消除了缓存和加载历史token的特性的需要(类似于基于Transformer的语言模型中的KV缓存),从而显著节省了内存访问成本。

模型压缩包括一系列旨在通过修改预训练模型的数据表示(例如,量化)或改变其模型架构(例如,稀疏化、结构优化和动态推理)来提高其推理效率的技术,如图8所示。

量化是一种广泛使用的技术,通过将模型的权重和激活从高位宽表示转换为低位宽表示来减少大模型的计算和内存成本。具体来说,许多方法都涉及到将FP16张量量化为低位整型张量,可以表示为如下公式:

其中表示16位浮点(FP16)值,表示低精度整数值,表示位数,和表示缩放因子和零点。

在下面,本文从效率分析开始,说明量化技术如何减少大模型的端到端推理延迟。随后,再分别详细介绍两种不同的量化工作流程:Post-TrainingQuantization(PTQ)和Quantization-AwareTraining(QAT)。

Post-TrainingQuantization:PTQ涉及对预训练模型进行量化,而不需要再训练,这可能是一个昂贵的过程。尽管PTQ方法已经在较小的模型中得到了很好的探索,但是将现有的量化技术直接应用于大模型存在困难。这主要是因为与较小的模型相比,大模型的权重和激活通常表现出更多的异常值,并且具有更宽的分布范围,这使得它们的量化更具挑战性。总之,大模型的复杂特性,以其规模和复杂性为特征,需要用专门的方法来有效地处理量化过程。大模型中异常值和更宽的分布范围的存在需要开发量身定制的量化技术,以便在不影响模型性能或效率的情况下处理这些独特的特征。

为了减少计算量,许多方法采用高效参数微调(parameter-efficienttuning,PEFT)策略来加速QAT。QLoRA将大模型的权重量化为4位,随后在BF16中对每个4位权重矩阵使用LoRA来对量化模型进行微调。QLoRA允许在一个只有30GB内存的GPU上对65B参数的大模型进行有效的微调。QALoRA则提出在QLoRA中加入分组量化。作者观察到QLoRA中量化参数的数量明显小于LoRA参数的数量,这会导致量化与低秩自适应之间的不平衡。他们建议,组级别的操作可以通过增加专用于量化的参数数量来解决这个问题。此外,QA-LoRA可以将LoRA项合并到相应的量化权矩阵中。LoftQ指出,在QLoRA中用零初始化LoRA矩阵对于下游任务是低效的。作为一种替代方案,LoftQ建议使用原始FP16权重与量化权重之间差距的奇异值分解(SingularValueDecomposition,SVD)来初始化LoRA矩阵。LoftQ迭代地应用量化和奇异值分解来获得更精确的原始权重近似值。NormTweaking提出在量化后训练LayerNorm层,并使用知识蒸馏将量化模型的输出分布与FP16模型的输出分布进行匹配,达到类似LLM-QAT的效果,同时避免了较高的训练成本。

对比实验与分析:本综述的作者对不同场景下的weight-onlyquantization技术所产生的加速效果。作者使用了LLaMA-2-7B和LLaMA-2-13B,并使用AWQ将它们的权重量化至4-bit。作者使用NVIDIAA100进行实验,并使用TensorRT-LLM和LMDeploy这两个推理框架部署量化后的大模型。然后,作者评估了这些推理框架在不同的输入序列上实现的加速,这些序列是批大小和上下文长度不同的。prefilling延迟、decoding延迟端到端延迟的加速效果,如表4所示。

稀疏化是一种压缩技术,可以增加数据结构(如模型参数或激活)中零值元素的比例。该方法通过在计算过程中有效地忽略零元素来降低计算复杂度和内存占用。在应用到大模型中时,稀疏化通常应用于权重参数和注意力激活。这导致了权值修剪策略和稀疏注意力机制的发展。

权重修剪(WeightPruning):权值修剪系统地从模型中去除不太关键的权值和结构,旨在减少预填充阶段和解码阶段的计算和内存成本,而不会显著影响性能。这种稀疏化方法分为两种主要类型:非结构化修剪和结构化修剪。它们的分类基于修剪过程的粒度,如图10所示。

非结构化修剪以细粒度修剪单个权重值。与结构化修剪相比,它通常在对模型预测影响最小的情况下实现更高的稀疏度。然而,通过非结构化剪枝实现的稀疏模式缺乏高层次的规律性,导致不规则的内存访问和计算模式。这种不规律会严重阻碍硬件加速的潜力,因为现代计算架构针对密集、规则的数据进行了优化。因此,尽管实现了更高的稀疏度级别,但非结构化剪枝在硬件效率和计算加速方面的实际好处可能是有限的。

与非结构化修剪相比,结构化修剪以更粗的粒度操作,修剪模型中较大的结构单元,例如整个通道或层。这些方法直接促进了在传统硬件平台上的推理加速,因为它们与这些系统优化处理的密集、规则的数据范式保持一致。然而,结构化修剪的粗粒度通常会对模型性能产生更明显的影响。这类修剪标准还强制执行结构化修剪模式。LLM-Prune提出了一种任务不可知的结构化修剪算法。具体来说,它首先根据神经元之间的连接依赖关系识别出大模型中的偶联结构。然后,它根据设计良好的组级别的修剪度量来决定要删除哪些结构组。修剪后,进一步提出通过一个高校参数训练技术,如LoRA来恢复模型性能。ShearedLLaMA提出将原始大模型修剪为现有预训练大模型的特定目标架构。此外,它设计了动态批数据加载技术来提升post-training性能。

稀疏注意力(SparseAttention):Transformer多头自注意力(MHSA)组件中的稀疏注意技术可以策略性地省略某些注意运算,以提高注意运算的计算效率,主要是在预填充阶段。这些机制根据对特定输入数据的依赖程度分为静态和动态两类。

相比之下,动态稀疏注意力根据不同的输入自适应地消除激活值,通过实时监测神经元的激活值来绕过对神经元的影响可以忽略的计算,从而实现修剪。大多数动态稀疏注意方法采用动态token修剪方法,如图11(c)所示。Spatten、SeqBoat和AdaptiveSparseAttention利用语言结构的固有冗余提出动态标记级修剪策略。Spatten通过汇总注意力矩阵列来评估每个单词的累积重要性,并在后面的层中从输入中对具有最小累积重要性的token进行修剪。SeqBoat训练了一个线性状态空间模型(StateSpaceModel,SSM),该模型带有一个稀疏的sigmoid函数,以确定每个注意力头需要修剪哪个token。Spatten和SeqBoat都对整个输入的无信息的token进行了修剪。自适应稀疏注意力在生成过程中逐渐修剪token。它去除了上下文中,在未来生成不再需要的部分。

此外,将每个token视为图节点,将token之间的注意力视为边,可以扩展静态稀疏注意力的视角。原始的全注意力机制等同于一个均匀最短路径距离为1的完整图。稀疏注意力通过其随机掩码引入随机边,有效地将任意两个节点之间的最短路径距离减小到,从而保持类似于完全注意的高效信息流。Diffuser利用图论的视角,通过多跳token关联来扩展稀疏注意的接受场。它还从扩展图属性中获得灵感,以设计更好的稀疏模式,以近似全注意力的信息流。

除了注意力级和token级的稀疏性之外,注意力修剪的范围扩展到各种粒度。Spatten还将修剪从token粒度扩展到注意力头粒度,消除了不必要的注意力头的计算,以进一步减少计算和内存需求。

低秩分解(LowRankFactorization):低秩分解(LRF)或低秩分解(LowRankDecomposition)的目的是用两个低秩矩阵和近似一个矩阵:

其中比和小得多。这样,LRF可以减少内存使用,提高计算效率。此外,在大模型推理的解码阶段,内存访问成本是解码速度的瓶颈。因此,LRF可以减少需要加载的参数数量,从而加快解码速度。LoRD显示了压缩大模型的潜力,而不会通过LRF大幅降低性能。具体来说,采用奇异值分解(SVD)对权重矩阵进行因式分解,成功地将一个包含16B个参数的大模型压缩为12.3B,性能小幅度下降。TensorGPT引入了一种使用Tensor-TrainDecomposition来压缩embedding层的方法。每个tokenembedding都被视为矩阵乘积状态(MatrixProductState,MPS),并以分布式方式高效计算。LoSparse结合了LRF和权值剪枝在LLM压缩中的优点。通过利用低秩近似,LoSparse降低了直接进行模型修剪通常会丢失太多表达神经元的风险。LPLR和ZeroQuant-V2都提出了对权矩阵进行LRF和量化同时压缩的方法。DSFormer提出将权重矩阵分解为半结构化稀疏矩阵与一个小型密集型矩阵的乘积。ASVD设计了一个激活感知的奇异值分解方法。该方法包括在应用奇异值分解进行矩阵分解之前,根据激活分布缩放权重矩阵。ASVD还包括通过一个搜索进程确定每个层的合适的截断秩。

知识蒸馏(KnowledgeDistillation,KD)是一种成熟的模型压缩技术,其中来自大型模型(称为teacher模型)的知识被转移到较小的模型(称为student模型)。在大模型的背景下,KD使用原始的大模型作为teacher模型来提炼较小的大模型。目前许多研究都集中在如何有效地将大模型的各种能力转移到更小的模型上。在这个领域,方法可以分为两种主要类型:白盒KD和黑盒KD(如图12所示)。

动态推理涉及在推理过程中自适应选择模型子结构,其以输入数据为条件。此小节重点介绍earlyexiting的技术,这些技术使大模型能够根据特定的样本或token在不同的模型层停止其推理。值得注意的是,虽然MoE技术(在第5.1.1节中讨论)也会在推理过程中调整模型结构,但它们通常涉及昂贵的预训练成本。相比之下,这些技术只需要训练一个小模块来确定何时结束推理。本文将此类研究分为两大类:样本级别的earlyexiting和token级别的earlyexiting(如图13所示)。

样本级别:样本级别的earlyexiting技术侧重于确定用于单个输入样本的大模型的最佳大小和结构。一种常见的方法是在每一层之后使用额外的模块来扩展大模型,利用这些模块来决定是否在特定层终止推理。FastBERT,DeeBERT,MP和MPEE直接训练这些模块来根据当前层的特征做出决策(例如,输出0继续或输出1停止)。GlobalPast-FutureEarlyExit提出了一种方法,利用来自前一层和后一层的语言信息丰富这些模块的输入。考虑到在推理过程中不能直接访问未来层的特征,论文训练了一个简单的前馈层来估计这些未来特征。PABEE训练模块来作为直接预测的输出头,建议在预测保持一致时终止推理。HASHEE采用了一种非参数决策方法,该方法基于相似样本应在同一层退出推理的假设。

Token级别:在大模型推理的decodig阶段,依次生成token,token级别的earlyexiting技术旨在优化用于每个输出token的大模型的大小和结构。CALM在每个Transformer层之后引入earlyexit分类器,训练它们输出置信度分数,以确定是否在特定层停止推理。值得注意的是,在self-attention模块中,计算每层当前token的特征依赖于同一层中所有先前token的特征(即KVcache)。为了解决由于先前tokenearlyexit而导致KVcache丢失的问题,CALM建议直接将该特征从现有层复制到后续层,实验结果显示只有轻微的性能下降。SkipDecode解决了先前早期存在的方法的局限性,这些方法阻碍了它们对批处理推理和KVcache的适用性,从而限制了实际的加速增益。对于批处理推理,SkipDecode为批处理中的所有token提出了一个统一的退出点。对于KVcache,SkipDecode确保了exitpoint的单调减少,以防止KV缓存的重新计算,从而促进了推理过程中的效率提高。

除了采用单独的模型压缩技术外,一些研究还探索了不同方法的组合来压缩大模型,利用各自的优势来提高效率。例如,MPOE将权重矩阵分解专门应用于基于MoE的大模型中的专家前馈网络(FFNs),目的是进一步降低内存需求。LLM-MQ利用权值稀疏性技术在模型量化过程中保护权值异常值,从而最大限度地减少量化误差。LPLR侧重于量化低秩分解权重矩阵,以进一步降低大模型推理过程中的内存占用和内存访问成本。此外,LoSparse将低秩分解与权值剪枝相结合,利用剪枝增强低秩近似的多样性,同时利用低秩分解保留重要权值,防止关键信息丢失。这些方法强调了集成多种压缩技术以更好地优化大模型的潜力。

目前对推理引擎的优化主要在于加速模型向前推理过程。对大模型推理中的主要算子和计算图进行了高度优化。此外,为了在不降低性能的前提下提高推理速度,推测解码技术也被提出。

线性计算优化:线性算子在大模型推理、特征投影和前馈神经网络(FFN)中发挥着关键作用。在传统神经网络中,线性算子可以抽象为通用矩阵-矩阵乘法(GeneralMatrix-MatrixMultiplication,GEMM)运算。然而,对于大模型,decoding方法的应用导致维度的明显降低,与传统的GEMM工作负载不同。传统GEMM的底层实现得到了高度优化,主流大模型推理框架(例如,DeepSpeed,vLLM,OpenPPL等)主要调用cuBLAS为线性算子提供的GEMMAPI接口。

如果没有针对降低维数的GEMM明确定制的实现,decoding过程中的线性计算将会效率低下。在最新版本的TensorRT-LLM中可以观察到解决该问题的issue。它引入了专用的通用矩阵向量乘法(GeneralMatrix-VectorMultiplication,GEMV)实现,潜在地提高了decoding步骤的效率。最近的研究FlashDecoding++做了进一步的改进,在解码步骤中处理小批量数据时,解决了cuBLAS和CUTLASS库的低效率问题。该研究的作者首先引入了FlatGEMM操作的概念,以高度降低的维度(FlashDecoding++中的维数<8)来表示GEMM的工作负载。由于FlatGEMM具有新的计算特性,传统GEMM的平铺策略需要进行修改。作者观察到,随着工作负载的变化,存在两个问题:低并行性和内存访问瓶颈。

为了解决这些问题,FlashDecoding++采用了细粒度平铺策略来提高并行性,并利用双缓冲技术来隐藏内存访问延迟。此外,当前经典大模型(例如,Llama2,ChatGLM)中的线性操作通常具有固定的形状,FlashDecoding++建立了启发式选择机制。这个机制根据输入大小在不同的线性运算符之间进行动态地选择转换。这些选项包括FastGEMV、FlatGEMM和由cuBLAS库提供的GEMM。这种方法确保为给定的线性工作负载选择最有效的计算操作,从而可能导致更好的端到端性能。

核融合技术被证明对大模型推理是有效的,具有上述所有优点。FlashAttention将注意力运算符表述成一个单一的内核,消除了访问注意力结果的开销。基于注意力算子是内存有限的这一事实,内存访问的减少能有效地转化为运行时加速。ByteTransformer和DeepSpeed提出将包括残差加法、层模和激活函数在内的轻量级算子融合到前线性算子中,以减少内核启动开销。

1)草稿构建:采用草稿模型,以并行或自回归的方式生成多个后续token,即Drafttoken。2)草案验证:利用目标模型在单个大模型推理步骤中计算所有草稿token的条件概率,随后依次确定每个草稿token的接受程度。接受率表示每个推理步骤接受的草稿token的平均数量,是评估推测解码算法性能的关键指标。

推测解码确保了输出与自回归解码方法的质量对等。传统解码技术主要使用两个采样方法:greedysampling和nucleussampling。greedysampling涉及在每个解码步骤中选择概率最高的令牌来生成特定的输出序列。推测解码的最初工作,被称为BlockwiseParallelDecoding,旨在确保草草稿token与通过greedysampling的token实现精确匹配,从而保持输出令牌等价。相比之下,nucleussampling涉及从概率分布中抽样token,每次运行都会产生不同的token序列。这种多样性使得nucleussampling很受欢迎。为了在推测解码框架内容纳nucleussampling,已经提出了投机采样技术。投机采样保持输出分布不变,与nucleussampling的概率性质一致,以产生不同的标记序列。形式上,给定一个token序列和一个草稿token序列,投机采样策略以以下概率接受第i个草稿token:

其中和分别代表来自目标大模型和草稿模型的概率分布。如果第个token被接受,它设定为。另外,它退出草稿token的验证,并从下面的分布中进行的重采样:

基于投机采样,出现了几种变体,旨在验证多个草稿token序列。值得注意的是,在这种情况下,tokentreeverfier已成为一种广泛采用的验证策略。这种方法利用草稿token集的树状结构表示,并采用树注意力机制来有效地执行验证过程。

在推测解码方法中,草稿token的接受率受到草稿模型的输出分布与原始大模型的输出分布的一致程度的显著影响。因此,大量的研究工作都是为了改进草稿模型。DistillSpec直接从目标大模型中提取较小的草稿模型。SSD包括从目标大模型中自动识别子模型(模型层的子集)作为草稿模型,从而消除了对草稿模型进行单独训练的需要。OSD动态调整草稿模型的输出分布,以匹配在线大模型服务中的用户查询分布。它通过监视来自大模型的被拒绝的草稿token,并使用该数据通过蒸馏来改进草稿模型来实现这一点。PaSS提出利用目标大模型本身作为草稿模型,将可训练的token(look-aheadtoken)作为输入序列,以同时生成后续token。REST引入了一种基于检索的推测解码方法,采用非参数检索数据存储作为草稿模型。SpecInfer引入了一种集体提升调优技术来对齐一组草稿模型的输出分布通过目标大模型。Lookaheaddecoding包含大模型生成并行的生成n-grams来生成草稿token。Medusa对大模型的几个头进行微调,专门用于生成后续的草稿token。Eagle采用一种称为自回归头的轻量级Transformer层,以自回归的方式生成草稿token,将目标大模型的丰富上下文特征集成到草稿模型的输入中。

另一项研究侧重于设计更有效的草稿构建策略。传统的方法通常产生单一的草稿token序列,这对通过验证提出了挑战。对此,Spectr主张生成多个草稿token序列,并采用k-sequential草稿选择技术并发验证k个序列。该方法利用推测抽样,确保输出分布的一致性。类似地,SpecInfer采用了类似的方法。然而,与Spectr不同的是,SpecInfer将草稿token序列合并到一个“tokentree”中,并引入了一个用于验证的树形注意力机制。这种策略被称为“tokentreeverifier”。由于其有效性,tokentreeverifier在众多推测解码算法中被广泛采用。除了这些努力之外,StageSpeculativeDecoding和CascadeSpeculativeDrafting(CSDrafting)建议通过将投机解码直接集成到token生成过程中来加速草稿构建。

对比实验与分析:论文作者通过实验来评估推测解码方法的加速性能。具体来说,作者对该领域的研究进行了全面的回顾,并选择了其中6个已经开源的代码进行研究,分别是:SpeculativeDecoding(SpD)、LookaheadDecoding(LADE)、REST、Self-speculativeDecoding(SSD)、Medusa和Eagle。对于评估数据集,使用Vicuna-80对上述方法进行评估,该数据集包含80个问题,分为10类。这80个问题的平均结果作为输出。对于目标大模型,作者采用了五个主流的开源大模型,分别是Vicuna-7B-V1.3、Vicuna-13B-V1.3、Vicuna-33B-V1.3、LLaMA-2-7B和LLaMA-2-13B。作者展示了这5个大模型的评估指标范围。对于草稿模型,作者对SpD采用了两个个训练好的草稿模型,即LLaMA-68M和LLaMA-160M。对于其他推测解码方法,作者遵循它们提出的草稿构建方法和使用他们提供的权重。在评价指标方面,作者使用接受率和加速率,接受率是指接受token数与生成步数之比,加速比是指在确定输出总长度时,原始自回归解码的延迟与推测解码的延迟之比。

推理服务系统的优化主要在于提高处理异步请求的效率。优化了内存管理以容纳更多的请求,并集成了高效的批处理和调度策略以提高系统吞吐量。此外,提出了针对分布式系统的优化方法,以充分利用分布式计算资源。

在大模型服务中,KV缓存的存储决定了内存的使用,特别是当上下文长度很长时(参见第2.3节)。由于生成长度不确定,提前分配KVcache存储空间很难。早期的实现通常根据每个请求的预设最大长度预先分配存储空间。但是,在终止请求生成的时,这种方法会导致存储资源的大量浪费。为了解决这个问题,为了减少预分配空间的浪费,提出了为每个请求预测生成长度的上界。

但是,当不存在如此大的连续空间时,静态的KV缓存分配方式仍然是失败的。为了应对碎片化存储,vLLM提出以操作系统的样式,以分页的方式存储KV缓存。vLLM首先分配尽可能大的内存空间,并将其平均划分为多个物理块。当请求来临时,vLLM以不连续的方式动态地将生成的KV缓存映射到预分配的物理块。通过这种方式,vLLM显著减少了存储碎片,并在大模型服务中实现了更高的吞吐量。在vLLM的基础上,LightLLM使用了更细粒度的KV缓存存储,减少了不规则边界产生的浪费。LightLLM将token的KV缓存作为一个单元来处理,而不是一个块,因此生成的KV缓存总是使预分配的空间饱和。

当前优化的推理服务系统通常采用这种分页方式来管理KV缓存存储,从而减少冗余KV缓存的浪费。然而,分页存储导致注意力操作中的内存访问不规则。对于使用分页KV缓存的注意力算子,这就需要考虑KV缓存的虚拟地址空间与其对应的物理地址空间之间的映射关系。为了提高注意力算子的计算效率,必须对KV缓存的加载模式进行调整,以方便连续存储器访问。例如,在vLLM的PagedAttention中,对于Kcache,head大小维度的存储结构为16字节的连续向量,而FlashInfer为KV缓存编排了各种数据布局,并伴随着适当设计的内存访问方案。注意力算子的优化与页面KV缓存存储的结合仍然是推理服务系统发展中的一个前沿挑战。

每个请求的计算包含多个迭代,每个迭代表示预填充步骤或解码步骤。作者建议可以在迭代级别对不同的请求进行批处理。此工作在线性操作符中实现迭代级批处理,在序列维度中将不同的请求连接在一起。因此,与完成的请求相对应的备用存储和计算资源被及时释放。继ORCA之后,vLLM将该技术扩展到注意力计算,使不同KV缓存长度的请求能够批处理在一起。Sarathi、DeepSpeed-FastGen和SarathiServe进一步引入了一种split-and-fuse方法,将预填充请求和解码请求批处理在一起。具体来说,此方法首先在序列维度上拆分长预填充请求,然后将其与多个短解码请求批处理在一起。该方法平衡了不同迭代之间的工作负载,并通过消除新请求的延迟显著减少了尾部延迟。LightLLM也采用了split-and-fuse方法。

为了实现高吞吐量,大模型服务通常部署在分布式平台上。最近的工作还侧重于通过利用分布式特征来优化此类推理服务的性能。值得注意的是,预填充是计算密集型的,解码是内存密集型的,splitwise,TetriInfer和DistServe证明了分解请求的预填充和解码步骤的效率。这样,两个不同的阶段就可以根据各自的特点进行独立的处理。SpotServe设计用于在具有可抢占GPU实例的云上提供大模型服务。SpotServe有效地处理包括动态并行控制和实例迁移在内的挑战,并且还利用大模型的自回归特性来实现token级别的状态恢复。此外,Infinite-LLM将vLLM中的分页KV缓存方法扩展到分布式云环境。

过去的研究工作集中在优化Transformer架构,特别是优化注意力算子,通常采用稀疏方法来促进FPGA部署。与NVIDIAV100GPU相比,FACT加速器通过线性运算的混合精度量化和算法-硬件协同设计实现了卓越的能效,而且这些方法不是为生成式大模型量身定制的。

近期的工作,如ALLO突出了FPGA在管理内存密集型解码阶段方面的优势。强调了模型压缩技术对大模型高效FPGA部署的重要性。相反,DFX侧重于解码阶段优化,但缺少模型压缩方法,限制了可扩展性在更大的模型和更长的输入(最多1.5B模型和256个token)。ALLO建立在这些见解的基础上,进一步提供了一个可组合和可重用的高级合成(High-levelSynthesis,HLS)内核库。与DFX相比,ALLO的实现在预填充阶段展示了卓越的生成加速,在解码期间实现了比NVIDIAA100GPU更高的能效和加速。

FlightLLM也利用了这些见解,引入了一个可配置的稀疏数字信号处理器(DSP)链,用于各种具有高计算效率的稀疏模式。为了提高存储带宽利用率,提出了一种支持混合精度的片上译码方案。FlightLLM在Llama2-7B型号上实现了比NVIDIAV100SGPU高6.0倍的能效和1.8倍的成本效益,解码时的吞吐量比NVIDIAA100GPU高1.2倍。

作者对比了多个推理框架的性能,如表6所示。使用Llama2-7B(batchsize=1,输入长度=1k,输出长度=128)测量推理吞吐量。推理服务性能是在ShareGPT数据集上测量的最大吞吐量。两者都基于单个NVIDIAA10080GBGPU。在上述框架中,DeepSpeed、vLLM、LightLLM和TensorRT-LLM集成了推理服务功能,为来自多个用户的异步请求提供服务。作者还在表格中列出了每个框架的优化。作者还在表中列出了针对每个框架的优化。除了HuggingFace外,所有框架都实现了operator级别或图优化级别的优化以提高性能,其中一些框架还支持推测解码技术。请注意,作者测量所有框架的推理性能时,没有使用推测解码技术。推理吞吐量的结果表明,FlashDecoding++和TensorRT-LLM在覆盖主要算子和计算图的优化方面优于其他算法。在推理服务方面,各框架均采用细粒度、不连续存储方式进行KV缓存,并采用连续批处理技术提高系统利用率。与vLLM和LightLLM不同,DeepSpeed在调度中优先考虑解码请求,这意味着如果批处理中有足够的现有解码请求,则不会合并新请求。

系统级优化在不降低精度的同时提高了效率,因此在大模型推理实践中越来越普遍。对推理的优化也适用于服务。最近,operator优化已经与实际服务场景紧密结合,例如,专门为前缀缓存设计的RadixAttention和加速推测解码验证的treeattention。应用和场景的迭代将不断对operator的发展提出新的要求。

考虑到实际推理服务系统中固有的多方面目标,例如JCT、系统吞吐量和公平性,调度策略的设计相应地变得复杂。在请求长度不确定的大模型服务领域,现有文献通常依赖于预测机制来促进调度策略的设计。然而,目前的预测器的有效性达不到理想的标准,这表明在服务调度策略开发中存在改进和优化的潜力。

目前的研究在探索跨各种优化级别的高效大模型推理的边界方面取得了重大进展。然而,需要进一步的研究来提高大模型在实际场景中的效率。作者为数据级(第4.3节)、模型级(第5.3节)和系统级(第6.5节)的优化技术分析了有希望的未来方向。在本节中,作者总结了四个关键场景:AgentandMulti-ModelFramework、Long-ContextLLMs、EdgeScenarioDeployment和安Security-EfficiencySynergy,并对它们进行了更广泛的讨论。

AgentandMulti-ModelFramework:如4.3章所讨论,Agent和Multi-Model框架的最近工作,通过利用大模型的强大能力,显著提高了Agent处理复杂任务和人类请求的能力。这些框架在增加大模型计算需求的同时,在大模型输出内容的结构中引入了更多的并行性,从而为数据级和系统级优化(如输出组织技术)创造了机会。此外,这些框架自然地引入了一个新的优化级别,即pipeline级别,它具有在该级别上提高效率的潜力。

此外,越来越多的研究趋势侧重于将AI智能体扩展到多模态领域,通常使用多模态大模型(LargemultimodalModels,LMM)作为这些Agent系统的核心。为了提高这些新兴的基于LMM的智能体的效率,为LMM设计优化技术是一个很有前途的研究方向。

尽管它们效率很高,但与Transformer架构相比,这些新架构在各种能力(如上下文学习能力和远程建模能力)上的竞争力仍有待考察。因此,从多个角度探索这些新架构的功能并解决它们的局限性仍然是一个有价值的追求。此外,为各种场景和任务确定必要的上下文长度,以及确定将作为未来大模型基础支柱的下一代架构,这一点至关重要。

一些研究已经开启了这个有希望的方向。例如,MiniCPM通过沙盒实验来确定最优的预训练超参数。PanGu-π-Pro建议使用来自模型修剪的矩阵和技术来初始化预训练打磨谢谢的模型权重。MobileLLM在小型模型设计中采用了“深而薄”的架构,并提出了跨不同层的权重共享,在不增加额外内存成本的情况下增加层数。然而,小模型和大模型之间仍存在性能差距,需要未来的研究来缩小这一差距。未来,迫切需要研究如何识别边缘场景下的模型尺度,并探索各种优化方法在设计上的边界。

Security-EfficiencySynergy:除了任务性能和效率外,安全性也是大模型应用中必须考虑的关键因素。目前的研究主要集中在效率优化方面,没有充分解决安全考虑的操作。因此,研究效率和安全性之间的相互作用,并确定当前的优化技术是否会损害大模型的安全性是至关重要的。如果这些技术对大模型的安全性产生负面影响,一个有希望的方向是开发新的优化方法或改进现有的方法,以实现大模型的效率和安全性之间更好的权衡。

高效的大模型推理侧重于减少大模型推理过程中的计算、内存访问和内存成本,旨在优化诸如延迟、吞吐量、存储、功率和能源等效率指标。作者在本综述中提供了高效大模型推理研究的全面回顾,提出了关键技术的见解,建议和未来方向。首先,作者引入了包含数据级、模型级和系统级优化的分层分类法。随后,在这一分类方法的指导下,作者总结每个层次和子领域的研究。对于模型量化和高效服务系统等成熟的技术,作者进行了实验来评估和分析它们的性能。在此基础上,提出了实践建议。为该领域的从业者和研究人员提出建议并确定有前途的研究途径。

备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

THE END
1.算法设计与分析课程论文五篇范文在南通大学计算机科学与技术学院制定的软件工程专业卓越工程师的培养计划中,算法设计与分析被设置为一门核心必修课程。通过该门课程的系统授课,重点培养学生的计算机问题求解能力,该能力是软件工程专业学生成长为卓越工程师必备的一项核心竞争力。一个典型的计算机问题的求解一般需要经历5个阶段:①问题的分析和建模;②算法https://www.wendangwuyou.com/meiwen/syw/128688.html
2.哈工大2020秋算法设计与分析大作业(二)哈工大算法设计与分析作业哈工大2020秋算法设计与分析大作业(二) 正文 3 领域综述 4 方法不足与改进 4.1 方法不足 4.2 方法改进 4.3 改进结果理论分析 4.4 改进结果实验验证 4.4.1 实验设计 4.4.2 实验结果 4.4.3 实验结果分析 5 附录 3 领域综述 Online community search using thread structure https://blog.csdn.net/weixin_49577106/article/details/117375416
3.网络爬虫的电影数据可视化分析系统的设计与实现(综述+爬虫源码+随着信息技术的飞速发展,网络爬虫和数据可视化技术已经成为大数据分析领域的重要工具。在电影行业,通过爬取电影网站的数据,并结合机器学习算法进行分析,可以实现多维度的电影信息可视化,为观众、制片方和发行方提供有价值的参考信息。本文旨在综述基于网络爬虫的电影数据可视化分析系统的设计与实现过程,重点介绍如何使用Python实https://blog.51cto.com/cools/12829695
4.TCCT通讯Newsletter2017No.01一种基于非线性振荡器的步态轨迹自适应算法 自动化学报, 2016 Vol. 42 (12): 1951-1959 Abstract | PDF 自动化学报,2016年 第11期 目录 目录 自动化学报, 2016 Vol. 42 (11): 0-0 Abstract | PDF 论述与评论 李贤伟, 高会军 有限频域分析与设计的广义KYP引理方法综述 自动化学报, 2016 Vol. 42 (11https://tcct.amss.ac.cn/newsletter/2017/201701/journal.html
5.数据分析报告范文(精选10篇)分析范围。 分析时间。 如下图所示,分析目标除了主要包括三个方面外,还有备注一栏,这里备注的是计算周期问题。强调一点,我们做运营数据分析的时候通常都会拿更新前和更新后的数据进行比较,因此我们的设定的分析周期一般都会跟着游戏实际的更新情况走。 二、分析综述 https://mip.wenshubang.com/baogao/155767.html
6.量子计算综述报告量子计算机密码学约瑟夫森3)、密码分析破译 现有密码算法安全性均是基于数学,比如RSA公钥密码算法基于大数质因数分解,破译它即使是使用未来速度最快的传统计算机也无法完成这样的复杂计算任务,原因是计算一个数的质因数的复杂度呈指数式增长。因此,破译现有密码算法迫切需要超强的大数分解、复杂路径搜索等计算能力,这背后的价值无以衡量。 https://www.163.com/dy/article/GP6O5B960552NPC3.html
7.13种高维向量检索算法全解析!数据库顶会VLDB2021论文作者干货作为连接生产和科研的桥梁,Zilliz 研究团队一直与学界保持交流、洞察领域前沿。此次,王梦召来到 Z 星,从研究动机、算法分析、实验观测和优化讨论等维度展开讲讲最新的科研成果。 以下是他的干货分享,点击「阅读原文」可获得论文全文。 高维数据检索:基于近邻图的近似最近邻搜索算法实验综述 https://maimai.cn/article/detail?fid=1667460495&efid=0oRiBfZPD8xNqHnfGkCzrw
8.心电图人工智能软件技术审评指导原则(附全文)检测资讯(二)综述资料 1. 产品描述 1.1器械及操作原理描述 1.1.1工作原理 需详述产品的工作原理,例如:基于人工智能技术对心电图特征进行分析处理、对心律失常、心肌梗塞和ST-T异常自动识别等。对于软件安全性级别为中等、严重级别的产品,全新类型在软件研究资料中以算法为单位,提交每个人工智能算法或算法组合的算法研究报告;http://www.anytesting.com/news/1936081.html
9.数据分析综述:一文带你详细了解自动驾驶技术这样的表示可能存在几万条边,可以通过 Dijkstra 或 A* 寻找最短路径不太实用。有效的路径规划算法–如何在大陆规模的路网中,经过预处理,以毫秒的时间消耗返回最优路径是一个研究热点。 1.2 B. 行为决策 确定了驾驶路线后,Behavioral 层的作用是在任意时刻感知其他交通参与者的行为、基础设施信号、并遵守交通规则选https://www.jianshu.com/p/d4f5980f95ad
10.大连海事大学2020年招聘科研助理岗位表3.具有一定的算法仿真和分析能力。 联系人:胡青 电话:13387889389 邮箱:hq0518@dlmu.edu.cn 44 信息科学技术学院 研发助理 负责人:胡青 项目(平台)名称:辽宁省船用集成电路片上系统设计专业技术创新中心 1 1.海上通信联网系统仿真; 2.科研文献综述和资料查找; 3.外场系统测试和数据分析。 1.电子与通信工程或信http://www.sdsgwy.com/article/html/2494013.html
11.行为分析算法综述.docx行为分析算法综述一、概述行为分析算法是近年来计算机科学、人工智能及心理学等多个领域的研究热点,其应用广泛,涉及智能监控、人机交互、自动驾驶、医疗诊断等多个方面。随着大数据和机器学习技术的快速发展,行为分析算法已经成为理解和预测人类行为的关键工具。行为分析算法主要基于对人类行为的观察和测量,通过提取特征、https://m.renrendoc.com/paper/330405669.html
12.“战疫”中的最美面孔—人脸识别技术2.设计与实施 ⑴ 单元思政设计 本案例节选《模式识别技术》课程第四单元“人脸识别技术”,我们认真分析了“人脸识别技术”的知识要点和技能训练要点,抓住“人脸”这一核心要素,根据本单元授课进程的演绎逻辑,遵循相关性、内化性、逻辑性原则,精心选取了8个“战疫”素材,其中正面素材6个,反面案例2个,匹配课程思政三https://dz.fspt.net/info/1098/1511.htm
13.基于聚类算法的RBF神经网络设计综述AET基于聚类算法的RBF神经网络设计综述 摘要:简要分析了径向基函数(RBF)神经网络。在此基础上,介绍了K-均值聚类算法的神经网络、C-均值聚类算法的神经网络和PAM聚类算法的神经网络三种聚类算法的RBF神经网络。展望了基于聚类的RBF神经网络设计的发展趋势。 关键词:聚类; RBF神经网络; 发展趋势http://www.chinaaet.com/article/195631