1.6 KiB
1.6 KiB
title, created, updated, type, tags, sources
| title | created | updated | type | tags | sources | ||||
|---|---|---|---|---|---|---|---|---|---|
| Visibility Constraint (可见性约束) | 2025-06-02 | 2025-06-02 | concept |
|
|
Visibility Constraint
在推理模型的多轮对话中,推理 token 对当前轮的生成必须可见,但对后续轮次必须隐藏的条件性可见需求。
问题描述
推理模型(deepseek-r1 等)的工作流程:
Turn i: hi → ti → ri
推理token 回复token
Turn i+1: h_{i+1} → t_{i+1} → r_{i+1}
此时 ti 已被丢弃,不可见
推理 token ti 面临两种矛盾的可见性需求:
- 生成 ri 时:ti 必须可见(ri 的内容基于 ti)
- 生成 r_{i+1} 时:ti 必须不可见(行业惯例:推理 token 不保留在上下文中)
为什么标准掩码不够用
标准因果注意力掩码是静态的:一个 token 要么一直可见,要么一直不可见。无法表达"对 ri 可见但对 r_{i+1} 不可见"这种条件性可见。
block-sparse-attention 通过为不同 token 类型定制掩码来解决——本质上是一个块级稀疏矩阵,不同块有不同的可见性模式。
与 token-duplication 的关系
Token 复制是解决可见性约束的关键:
- 通过复制 ri 为 ri_in 和 ri_out
- ri_out 关注 ti(满足生成需求)
- ri_in 不关注 ti(满足上下文需求)
- 两个副本内容相同,但注意力行为不同