AI 前沿 2026 年 6 月 1 日

2026-06-01 — Agentic RL TITO 問題修正、Borealis 開放音訊語言模型

primary=https://huggingface.co/blog/huggingface/tito primary=https://huggingface.co/blog/AlexWortega/borealis primary=https://huggingface.co/Vikhrmodels/Borealis-5b-it

Agentic RL 的 Token-In, Token-Out 問題:重新編碼 token 如何讓梯度落在錯誤位置

Hugging Face Blog · 2026-05-30

Hugging Face 發表文章指出多輪 agentic RL 訓練迴圈中一個普遍但隱藏的實作錯誤:TITO 違反(Token-In, Token-Out violation)。錯誤的根源在於開發者在多輪對話中插入工具呼叫結果後,對整段對話歷史重新渲染並重新編碼(re-tokenize),導致反向傳播的梯度落在模型從未實際生成的 token sequence 上,違反 RL 的基本要求——只優化 policy 實際產出的 token。

問題機制

BPE 分詞並非單射(injective):同一段文字解碼後再重新編碼,有機率產生不同的 token ID 序列。訓練迴圈的典型錯誤流程如下:

  1. 模型生成 token,decode 成文字用於解析工具呼叫
  2. 追加工具結果到對話歷史
  3. 對整段對話歷史重新呼叫 apply_chat_template + tokenize
  4. 以重新編碼的結果計算 loss 並反向傳播

步驟 3 的問題在於重新渲染可能改變先前模型已生成部分的 token ID,訓練信號因此落在 policy 從未採樣的序列上,在數學上不正確。

TITO 解法:delta 追加,永不重編碼

修正原則只有一條:永遠不要對已解碼的 token 重新編碼。做法是保持一個 token buffer,工具結果的 token 透過「delta 計算」取得而非重新渲染整段對話:

# 計算工具結果對應的 token delta
msgs_before = [user, asst_with_tool_call]
msgs_after  = [user, asst_with_tool_call, {"role": "tool", "content": "4"}]

prefix = tokenizer.apply_chat_template(msgs_before, tokenize=True)
full   = tokenizer.apply_chat_template(msgs_after,  tokenize=True)
delta  = full[len(prefix):]   # 工具結果對應的 token
buffer.extend(delta)           # 直接追加,不重編碼

此方法要求 chat template 具備 prefix-preserving 性質:追加工具結果必須是原有序列的前綴延伸,而非改變之前的 token。文章提供 12 行 Python 驗證函式,並測試 19 個主流模型:18 個通過(包含 Qwen2.5、Llama 3+、DeepSeek-R1、Gemma 4),僅 Qwen3 base 需要一行 Jinja 修改。

與 renderer 方案的比較

替代方案是為每個模型族系維護獨立的「renderer」物件(如 PrimeIntellect 的 renderers 函式庫),手工硬寫 chat template 邏輯。TITO 方案的優勢是無需每族系維護、適用 95% 的模板、程式碼量更少;renderer 的優勢則是提供統一 API、支援損失遮罩的訊息索引,以及對僅支援 messages API 的廠商模型也有效。兩種方案均可避免靜默的 token 漂移問題。

原始來源:Hugging Face Blog


Borealis:開放原始碼的 5B 音訊語言模型訓練全食譜

Hugging Face Blog · 2026-05-26

研究者 AlexWortega 在 Hugging Face 發布 Borealis,一個支援俄語與英語的 5B 音訊語言模型,並公開完整的訓練資料、程式碼與模型權重(Vikhrmodels/Borealis-5b-it)。有別於傳統 ASR 只輸出逐字稿,Borealis 能對錄音做摘要、問答與情緒分析,並提供可複現的訓練配方供社群延伸。

架構

Borealis 採用業界常見的三段式設計,總訓練參數約 500M:

  • Whisper Large V3 encoder(凍結,635M params):提取多語言語音表徵
  • 4× 降採樣 + MLP adapter(可訓練,~31M params):將 1,500 個音訊 token 壓縮至 375 個
  • Qwen3-4B LLM(LoRA fine-tuned):生成文字回應

訓練資料與關鍵發現

訓練資料跨越 ToneBooks、LibriVox 有聲書、Gemini 2.5 Pro 生成的指令音訊(AudioBooksInstructGemini2.5)、Musan 環境噪音等八個資料集。幾項消融實驗的結論值得關注:

  • 原生語言資料優於跨語言混合:俄語原生訓練 WER 為 19.32%,混合英語後反而上升至 24.02%
  • 文字資料最佳比例為 10–15%:超過 25% 後性能退化
  • 凍結 encoder 是正確選擇:Whisper 的多語言能力完整保留,adapter 只需對齊 LLM 的 embedding 空間

推理效能

原生 Transformers 推理速度為 44.9 tokens/s;搭配作者提供的 vLLM plugin 可提升至 95.9 tokens/s(2.1×)。已知限制包含:不支援串流(offline only)、重度噪音場景(如電話會議)WER 退化至約 60%,以及每次對話僅接受單一音訊輸入。

原始來源:Hugging Face / BorealisVikhrmodels/Borealis-5b-it


End of article
0
Would love your thoughts, please comment.x
()
x