大模型面试常考知识点2

文章目录

  • 1. LLM推理attention优化技术
    • KV Cache
    • PageAttention显存优化
    • MHA\GQA\MQA优化技术
    • FlashAttention优化技术
    • 稀疏Attention
      • 1. Atrous Self Attention
      • 2. Local Self Attention
      • 3. Sparse Self Attention
  • 2. LLM数据处理关键
    • 去重
    • 多样性保证
    • 构造扩充数据
    • 充分利用数据
  • 参考文献

1. LLM推理attention优化技术

首先LLM推理的过程是一个自回归的过程,也就是说前i次的token会作为第i+1次的预测数据送入模型,拿到第i+1次的推理token。

kv cache是为了避免每次采样token时重新计算键值向量。利用预先计算好的k值和v值,可以节省大量计算时间,尽管这会占用一定的存储空间。

KV Cache

KV Cache是Transformer标配的推理加速功能,transformer官方use_cache这个参数默认是True,但是它只能用于Decoder架构的模型,这是因为Decoder有Causal Mask,在推理的时候前面已经生成的字符不需要与后面的字符产生attention,从而使得前面已经计算的K和V可以缓存起来。

在这里插入图片描述
在这里插入图片描述
我们每一步其实之需要根据 Q k Q_k Qk计算 A t t k Att_k Attk就可以,之前已经计算的Attention完全不需要重新计算。但是 K K K V V V 是全程参与计算的,所以这里我们需要把每一步的 K K K V V V 缓存起来。所以说叫KV Cache好像有点不太对,因为KV本来就需要全程计算,可能叫增量KV计算会更好理解。

当前轮输出token与输入tokens拼接,并作为下一轮的输入tokens,反复多次。可以看出第i+1轮输入数据只比第i轮输入数据新增了一个token,其他全部相同!因此第i+1轮推理时必然包含了第i轮的部分计算。KV Cache的出发点就在这里,缓存当前轮可重复利用的计算结果,下一轮计算时直接读取缓存结果。

注:KVCache是推理加速用的,训练无需。

所以未来LLM推理优化的方案就比较清晰了,就是尽可能的减少推理过程中kv键值对的重复计算,实现kv cache的优化。
目前减少KV cache的手段有许多,比如page attention、MQA、MGA等,另外flash attention可以通过硬件内存使用的优化,提升推理性能。

PageAttention显存优化

PageAttention是目前kv cache优化的重要技术手段,目前最炙手可热的大模型推理加速项目VLLM的核心就是PageAttention技术。在缓存中,这些 KV cache 都很大,并且大小是动态变化的,难以预测。已有的系统中,由于显存碎片和过度预留,浪费了60%-80%的显存。PageAttention提供了一种技术手段解决显存碎片化的问题,从而可以减少显存占用,提高KV cache可使用的显存空间,提升推理性能。

首先,PageAttention命名的灵感来自OS系统中虚拟内存和分页的思想。可以实现在不连续的空间存储连续的kv键值。另外,因为所有键值都是分布存储的,需要通过分页管理彼此的关系。序列的连续逻辑块通过 block table 映射到非连续物理块。

MHA\GQA\MQA优化技术

在这里插入图片描述
MQA,全称 Multi Query Attention, 而 GQA 则是前段时间 Google 提出的 MQA 变种,全称 Group-Query Attention。MHA(Multi-head Attention)是标准的多头注意力机制,h个Query、Key 和 Value 矩阵。MQA 让所有的头之间共享同一份 Key 和 Value 矩阵,每个头只单独保留了一份 Query 参数,从而大大减少 Key 和 Value 矩阵的参数量。GQA将查询头分成N组,每个组共享一个Key 和 Value 矩阵。

如上图,GQA以及MQA都可以实现一定程度的Key value的共享,从而可以使模型体积减小,GQA是MQA和MHA的折中方案。这两种技术的加速原理是(1)减少了数据的读取(2)减少了推理过程中的KV Cache。需要注意的是GQA和MQA需要在模型训练的时候开启,按照相应的模式生成模型。

