Data-efficient Targeted Token-level Preference Optimization for LLM-based Text-to-Speech¶
会议: ACL 2026
arXiv: 2510.05799
代码: 论文未公开说明(缓存中未给出仓库链接)
领域: LLM 对齐 / TTS / 偏好优化
关键词: TKTO, KTO, 无配对偏好, token 级 reward, 日语模糊发音
一句话总结¶
针对 LLM-based TTS 中模糊发音(如日语「辛い」既可读 karai 也可读 tsurai)的对齐难题,作者提出 TKTO:先用两个标签对调训练的对比 KTO 模型估计每个 token 的重要度权重 \(w_t\),再把 KTO 的 utterance 级 value function 拆到 token 级并加权聚合,实现「无需配对数据 + 自动定位目标 token」的双重升级,把日语发音准确率从 0.668 抬到 0.958(+39%),CER 降 54%。
研究背景与动机¶
领域现状:LLM-based TTS(CosyVoice2、F5-TTS 等)已普遍接入 DPO 系列偏好优化(Zhang et al. 2025, Tian et al. 2025)来提升可懂度和说话人相似度,避开传统 G2P 转换器的硬规则。
现有痛点:对模糊发音场景(日语「辛い」、汉字异读、人名地名)有两大瓶颈 —— (i) 必须成对数据:DPO 需要同一句话同时存在「正确发音 + 错误发音」两条样本,但实际 TTS 输出常常「全对」或「全错」,论文统计发现 89.5% 的句子只有单边样本,只有 10.5% 有完整配对;(ii) utterance 级优化:发音问题本质是 char/token 级的,但 DPO 把整条 utterance 视作单一标签,目标信号被稀释到几百个 token 上。
核心矛盾:fine-grained 信号(应在 token 级、应能用 unpaired 数据) vs 现有偏好优化(utterance 级 + 强制 paired)。前者直接限制 sample efficiency 和 alignment 精度。
本文目标:(i) 摆脱 paired 限制以利用更多数据;(ii) 自动在没有 token 标注的情况下找出「真正决定发音正确性」的 token 并加重权重。
切入角度:作者借用 KTO(Kahneman-Tversky Optimization)天生支持 unpaired 数据这一性质,再用「同一份数据训两个标签相反的 KTO」差分出每个 token 的隐式 reward —— 这恰恰是用 DPO/KTO 公式做 token 级 reward 估计的经典做法(Rafailov et al. 2024),但用法是「先估权重、再加权 KTO」。
核心 idea:用 KTO 对比对(\(\pi^+ / \pi^-\))做 token 级 reward 估计 → 把这个 reward exp 之后作为 token 权重 → 加权到 token 级 KTO loss 上,端到端地把对齐压力集中到关键 token。
方法详解¶
整体框架¶
两步走(见原文 Figure 2)。Step 1:Targeted Token Weight Estimation —— 训练两个不共享参数的对比 LLM \(\pi^+\)(用原始 desirable/undesirable 标签)和 \(\pi^-\)(标签翻转:desirable ↔ undesirable),再用两者 log-ratio 估计 token 级权重 \(w_t\)。Step 2:Token-level KTO —— 把 KTO 的 utterance 级 sigmoid value 拆到每个 token 位置,得到 \(v_t\),再用 \(w_t\) 做加权和作为最终 loss。底座是 CosyVoice2 (0.5B),仅训这一层 PO,不动 vocoder。
关键设计¶
-
KTO 对比 LLM + token 级重要度估计:
- 功能:在没有 token-level 标签的情况下,自动识别「哪一个 token 是决定 desirable / undesirable 的关键」。
- 核心思路:训出 \(\pi^+, \pi^-\) 后,对每个生成 token 计算 \(w_t = \exp\left(\mu\cdot \text{clamp}\left(\log\frac{\pi^+(y_t\mid x, y_{<t})}{\pi^-(y_t\mid x, y_{<t})}, L, U\right)\right)\),其中 desirable 样本取 \(\mu>0\),undesirable 样本取 \(\mu<0\),\([L,U]\) 是裁剪范围。直觉上:若某 token 在「正样本模型」下概率高、在「负样本模型」下概率低,说明这个位置是区分好坏的关键,权重就放大;若两个模型给出的概率差不多,说明该 token 与偏好无关,权重接近 1。
- 设计动机:人工标 token 级偏好成本极高,而 paired 数据又稀缺;用对比 KTO 这种「同数据 + 翻标签」的方法,能在 unpaired 设置下蒸馏出一个无需额外标注的 token-level reward 信号。作者实测在目标字符「辛」位置上 desirable token 的 reward = 0.22(高于平均 0.12),undesirable token 的 reward = −1.54,目标 token 自动被 12.8× 放大。
-
Token-level KTO value function:
- 功能:把 KTO 的 sigmoid 形式 value 函数从 utterance 拆到 token 级。
- 核心思路:每个 token \(y_t\) 的 reward 为 \(r_{\theta,t}(x,y)=\log\frac{\pi_\theta(y_t\mid x, y_{<t})}{\pi_{\text{ref}}(y_t\mid x, y_{<t})}\),参考基线 \(z_{0,t}=\mathrm{KL}(\pi_\theta(\cdot\mid x,y_{<t})\|\pi_{\text{ref}}(\cdot\mid x,y_{<t}))\)(microbatch 估计,不回传梯度)。token 级 value:当 \(y\) 是 desirable 样本时 \(v_t = \lambda_D\sigma(\beta(r_{\theta,t}-z_{0,t}))\);undesirable 时 \(v_t = \lambda_U\sigma(\beta(z_{0,t}-r_{\theta,t}))\)。
- 设计动机:原始 KTO 在 utterance 级把整条 reward 求和后再过 sigmoid,等价于「先平均再非线性」,会把关键 token 的贡献淹没;token 级拆解后,sigmoid 在每个位置独立饱和,强信号 token 不会被弱信号 token 拖平。
-
加权 token KTO 目标:
- 功能:把 \(w_t\) 和 \(v_t\) 合到一个简单的求和 loss 里,端到端训练。
- 核心思路:\(\mathcal{L}_{\text{TKTO}} = \mathbb{E}_{(x,y)}\left[-\sum_{t=1}^{|y|} w_t \cdot v_t(x,y)\right]\)。前向时先冻结两个对比 LLM,只用它们算 \(w_t\);后向只更新策略 \(\pi_\theta\)。
- 设计动机:把「重要度估计」和「偏好优化」彻底解耦 —— 前者一次性预计算(论文中 10 分钟 / 8×A100),后者只是普通 KTO 多一项位置权重,整体改动极小却 fine-grained。
损失函数 / 训练策略¶
对比 LLM 训练用标准 KTO;TKTO 阶段冻结对比模型,预先算 \(w_t\) 缓存。底模 CosyVoice2 (0.5B),已在 20K 小时日语 TTS 上微调;构造数据时每条文本生成 5 条 male / 5 条 female 候选,按发音正确性 + CER 选最优 desirable 与最差 undesirable;CER 用 whisper-v3-large 计算。
实验关键数据¶
主实验¶
日语 5,000 句包含「辛い」的测试集,对 female / male 两个 speaker 分别报 Acc(目标字读音正确率)/ CER / Bad(CER > 0.3 比例),节选 Table 1:
| 模型 / 数据形态 | Female Acc ↑ | Female CER ↓ | Male Acc ↑ | Male CER ↓ |
|---|---|---|---|---|
| Base CosyVoice2 (Du et al. 2024) | 0.683 | 0.128 | 0.668 | 0.138 |
| SFT (desirable only) | 0.674 | 0.119 | 0.654 | 0.130 |
| DPO (paired) | 0.706 | 0.120 | 0.693 | 0.130 |
| KTO (paired) | 0.654 | 0.066 | 0.651 | 0.074 |
| KTO (unpaired) | 0.933 | 0.079 | 0.952 | 0.087 |
| TKTO (paired) | 0.681 | 0.059 | 0.701 | 0.066 |
| TKTO (unpaired) | 0.949 | 0.075 | 0.958 | 0.085 |
| F5-TTS / F5-TTS+G2P(非 LLM 参考) | 0.498–0.500 | 0.136–0.177 | 0.500 | 0.146–0.177 |
| gpt-4o-mini-tts(强行业基线) | 0.900 | 0.109 | 0.939 | 0.111 |
TKTO unpaired 同时刷新 Acc 与 CER,且双指标全部超过 gpt-4o-mini-tts、gemini-2.5-pro-preview-tts 等闭源工业模型。
消融实验¶
| 配置 | Acc / CER 趋势 | 说明 |
|---|---|---|
| TKTO(unpaired) | 0.949 / 0.075(F),0.958 / 0.085(M) | 完整方法 |
| TKTO(paired,10.5% 数据) | 0.681 / 0.059, 0.701 / 0.066 | 仍能拿到与 DPO 相当的 Acc,但少了 6× 数据 |
| KTO(unpaired,去掉 token 加权) | 0.933 / 0.079, 0.952 / 0.087 | 验证 token 级加权再加 +1.6 / +0.6 pt Acc |
| KTO(paired) | 0.654 / 0.066, 0.651 / 0.074 | 配对数据稀缺导致 Acc 反而比 base 还低 |
| SFT desirable-only | 0.674 / 0.119, 0.654 / 0.130 | 无对比信号,CER 没有改善 |
NMOS 主观打分(表 2):Base 4.09 < KTO 4.17 < TKTO 4.21;ABX 偏好测试(Figure 6)也以 TKTO 占优。
关键发现¶
- token 级加权比换数据更值钱:在同样 unpaired 数据上加 token 权重,又比 vanilla KTO 涨 0.6–1.6 pt Acc,且 CER 同步降;说明哪怕数据规模相同,把权重导到「真正决定发音的 token」上能稳定提升。
- 训练动力学反映:TKTO 只抬 desirable token 的 log-likelihood(Figure 3),而 SFT 会同时把 undesirable token 的 likelihood 也抬起来,说明 TKTO 的梯度更聚焦、更安全。
- token 权重自动定位目标字符:未在训练中告诉模型「辛」是关键字符,但平均权重在该位置达到 12.8× 全句平均,case study 显示其他汉字权重接近 1,证明 \(\pi^+/\pi^-\) 差分确实在做 implicit token attribution。
- paired 数据成为瓶颈:DPO 只能用 1.5K 配对,KTO/TKTO unpaired 能用 9K,6× 数据红利直接体现在 Acc 上 0.668 → 0.958 的跃迁。
亮点与洞察¶
- 「翻标签训第二个模型,再用 log-ratio 当 token reward」是个简单到优雅的 trick:不需要额外人工标 token 偏好、不依赖外部 reward model,把 KTO 的隐式 reward 性质榨干了。
- 解耦「权重估计 → 偏好优化」让方法与下游 PO 算法正交,未来可以把 \(w_t\) 套到 DPO、IPO、ORPO 上做同款 token 级扩展。
- 在 TTS 这个 G2P 长期统治的领域里,方法做的是「让 LLM 自己学会哪个字最容易读错并加重训练」,这种 self-attributed curriculum 思想在所有「输出局部决定整体质量」的任务(speech / OCR / code)都有迁移空间。
局限与展望¶
- 评测仅覆盖日语 + 一个目标字符「辛」+ 5,000 句 + 三位标注员,缺乏多语言 / 多歧义字符的泛化验证。
- 对比 LLM 训练用了「同数据翻标签」假设,当 desirable / undesirable 边界模糊(如多个候选都接近)时,\(\pi^-\) 可能学不到稳定信号;clamp \([L,U]\) 与 \(\mu\) 全靠手调。
- 全流程只调 TTS 解码器,没有把 vocoder / 文本 G2P 也加入端到端优化,可能仍有上游 G2P 的偏置残留。
- NMOS 与 ABX 只比了 Base / KTO / TKTO,未与 gpt-4o-mini-tts 等闭源模型做主观盲测。
相关工作与启发¶
- vs DPO (Tian et al. 2025): 同样做 TTS 偏好优化,但必须配对,数据效率只有 TKTO 的 1/6;TKTO 在配对设定下也持平 / 略好,在 unpaired 设定下大幅领先。
- vs vanilla KTO (Ethayarajh et al. 2024): 只在 utterance 级算 value;TKTO 拆到 token 级 + 学习到的 token 权重,同样 unpaired 数据上 +1–2 pt Acc。
- vs G2P 类硬规则方案 (Oura et al. 2010 + F5-TTS): 即使补上 G2P,F5-TTS 的 Acc 仍只 0.500(说明字典层面无法消歧 polysemic 汉字);TKTO 把消歧学到了 LLM 的上下文里。
- vs Liu et al. 2025 的 token-level importance sampling: 同样思路用 log-ratio 算 token reward,但本文先用 KTO 形式构造 \(\pi^\pm\),与 TTS 的 unpaired 现实更契合。
评分¶
- 新颖性: ⭐⭐⭐⭐ 对比 KTO 做 token attribution + 加权 KTO 二段式设计,简单但首次系统化用于 TTS。
- 实验充分度: ⭐⭐⭐ 客观 + 主观双评,缺多语言扩展;消融已覆盖关键变量。
- 写作质量: ⭐⭐⭐⭐ 公式推导清晰,case study 直观。
- 价值: ⭐⭐⭐⭐ 6× 数据红利 + 39% 准确率提升,对工业 TTS 对齐有直接借鉴价值。