attend op• 数据种类:tokens × tokens × tokens → tokens
• 调用: import fullseye as fs; fs.ledger.attention_grouped(query, key, value, n_heads: 'int', n_kv_heads: 'int', mask=None, window=None) -> 'np.ndarray'(要直接调用实现,import llmcore; llmcore.attention_grouped(query, key, value, n_heads: 'int', n_kv_heads: 'int', mask=None, window=None) -> 'np.ndarray';从台账取用则 opsllmcore.get("attention_grouped"))
把头分组共享的注意力(GQA)→ tokens。n_kv_heads == n_heads 时与 MHA、== 1 时与 MQA 严格一致。
Ainslie 等 2023。query 分成 n_heads 个头,key/value 只有 n_kv_heads 个头并被重复使用。两端严格地退化为已有的 2 种(MHA / MQA)(两者都是 0.0e+00), 所以"取中间"这一主张可以在端点处验算。
Args:
query: (T, n_heads·dh) float。按头以宽度 dh 排列。
key: (S, n_kv_heads·dh) float。
value: (S, n_kv_heads·dh) float。
n_heads: query 的头数。必须是 n_kv_heads 的倍数。
n_kv_heads: key/value 的头数。1 为 MQA,n_heads 为 MHA。
mask: None / "causal" / "window" / (T, S) 的 bool 数组。
window: mask="window" 时的窗口宽度。
Returns:
tokens (T, n_heads·dh) float: 各头的输出横向拼接而成。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• poc_attention_identities — py -3.11 examples/poc_attention_identities.py
tokens 作为输入)rms_norm · rope_rotate · attention_scores · attention_apply · attention_softmax · attention_tiled · attention_linear · kv_cache_decode
attend)attention_softmax · attention_tiled · attention_linear
*Provenance: llmcore.py — LLMCORE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.