FlashAttention优化技术

Flash attention推理加速技术是利用GPU硬件非均匀的存储器层次结构实现内存节省和推理加速,通过合理的应用GPU显存实现IO的优化,从而提升资源利用率,提高性能。

在这里插入图片描述

稀疏Attention

Attention中,QK的维度为nd,可以发现Q和K的乘积会产生一个nn的矩阵,而计算这种大型矩阵的行方向softmax的复杂度是 O ( n 2 ) O(n^2) O(n2)

对于超长序列,计算全局自注意力(每个元素与其他每个元素相乘)会变得非常困难,因此也就有了后来的一些研究对自注意力机制的复杂度进行优化,当然这样做也可能会失去自注意力能够处理长距离上下文的优势。

在这里插入图片描述在上图中,左边显示了注意力矩阵,右边显示了关联性,这表明每个元素都跟序列内所有元素有关联。

所以,如果要节省显存,加快计算速度,那么一个基本的思路就是减少关联性的计算,也就是认为每个元素只跟序列内的一部分元素相关,这就是稀疏Attention的基本原理。

1. Atrous Self Attention

在这里插入图片描述
Atrous Self Attention就是启发于“膨胀卷积(Atrous Convolution)”,如下右图所示,它对相关性进行了约束,强行要求每个元素只跟它相对距离为k,2k,3k,…的元素关联,其中k>1是预先设定的超参数。

由于现在计算注意力是“跳着”来了,所以实际上每个元素只跟大约n/k个元素算相关性,这样一来理想情况下运行效率和显存占用都变成了 O ( n 2 / k ) O(n^2/k) O(n2/k),也就是说能直接降低到原来的1/k。

2. Local Self Attention

另一个要引入的过渡概念是Local Self Attention,中文可称之为“局部自注意力”。具体来说也很简单,就是约束每个元素只与前后k个元素以及自身有关联,如下图所示:

在这里插入图片描述
其实Local Self Attention就跟普通卷积很像了,都是保留了一个2k+1大小的窗口,然后在窗口内进行一些运算,不同的是普通卷积是把窗口展平然后接一个全连接层得到输出,而现在是窗口内通过注意力来加权平均得到输出。对于Local Self Attention来说,每个元素只跟2k+1个元素算相关性,这样一来理想情况下运行效率和显存占用都变成了𝒪((2k+1)n)∼𝒪(kn)了,也就是说随着n而线性增长,这是一个很理想的性质——当然也直接牺牲了长程关联性。

3. Sparse Self Attention

Atrous Self Attention是带有一些洞的,而Local Self Attention正好填补了这些洞,所以一个简单的方式就是将Local Self Attention和Atrous Self Attention交替使用,两者累积起来,理论上也可以学习到全局关联性,也省了显存。

直接将两个Atrous Self Attention和Local Self Attention合并为一个:
在这里插入图片描述从注意力矩阵上看就很容易理解了,就是除了相对距离不超过k的、相对距离为k,2k,3k,…的注意力都设为0,这样一来Attention就具有“局部紧密相关和远程稀疏相关”的特性,这对很多任务来说可能是一个不错的先验,因为真正需要密集的长程关联的任务事实上是很少的。

2. LLM数据处理关键

去重

重复数据、冲突数据识别
minHash、Kmeans

多样性保证

构造扩充数据

例如:表格问答 利用GPT4答案扩写

充分利用数据

例如:多轮对话数据利用
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

参考文献

看图学KV Cache
LLM推理优化技术综述
从标准Attention到稀疏Attention
如何充分高效训练多轮对话大模型

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

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

相关文章

知识库文档系统源码部署/搭建/上线/运营/售后/更新

一款基于ThinkPHPFastAdmin开发的知识库文档系统,可用于企业工作流程的文档管理,结构化记录沉淀高价值信息,形成完整的知识体系,能够轻松提升知识的流转和传播效率,更好地成就组织和个人。为部门、团队或项目搭建知识库…

