20260617:目前有914 页

This commit is contained in:
2026-06-17 15:02:40 +08:00
parent e96b955fda
commit 91fac5b6fc
423 changed files with 20687 additions and 34 deletions

View File

@@ -0,0 +1,51 @@
---
title: "One-Pass Fine-Tuning (单遍微调)"
created: 2025-06-02
updated: 2025-06-02
type: concept
tags: [efficient-fine-tuning, multi-turn-reasoning, training-optimization]
sources: ["[[goru-one-pass-to-reason-2025]]"]
---
# One-Pass Fine-Tuning
> 将多轮对话的 N 遍训练压缩为单遍前向传播的训练技术,通过 token 复制和自定义注意力掩码实现。
## 核心思想
传统的多轮推理微调需要每轮一次独立前向传播([[multi-turn-reasoning|N-Pass]]),因为推理 token 在后续轮次中被丢弃。One-Pass Fine-Tuning 通过以下三步实现单遍处理:
1. **[[token-duplication|Token 复制]]**:将每个助手回复复制为 ri_in上下文和 ri_out生成+loss
2. **[[block-sparse-attention|分块稀疏注意力]]**:自定义掩码控制每种 token 类型的可见范围
3. **位置 ID 重排**:确保相对位置关系与 N-Pass 等价
## 理论保证
**Theorem 2.1**Goru et al., 2025在仅由注意力模式、位置编码和输入表示决定输出分布的 LM 中,
$$L_{\text{1-Pass}}(c) = \sum_{i=1}^N L_{\text{N-Pass}}(H_{<i}, h_i, a_i)$$
即两种方法的 loss 完全等价——只改变计算方式不改变学习目标
## 复杂度
| 方法 | 时间 | 空间 |
|------|------|------|
| N-Pass | O(N³²d) | O(N²) |
| **1-Pass** | **O(N²²d)** | O(N²) |
额外内存 ~33%token 复制但渐进复杂度相同
## 实现
基于 [[flex-attention|PyTorch FlexAttention]]FlashAttention-2 不支持自定义掩码掩码生成在 GPU 上向量化完成
## K-Pass 变体
[[k-pass-training]]将对话分为 K 每段内用 1-Pass段间顺序处理提供速度内存的连续权衡
## 相关
- [[goru-one-pass-to-reason-2025|One-Pass to Reason 论文]]
- [[multi-turn-reasoning]]
- [[token-duplication]]
- [[block-sparse-attention]]