NLP基础知识2【各种大模型的注意力】

注意力

传统Attention存在的问题

  1. 上下文约束
  2. 速度慢,显存占用大(因为注意力考虑整体信息,所以每一个位置都要和其他位置计算注意力分数)

优化方向

  1. 上下文长度
  2. 加速
  3. 减少显存占用

变体有哪些

  • 稀疏注意力:引入稀疏偏差降低复杂性
  • 线性化注意力:解开Attention矩阵和内核特征图,然后逆序计算,实现线性复杂度(不太了解)
  • 改进多头
  • 内存压缩

现在的主要变体集中在KV

现在的MQ-A、GQ-A、KV-cache本质上都是复用、缓存KV矩阵,用于缓解内存和内存墙(缓存大小不足,需要频繁访存)的,现在较少有人能讲清楚为什么要存储KV而不是QKV或者Q?

  • 要从注意力机制的计算中寻找答案,以下为看图学的KV cache推理示意图:
    - 显然,对于现在大模型中常用的单向注意力来说,Q只使用一次,但KV是随着句子的增长不断增加的,所以减少KV的使用变得十分重要。

Multi-Query Attention

  • Multi-Query从多头注意力改进而来,多头本身是KQV多头,现在是用Q多头,KV单头。也就是说,在所有注意力头上共享KV。
  • 优点:减少KV cache大小,减少显存占用,提高推理速度
  • 使用它的模型:GLM2~,Falcon等

Grouped-query Attention

  • 介于多头和多Q之间,复用N个KV,精度高一些。
  • LLaMA2用的就是这个

FlashAttention

  • 使用分块计算softmax
  • 解决显存和缓存
相关推荐
OceanBase数据库官方博客1 小时前
向量检索新选择:FastGPT + OceanBase,快速构建RAG
人工智能·oceanbase·分布式数据库·向量数据库·rag
ghjhjjjbjibh1 小时前
AI大模型 —— 国产大模型 —— 华为大模型
人工智能·华为
清风序来2 小时前
一,开发环境安装
人工智能·深度学习
樱花穿过千岛湖5 小时前
第六章:Multi-Backend Configuration
人工智能·python·gpt·学习·ai
跳跳糖炒酸奶6 小时前
第十五讲、Isaaclab中在机器人上添加传感器
人工智能·python·算法·ubuntu·机器人
前进的程序员6 小时前
深度学习:人工智能的核心驱动力
人工智能
_一条咸鱼_7 小时前
Python 名称空间与作用域深度剖析(二十七)
人工智能·python·面试
_一条咸鱼_7 小时前
Python之函数对象+函数嵌套(二十六)
人工智能·python·面试
_一条咸鱼_7 小时前
Python 文件操作之修改(二十二)
人工智能·python·面试
_一条咸鱼_7 小时前
Python 闭包函数:原理、应用与深度解析(二十八)
人工智能·python·面试