监控员工上网用什么软件,4款优秀的上网行为监控软件优选

很多员工都会对工作有懈怠心理。 在数字化办公环境中,员工的上网行为直接影响着工作效率、信息安全与合规运营。 为确保企业资源合理利用、防止潜在风险,上网行为监控软件成为企业管理的重要辅助工具。 本文将为您推荐五款优秀的上网行为监控软件&#…

分布式事务技术方案

什么是分布式事务 一次课程发布操作需要向数据库、redis、elasticsearch、MinIO写四份数据,这里存在分布式事务问题。 什么是分布式事务? 首先理解什么是本地事务? 平常我们在程序中通过spring去控制事务是利用数据库本身的事务特性来实现…

Spring Framework-简介

Spring Framework Java Spring是一个开源的Java应用框架,它的主要目的是简化企业级应用开发的复杂性。Spring框架为开发者提供了许多基础功能,使得开发者能够更专注于业务逻辑的实现,而不是底层的细节。 主要特点和功能: 控制反…

AI自动直播,仅需一部手机解决直播痛点,全自动带货卖券系统!

AI自动直播,仅需一部手机解决直播痛点,全自动带货卖券系统! 什么是AI自动直播带货系统? 一款只需要放在商家店内就开自动直播的软件,全自动24小时直播,只需要一部手机,就可以形成为门店曝光&a…

历史人物数字人如何成为地方文化推广大使?

如今,文旅产业业态已经从“打卡式旅游”逐渐走向“体验型旅游”转变。数字人可以为游客提供情绪价值、引起情感共鸣的文化体验。不少文旅品牌通过打造历史人物数字人,将城市民俗风情、非物质文化遗产等相结合,并且结合AI交互数字人的人机对话…

数据结构之图——探索图论的奥秘

前言 在这篇文章中,我们一起来看看我们生活中都会用到,但却不那么熟悉的数据结构——图(英语:graph)。我们看下百科定义: 在计算机科学中,图(英语:graph)是一…

Istio 使用 Apache SkyWalking 进行服务链路追踪、链路监控告警

一、Istio 使用 Apache SkyWalking 链路追踪和告警 SkyWalking是一个开源的观测平台,用于从服务和云原生等基础设施中收集、分析、聚合以及可视化数据,SkyWalking 提供了一种简便的方式来清晰地观测分布式系统,甚至可以观测横跨不同云的系统…

10分钟解决你电脑带不动3dmax渲染的问题‼️

你是否经常遇到这样的窘境: “创意如泉涌,操作如猛虎,却在渲染的关键时刻遭遇电脑崩溃,且发现工作成果未保存…” “在作业截止日期临近时,你的笔记本电脑突然罢工,迫使你不得不在网吧度过漫漫长夜来完成…

【工具】Office/WPS 插件|AI 赋能自动化生成 PPT 插件测评 —— 必优科技 ChatPPT

本文参加百度的有奖征文活动,更主要的也是借此机会去体验一下 AI 生成 PPT 的产品的现状,因此本文是设身处地从用户的角度去体验、使用这个产品,并反馈最真实的建议和意见,除了明确该产品的优点之外,也发现了不少缺陷和…

排查 stable-diffusion-webui 局域网访问问题:详细解析配置步骤

排查 stable-diffusion-webui 局域网访问问题:详细解析配置步骤 引言: 在部署 stable-diffusion-webui 后,确保其在局域网内可访问是使用该工具的关键一步。如果您遇到了局域网无法访问的问题,本文将帮助您详细检查和配置 stable…

EasyNmon服务器性能监控工具环境搭建

一、安装jdk环境 1、看我这篇博客 https://blog.csdn.net/weixin_54542209/article/details/138704468 二、下载最新easyNmon包 1、下载地址 https://github.com/mzky/easyNmon/releases wget https://github.com/mzky/easyNmon/releases/download/v1.9/easyNmon_AMD64.tar.…