# 策展 · X (Twitter) 🔥🔥

> 作者：Desh Raj (@rdesh26) · 平台：X (Twitter) · 日期：2026-05-15

> 原始來源：https://x.com/rdesh26/status/2055029328753148196

## 中文摘要

# 沒有所謂真正的全雙工（full-duplex）模型。

由於 TML 的展示，全雙工/即時/互動模型突然變得熱門起來。我想，針對這些模型究竟是什麼，製作一份（視覺化的）入門指南應該會很有幫助。

## 基於輪替（Turn-based）與全雙工的對比

傳統與 LLM 的互動是基於輪替的：使用者提供一個 Prompt（語音或文字），Agent 提供一個回應。這是一種單向或半雙工的通訊。

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276289-eoHITCbVIXAAAsdMqmp4.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276295-mbHITCbVIXAAAsdMqjpg.jpg" autoplay loop muted playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>

然而，這並非人類互動的方式。全雙工意味著雙向同步通訊。以下是一個使用者與 Agent 之間全雙工互動的範例：

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276513-eoHITHeY9W8AAoPe2mp4.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276511-mbHITHeY9W8AAoPe2jpg.jpg" autoplay loop muted playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>

## 從雙工系統到雙工模型

需要釐清的是，語音 AI 公司早已透過串接串流 ASR、LLM 和 TTS 元件，並搭配獨立的輪替管理器（或稱 VAD），來構建全雙工「系統」。開源的 Pipecat 就是這種方法的絕佳範例。當工程設計良好時，這些系統具有極低的延遲和極佳的靈活性：你可以隨插即用一個全新的 TTS 模型而不影響回應品質，或者在不破壞輪替動態的情況下添加新的 Agentic 功能。

儘管如此，業界仍渴望構建單一的、端到端的全雙工「模型」，即一種能原生理解並生成語音，同時允許雙向同步通訊的模型。這涉及三個層面：

1. 原生音訊理解（讓 LLM 直接對音訊 embedding 進行運算）可防止情緒等副語言線索的丟失。

2. 原生音訊生成（從 LLM 生成音訊 token 或潛在變數）允許模型根據上下文調整語音，並包含非語言的發聲（如笑聲或嘆息）。

3. 全雙工消除了對獨立輪替管理器的需求。

在我之前的文章中，我將這些稱為「回應生成」與「雙工控制」。

## 全雙工設計的不同風格

Moshi（來自 @kyutai_labs）是第一個將這些需求結合為一個可運作、互動且開放模型的模型，為社群提供了進一步探索的絕佳資源（參見 PersonaPlex 或我的 ICLR 2026 論文）。以下是 Moshi 運作方式的簡化版本：

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276526-eoHITUlFgW4AAhE3Tmp4.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276287-mbHITUlFgW4AAhE3Tjpg.jpg" autoplay loop muted playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>

推論過程是按時鐘節奏進行的：

- 每 80ms，一個使用者音訊區塊（持續時間為 80ms）會透過串流 tokenizer 轉換為音訊 token。

- 它會與模型先前生成的 Agent token 進行相加（在 embedding 空間中）。LLM 對這個相加後的 embedding 進行運算，並生成下一個 Agent token。

- Agent token 透過音訊 detokenizer 轉換為 80ms 的波形。

這被稱為多串流架構。當使用雙通道對話資料進行訓練時，產生的模型具有非常自然的回應、低延遲，以及在沒有外部 VAD 的情況下良好的輪替能力。然而，語音訓練資料非常稀缺：所有公開可用的語音資料約為 100 萬小時，即以 80ms 的 token 速率計算約為 450 億個 token。雙通道對話資料更為稀缺：Moshi 使用了 2000 小時的 Fisher 資料（約 9000 萬個 token）進行微調。為了對比這些數字，Nemotron v3 模型是在 25 兆個文字 token 上進行預訓練的。

