--- title: "Visibility Constraint (可见性约束)" created: 2025-06-02 updated: 2025-06-02 type: concept tags: [attention, multi-turn-reasoning, training] sources: ["[[goru-one-pass-to-reason-2025]]"] --- # 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(满足上下文需求) - 两个副本内容相同,但注意力行为不同 ## 相关 - [[block-sparse-attention]] - [[token-duplication]] - [[multi-turn-reasoning]] - [[goru-one-pass-to-reason-2025|One-Pass to Reason 论文]]