---
title: "Thinker-Performer Pipeline"
created: 2026-06-25
updated: 2026-06-25
type: concept
tags: [inference, streaming, pipeline, kv-cache, flow-matching]
sources:
  - "[[wan-streamer]]"
---

# Thinker-Performer Pipeline

**Thinker-Performer Pipeline** 是 Wan-Streamer 的推理部署架构，将统一的端到端模型拆分为两个协作进程，通过 [[kv-cache|KV-cache]] 交换维持统一因果状态，实现感知和生成的流水线重叠。

## 架构

```
Thinker (GPU 0)                        Performer (GPU 1)
─────────────────                      ─────────────────
编码用户观测 uk                         接收 KV slice
更新 KV cache                          全历史 flow-matching 求解
解码前帧响应 y_{k-1} → 发射              生成 clean latents yk
发送当前 KV slice →                     ← 返回 clean latents
```

## 两个角色的职责

### Thinker（思考者）
- 消费当前流式单元的**用户音视频观测**（文本、语音、视频帧）
- 运行因果编码器进行编码
- 运行 Transformer 的短 token-causal pass（语言预测 + 状态更新）
- 生成新 KV-cache slice（当前交互状态）
- 解码 Performer 返回的前一帧潜变量为可发射的音频/视频输出
- **不运行**昂贵的 flow-matching solver

### Performer（执行者）
- 接收 Thinker 发送的 KV-cache slice
- 将 KV slice 追加到自己的全历史缓存中
- **只运行** flow-matching solver 生成下一帧的音视频潜变量
- 将 clean latents 保持在 Performer 侧
- 在下一个流式步返回给 Thinker
- **不运行**解码器或编码器

## 流水线重叠

关键洞察：相邻流式单元之间的工作可以重叠：

| 时间片 | Thinker | Performer |
|--------|---------|-----------|
| 时刻 k 前半 | 编码 u_k，更新 KV_k | — |
| 时刻 k 中 | 解码 y_{k-1}，发射 | — |
| 时刻 k 后 | 发送 KV slice → | ← 接收 KV slice，求解 y_k |
| 时刻 k+1 前 | 编码 u_{k+1} | 求解 y_k（继续） |
| 时刻 k+1 中 | 更新 KV_{k+1} | ← 返回 y_k |

这样，感知/状态更新、前帧解码、KV/潜变量通信、下一帧去噪在连续流式单元间重叠执行。

## 实时性条件

系统能实时运行的条件是：
> Performer wall time + KV-cache/latent 通信开销 < 160ms（一个流式单元）

这**不同于**模型侧响应延迟（从接收用户输入到发射对应响应的时间，约 200ms）。

## 关键优化

- CUDA graph capture 减少 kernel launch 开销
- 编译优化
- 优化的 KV-cache 交换格式

## 参考

- [[wan-streamer]]
- [[kv-cache]]
- [[flow-matching]]
- [[streaming-inference]]
