--- title: "K-Pass Training (K 遍训练)" created: 2025-06-02 updated: 2025-06-02 type: concept tags: [training-optimization, multi-turn-reasoning, efficiency] sources: ["[[goru-one-pass-to-reason-2025]]"] --- # K-Pass Training > [[goru-one-pass-to-reason-2025|One-Pass to Reason]] 中提出的训练方案连续统,在完全节省内存(N-Pass)和完全节省时间(1-Pass)之间提供灵活的速度–内存权衡。 ## 动机 [[one-pass-fine-tuning|1-Pass]] 和 N-Pass 是两个极端: - N-Pass:每轮一次前向传播,最小内存,最慢速度 - 1-Pass:整个对话一次前向传播,+33% 内存,最快速度 K-Pass 允许用户在这两个极端之间插值,按需选择内存/速度平衡点。 ## 实现 1. **分块**:将 N 轮对话均分为 K 段,每段 ⌈N/K⌉ 轮 2. **段内 1-Pass**:当前段内应用 token 复制 + 自定义掩码 3. **段间顺序处理**:前段作为后段的固定上下文(不复制 token) 4. **Loss 隔离**:只计算当前段内 ti 和 ri_out 的 loss ## 速度–内存权衡 | K | 语义 | 加速比 (8B) | 额外内存 | |---|------|-----------|---------| | 1 | 1-Pass(最快) | 1.54× | +34% | | 2 | 平衡点 | 1.37× | +21% | | 4 | — | 1.09× | +17% | | 6 | — | 0.88× | +14% | | N | N-Pass(最少内存) | 1.00× | 0% | **关键发现**:K > 4 后收益递减——长序列的 token 复制开销开始超过少量合并带来的节省。 ## 推荐策略 - **内存充裕**:K=1(1-Pass),最大化速度 - **内存适中**:K=2,用 21% 内存换取 37% 加速 - **内存紧张**:K=4 或直接用 N-Pass ## 相关 - [[one-pass-fine-tuning]] - [[token-duplication]] - [[goru-one-pass-to-reason-2025|One-Pass to Reason 论文]]