GPT-OSS大模型Attention架构设计

模型参数(20B和120B版本)

考虑Attention Sink的Attention计算

大模型推理时,在大部分层上能观察到注意力很大程度关注到开头的几个token上,在StreamingLLM中被称为attention sink。究其原因,并不是开头的token一定最重要,而是当大模型无法有效关注到主要token时,由于开头的token能被后面所有token看到,所以表现出很高的attention score。

因此有一类工作聚焦于 规避attention sink的出现 ,避免这样的现象影响有效的attention计算。
GPT-OSS提出bias项来修正attention sink,基本的思路是在计算完QK之后,给每个head拼接上额外的一个token(可学习的bias token),然后计算softmax,再把bias token丢弃,最后去和V相乘计算attention的输出。

GPT-OSS源代码如下(写法相对比较晦涩):

于是,我重新整理了一版更简洁的代码:

S这个可学习的bias项应该是head-wise,即给每个head都加上一个额外的token,参数定义如下:

python 复制代码
self.S = torch.nn.Parameter(torch.empty(config.num_attention_heads))

从数学角度分析,上面这个过程 本质上就是给attention的计算中分母的求和加上了额外的一项:

softmax(xi)=exp⁡(xi)∑jexp⁡(xj)→exp⁡(xi)∑jexp⁡(xj)+exp⁡(S)softmax(x_i) =\frac{\exp(x_i)}{\sum_j \exp(x_j)} \rightarrow \frac{\exp(x_i)}{\sum_j \exp(x_j)+\exp(S)}softmax(xi)=∑jexp(xj)exp(xi)→∑jexp(xj)+exp(S)exp(xi)

但注意和V相乘之前,需要去掉bias token,从而得到attention的输出。

补充:也有工作是给分母上加1,达到类似的效果,不过GPT-OSS用可学习的bias项会更加灵活。

分层混合稀疏Attention

GPT-OSS采用隔层交错的attention,混合标准的GQA(full attention)和sliding window attention。

其中,window的大小是128,通过下面的方式决定哪些层用sliding window attention:

python 复制代码
self.sliding_window = config.sliding_window if layer_idx % 2 == 0 else 0
相关推荐
码字的特恩1 小时前
微软确认暂不为 Windows 11 加入透明效果自定义功能,建议用户使用第三方工具
人工智能·windows·算法·microsoft·计算机·大模型·编程
程序猿编码2 小时前
不用PyTorch,不用CUDA,我用C++手写了一个能跑GPT和Whisper的推理库
c++·pytorch·gpt·大模型·whisper
AI大佬的小弟2 小时前
大模型名词精讲06:Top-P(核采样)
大模型·top-p·temperature·ai入门·核采样·采样策略·ai调参
thesky12345619 小时前
27届大模型面试准备(二十三):数据工程与合成数据——配方、去重、质量过滤与数据飞轮
大模型·合成数据·数据去重·数据工程·minhash·数据配比·模型坍缩
寻道码路19 小时前
大模型工程化实战(一):概率坍塌的救赎 - 给LLM输出加锁
大模型·agent·langgraph·ai工程化·llm确定性
m0_5474866621 小时前
《人工智能导论:深度学习大模型基础》全套PPT课件2026
人工智能·深度学习·大模型
@Mr_LiuYang1 天前
大模型提示注入攻防实验--《深入理解 AI Agent:设计原理与工程实践 》实验2-5
人工智能·大模型·提示词注入·攻防实验
七牛云行业应用1 天前
ComfyUI + MiniMax H3 实战教程:全模态视频生成,API 和本地两种玩法
人工智能·大模型·音视频
带娃的IT创业者2 天前
Kimi-K3 开源背后:2.8 万亿参数的“暴力美学”与智能体的新拐点
人工智能·开源·大模型·智能体·开源模型·kimi-k3·moonshot ai
VIP_CQCRE2 天前
用 Ace Data Cloud 快速接入 OpenAI Chat Completions API:兼容官方格式,更适合开发者落地
ai·大模型·openai·api·ace data cloud