為什麼 Gemini 無緣無故改用中文?

推理時代閱讀約 3 分鐘
為什麼 Gemini 無緣無故改用中文?

即使你預期 Gemini 會使用英文,它偶爾仍可能在推理或最終回覆中產生中文。這通常表示暫時出現多語言漂移,並不代表 Gemini 已切換成另一個獨立的中文模型。

簡而言之:檢查完整對話中是否有中文訊號,重新說明預期的輸出語言,並且不要把 stream 設定當成語言修正方法。

Gemini 語言漂移的意思

語言漂移是指模型原本以某種語言開始,或被要求使用某種語言,卻在回覆的一部分改用另一種語言。使用者可能提交英文提示詞,仍在推理內容或最終答案中看到 chinese 文字。

Gemini 支援多種語言,並逐一產生 token。它的輸出會受到所有可用上下文影響,而不只是最新指令。因此,語言選擇更適合視為受上下文影響的生成結果,而非永久固定的切換設定。

Gemini 可能突然使用中文的原因

1. 來源內容主要是中文

中文網頁、文件或產品資訊,可能讓中文成為局部脈絡中合理的續寫內容,即使問題是用英文提出也一樣。

2. 對話中已經有中文訊號

中文實體名稱、引文和先前訊息都可能影響後續輸出。每一個 turn 都會加入上下文,進而影響 Gemini 如何 respond。

3. 多語言生成是逐一 token 進行的

指定的語言是一項重要限制,但並非像硬體開關那樣絕對。上下文中仍可能存在互相競爭的語言模式。

4. 任務的上下文很長或很複雜

長上下文推理和以檢索為基礎的工作流程,包含更多需要整合的內容。根據來源專案的說明,在這些情況下,語言一致性可能會降低。

stream=true 會導致輸出中文嗎?

不會。串流設定控制的是傳送方式:

  • stream=true 會在回覆內容可用時逐段傳回。
  • stream=false 會一次傳回完整回覆。

這兩種選項都不會指示 Gemini 使用英文或中文。串流請求可能出現語言漂移,但串流不是直接原因。關閉串流可能會改變使用者看到內容的方式和時間,但它並非語言控制功能。

如何處理意料之外的語言切換

在對模型下結論之前,請先依照以下步驟檢查。

步驟 1:檢查目前的對話

查看來源文字、引文、專有名稱、產品描述、檢索到的頁面,以及先前的中文訊息中是否含有中文。

步驟 2:重申輸出要求

在任務附近加入明確指示:

Respond only in English, including the final answer.

步驟 3:減少沿用的上下文

如果對話很長或包含多種語言,請在新的對話中重試,只保留完成任務所需的資料。

步驟 4:根據傳送方式設定串流

若逐步輸出能改善使用體驗,請選擇 stream=true;若偏好一次取得完整回覆,則選擇 stream=false。不要把兩者當成語言修正方法來選擇。

步驟 5:診斷反覆發生的問題時,保留相關證據

記錄目前的提示詞、先前的對話輪次、檢索內容、明確的語言指示、stream 值,以及完整回覆原文。單一節錄通常不足以判斷語言漂移發生的原因。

不應下的結論

意料之外的中文並不能證明 Gemini 暗中更換了模型,也不能證明是串流造成了語言切換。這些解釋需要有超出單則回覆表面語言的證據。

公開的社群貼文提到類似的意外語言切換,包括中文、日文和葡萄牙文。這些案例有助於呈現多語言症狀,但仍屬軼聞,無法揭示 Gemini 的內部實作方式。

快速檢查清單

  • 來源資料中是否有任何中文內容?
  • 先前的 turn 是否使用過中文?
  • 對話是否很長、很複雜,或高度依賴檢索?
  • 目前請求附近是否明確寫出所需的輸出語言?
  • 你是否將 stream 視為傳送方式設定,而非語言設定?
  • 你是否保留了重現問題所需的完整上下文?

常見問題

Gemini 是否切換成中文模型了?

意料之外的中文回覆無法證明這一點。來源資料所描述的情況,更符合暫時出現多語言漂移的解釋。

stream=false 能避免語言漂移嗎?

目前沒有發現直接的因果關係。stream=false 會改變回覆的傳送時機,不會改變生成回覆所使用的語言。

這個問題只有中文才會發生嗎?

看來並非如此。公開回報也提及日文和葡萄牙文,這更符合一般多語言行為,而非僅限中文的問題。

明確指定提示詞就能保證輸出英文嗎?

明確指示是合理的緩解方法,但來源資料並未證明它能提供保證。

重點總結

當 Gemini 意外使用中文回覆時,請先檢查上下文,再假設模型已經更換。重新指定目標語言,必要時簡化混合語言的對話,並將生成語言問題與串流行為分開看待。

來源專案中討論的案例,請參閱 社群案例 1 和 社群案例 2。

一個閘道接入多家 AI 服務商, 為正式環境而生。

前往推理時代官網