SnapKV: LLM Knows What You are Looking for Before Generation

SnapKV算法原理

SnapKV的主要目标是优化长序列prompt生成过程中的注意力机制性能。它的设计包括以下核心目标

  • 减少计算复杂度:压缩参与计算的KV数量;
  • 保持生成质量:通过注意力机制中的关键特征选择,优先保留重要的上下文信息。

算法关键概念

  1. Prompt Length( L p r o m p t L_{prompt} Lprompt):用户输入的提示总长度,分为:
    • Prefix Length( L p r e f i x L_{prefix} Lprefix):提示的前缀部分。
    • Observation Window( L o b s L_{obs} Lobs):提示的最后一个窗口,用户分析注意力分配模式。
  2. Voting:对观察窗口的query和前缀上下文的Key,Value计算注意力权重,并通过投票机制选出重要的上下文位置。
  3. Hit Rate:衡量注意力机制投票效果的指标,表示为生成过程中成功选择的重要特征数量占总重要特征数量的比例。

投票机制

主要用来在观察窗口内的所有头部中计算注意力权重,并通过聚合这些权重来突出最重要的前缀位置。

  1. 注意力权重聚合
    C = ∑ i = 0 L obs  W obs  [ : , i , : ] C=\sum_{i=0}^{L_{\text {obs }}} W_{\text {obs }}[:, i,:] C=i=0Lobs Wobs [:,i,:]
  • W o b s W_{obs} Wobs是一个张量,表示观察窗口中注意力权重的集合,维度为 R N × L o b s × L p r e f i x \mathbb{R}^{N\times L_{obs} \times L_{prefix}} RN×L
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值