---
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 论文]]
