2026-05-30

COMET/Bootstrapで翻訳を評価する

 NMTやLLMによる翻訳性能の向上は著しい。

今年の日本翻訳連盟の総会では、基調講演として「AI翻訳、進歩したからこそ必要なこと」というテーマが取り上げられるらしい。

「AI翻訳は適切に利用されているのか」「その翻訳は原文の意味内容をどの程度正しく反映し、正確性を確保できているのか」といった観点から、翻訳者に求められる役割について検討するという内容のようだ。

その意図は理解できる。私自身も関心のあるテーマなので、基調講演には参加するつもりである。ただ、このテーマをどこまで掘り下げてくれるのかについては、やや懐疑的な見方も持っている。

さて、翻訳を専門としていないが、業務上ときどき翻訳に関わる人の認識としては、「翻訳者が不要になるかもしれない」というのが大きな見立てではないだろうか。

実際、自分でLLMに翻訳をさせてみると、ほとんど自動化されているかのような感覚を覚えても不思議ではない。LLMの翻訳は確かに素晴らしい。特に2026年のGPT-5.xやGemini 3 Proあたりになると、一般的なプロ翻訳者よりもうまいと思わせる場面が少なくない。*

(ただし、2025年までの段階で「LLMの翻訳は完璧だ」「人間など不要だ」と言っていた人については、自分に関係する限られたサンプルだけを見ていたか、あるいは機械翻訳ベンダーの営業トークを真に受けていたか、技術への期待が先行していた人たちだと私は考えている。そうした議論にも一定の意義はあるので、ここでは脇に置いておこう。LLMの翻訳が素晴らしいことは間違いない。おかしいのは「人間が不要になる」という結論のほうである。)

さておき、私が見ているさまざまなデータから言えることは、現段階で人間が不要になることを示す証拠は一切見当たらない、ということだ。これが率直な感想かつ客観的な評価である。

念のため、もう少し丁寧に書いておく。

個人翻訳者の立場では、異なる感想を持つ人もいるだろう。自分が時間をかけて仕上げた翻訳に匹敵するものが、クリック一つで生成されるのだから、「翻訳者が不要になるのではないか」と感じるのも自然である。

しかし、それは個人vs機械という対立軸で、翻訳スキルを単一のスカラーで評価した場合の話である。

一方で、翻訳を品質管理や運用の観点から見ると、まったく異なる風景が見えてくる。現時点では、人間を介在させずに、大規模な翻訳工程を回しながら明確な品質基準を満たせる仕組みは存在しない。

もちろん、個人がプロンプトを工夫して翻訳させれば、瞬間的に、手直しがほとんど不要なほど良い結果が得られることは珍しくない。問題は、SaaSやCMS/TMSと連携できる汎用性、スケールに耐える処理能力、実運用に耐える速度と安定性、さらにはドメインごとの品質の予測可能性やばらつきである。

 * * *

さて、このような状況では、用途ごとに異なるエンジンが開発され、使い分けられていくことになる。つまり、翻訳会社にとって重要になるのは、単一のエンジンではなく、複数エンジンを管理し、適切に評価・運用する能力である。

そのような中で、COMETは機械翻訳エンジンの性能を評価するうえで、最も信頼できる業界標準の一つとされている。ならば、COMETを使って複数エンジンの性能を効率よく分析・評価し、さらには予測することはできるだろうか。

こうした話題に興味を持つ人がどれほどいるのか正直分からないが、軽くPythonで試してみた。以下は、土曜日の朝の数時間でコーディングしただけの結果である。翻訳会社の人が読んだら参考になるかもしれないので、ご覧いただきたい。

 * * *

まずCOMETは、Transformerをベースとした評価モデルであり、それ自体が小規模なLLMの一種と考えてよい。

COMETのインストールはPythonから実行できる。

ただし、現在インストールする場合はPythonのバージョンに注意しよう。私がこれを書いている時点ではPython 3.13系が最新だが、COMETはPython 3.11系のほうが安定しているようだ。実際、私の環境でもPython 3.11に切り替えてから問題なくインストールできた。

まず、GPUのない一般的なPCでも実用的な速度で動作するかを確認してみた。

100セグメントの翻訳サンプルに対してCOMETを計測したところ、私のPC(RAM 32GB、GPUなし)で約1分だった。十分実用的な速度である。

ただし、COMETが出力する値は、あくまでそのサンプルに対する評価結果であり、統計学的には標本平均を一点で示したにすぎない。モデルの性能を議論するのであれば、信頼区間も示したい。

そこでブートストラップ法を用いる。例えば100サンプルから10,000個のブートストラップサンプルを生成し、そこから95%信頼区間を求める。ローカル環境へのCOMETインストールから始めて、対訳データを格納したExcelファイルの読み込み、ブートストラップ法の適用、各種出力の作成まで行った。

結果として、COMETスコアを、0.92~0.96のような幅をもった形で得られる。こういったデータを蓄積していけば、複数のエンジンの使い分けや、優越性・非劣性テストのようなことにも有効なはずだ。とくに、LLMはバージョンが上がると、それだけで挙動が変化し、翻訳品質自体が変わることもまれではない。

翻訳会社のMT担当者は、過去数年間、それを経験しているはずだ。そのたびにプロンプトの最適化などをする必要があり、それをしないと、品質が低下することすらある。この辺りも、翻訳のMT技術のフロントにいる人以外にはあまり知られていないかもしれない。

そこで、以前と同じプロンプトで翻訳を実行したまま、before afterで変化があるか・ないかをある程度自動的に計測できるツールがあれば、非常に便利だろう。

Pythonを知っているならば、これぐらいのコーディング自体は簡単にできると思う。

0 件のコメント:

コメントを投稿