長文翻譯裡,有一個很常見但很煩的問題:名詞會飄。
同一個專有名詞,在第一章被翻成一種說法,到了後面又變成另一種。技術文件、小說、產品文檔都會遇到。文本越長,這件事越明顯。
這不一定是模型「不懂」。更多時候,是上下文太長、採樣有隨機性、前後語境又在變。模型每次都能給出看似合理的翻譯,但合理不等於一致。
我想整理的是一個比較白盒的解法:用 Semantic Entropy(語義熵)先找出容易飄的名詞,再把它們變成一份局部名詞表,最後交給翻譯模型強制套用。
傳統翻譯流程常常把重點放在「哪個譯法更好」。但在長文翻譯裡,另一個問題同樣重要:
哪些名詞本身是不穩定的?
如果一個名詞每次都被模型翻成差不多的語義,它就不需要太多干預。反過來,如果同一段文本跑多次翻譯後,某些名詞出現多種譯法,那些名詞才是真正需要被固定下來的地方。
Semantic Entropy 的價值就在這裡。它不是直接替你選最佳翻譯,而是幫你看到模型的不確定性輪廓。
直覺上,可以這樣理解:
所以流程的第一步不是建立一份巨大 glossary,也不是一次就要求模型翻到最好。
第一步是重複採樣。
對同一段原文,讓模型產生多個翻譯版本。數量不需要很誇張,通常 5 份可以看到問題,7 到 10 份性價比比較好,14 份會更穩但成本也更高。
輸出可以保持成簡單的 JSON:
[
{ "version": 1, "translation": "..." },
{ "version": 2, "translation": "..." },
{ "version": 3, "translation": "..." }
]