長文翻譯裡,有一個很常見但很煩的問題:名詞會飄。

同一個專有名詞,在第一章被翻成一種說法,到了後面又變成另一種。技術文件、小說、產品文檔都會遇到。文本越長,這件事越明顯。

這不一定是模型「不懂」。更多時候,是上下文太長、採樣有隨機性、前後語境又在變。模型每次都能給出看似合理的翻譯,但合理不等於一致。

我想整理的是一個比較白盒的解法:用 Semantic Entropy(語義熵)先找出容易飄的名詞,再把它們變成一份局部名詞表,最後交給翻譯模型強制套用。

問題不只是翻得好不好

傳統翻譯流程常常把重點放在「哪個譯法更好」。但在長文翻譯裡,另一個問題同樣重要:

哪些名詞本身是不穩定的?

如果一個名詞每次都被模型翻成差不多的語義,它就不需要太多干預。反過來,如果同一段文本跑多次翻譯後,某些名詞出現多種譯法,那些名詞才是真正需要被固定下來的地方。

Semantic Entropy 的價值就在這裡。它不是直接替你選最佳翻譯,而是幫你看到模型的不確定性輪廓。

語義熵在這裡怎麼用

直覺上,可以這樣理解:

所以流程的第一步不是建立一份巨大 glossary,也不是一次就要求模型翻到最好。

第一步是重複採樣。

對同一段原文,讓模型產生多個翻譯版本。數量不需要很誇張,通常 5 份可以看到問題,7 到 10 份性價比比較好,14 份會更穩但成本也更高。

輸出可以保持成簡單的 JSON:

[
  { "version": 1, "translation": "..." },
  { "version": 2, "translation": "..." },
  { "version": 3, "translation": "..." }
]

抽取名詞,而不是處理整段翻譯