基礎模型中的大部分知識來自預訓練。為了讓全雙工模型變得聰明，它們通常從一個文字基礎模型初始化。然而，「embedding 相加」的方法會在輸入表示之間造成不匹配，阻礙模型完全轉移已學習的知識。它還需要從單一 embedding 中分離出使用者音訊與 Agent 回應。

另一個挑戰是如何在預訓練中充分利用單串流語音。最近的幾項研究（例如 SpiritLM）使用了單串流交錯訓練來進行語音與文字之間的模態對齊。其概念是將語音片段與轉錄內容對齊，並執行帶有延續任務的預訓練，如下所示：

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276655-eoHITdLgKWIAAYqjAmp4.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276649-mbHITdLgKWIAAYqjAjpg.jpg" autoplay loop muted playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>

我們可以天真地透過在 token 層級交錯使用者與 Agent 串流，將此概念應用於全雙工訓練。這被稱為分時多工（time-division multiplexing）。

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276321-deoHIThVEXwAAew8pmp4.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276271-umbHIThVEXwAAew8pjpg.jpg" autoplay loop muted playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>

分時多工消除了「embedding 相加」的瓶頸，但代價是在每個 80ms 的週期內必須執行 2 次前向傳遞：1 次預填充（prefill）和 1 次解碼（decode）。再加上需要執行音訊 tokenizer/detokenizer，在大規模環境下服務這樣的模型將極具挑戰性。

我們透過增加週期的持續時間來解決這個問題，即進行「區塊層級（chunk-level）」交錯，而非 token 層級。我們首先決定一個間隔時間：然後對於每個間隔，模型會將前一個間隔的 Agent 回應與當前間隔的使用者音訊序列化為單一序列，並生成該間隔的 Agent 回應。下圖展示了區塊大小為 2 個 token（160ms 間隔）的情況：

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276487-eoHITmmmhXEAA1WZemp4.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276481-mbHITmmmhXEAA1WZejpg.jpg" autoplay loop muted playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>

這種設計被用於 MiniCPM-o 4.5（區塊持續時間為 1 秒），以及最近 TML 的互動模型（區塊持續時間為 200ms）。較大的區塊降低了工程複雜度，但增加了回應延遲，因為回應至少會被區塊持續時間所延遲。

## 那麼，什麼才是「真正」的全雙工？

現在我們了解了 TML 的區塊層級交錯設計（相較於 Moshi 的多串流設計），哪一個才是真正的全雙工系統呢？

從數學上講，如果我們考慮時間對齊的使用者與 Agent 串流 U 和 A，全雙工模型可以定義為：在任何瞬時時間點，a_t = f(u_t, a_{t-1})。由於我們的模型在時間軸上是離散的，我們必須在此定義中選擇串流的粒度。讓我們將此值稱為使用者與 Agent 互動的週期。

對於 Moshi，這個值是 80ms，而對於 TML 的模型，則是 200ms。有人可能會爭辯說，除非週期的長度與音訊 tokenizer 的 token 速率相匹配，否則模型不能被稱為「真正」的全雙工。然而，這種說法相當武斷。我們完全可以選擇音訊特徵的影格率（通常為 10ms）作為週期的期望值，因為 tokenizer 最終是整體模型的一部分。如果我們更進一步，可能會爭辯說系統的實際輸入是原始波形，因此週期應該在該層級匹配。但我們考慮的採樣率又是多少呢？要讓 24kHz 音訊的週期與 16kHz 音訊的週期匹配會困難得多。

重點在於，這些基於架構的比較對於判斷模型的全雙工本質並沒有太大幫助。模型的試金石不應該是架構或配置，而是它在壓力下的表現。

如果一個模型具備原生音訊理解/生成與雙工控制能力，並且能在感知上與使用者音訊輸入同步生成回應，我認為它就應該被視為全雙工。反過來說，如果它沒有表現出這種行為，無論縮短多少週期時間，都無法使其成為全雙工。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1778811276637-diaHITrr2XYAAhwpjjpg.jpg)

製作人員：所有動畫均由 Codex 生成（經過多輪來回修改）。所有文字內容均為本人原創。

## 標籤

LLM, 產業趨勢, TML
