chatGPTが注目されて楽しいサービスが生まれている今日この頃。フリーの大規模言語モデルも公開されたりしていますが、日本語の学習はどうしても弱い気がします。残念です。翻訳と合わせて使うほうがコストが低いかも・・・。そこで、思い付きでローカルで動かせる翻訳モデルを試してみた。
Metaのマルチ言語モデルNLLB200と、個人で学習されたFuguMTを比較してみる。ただし、NLLN200はファイルサイズが近いdense, 600Mのモデルとした。
文章はシャーロック・ホームズのボヘミアの醜聞の一節を使う。なお、FuguMTのサンプルコードだと文章毎に分割して翻訳するように書いてあった。NLLB200は、比較のため事前分割あり・なしで比較することにした。
翻訳した文章。
英語
I had seen little of Holmes lately.
My marriage had drifted us away from each other.
日本語
最近はホームズとほとんど会っていなかった.
私の結婚で私達の関係は疎遠になっていた.
英語→日本語
NLLB200
文章分割無し
最近ホームズに会ったことがほとんどなかった 私の結婚は 私たちを離れさせた
文章分割有り
最近ホームズを見なかった 結婚は 私たちを離れさせた
Wall time: 7.42 s (2通りで)
FuguMT
最近ホームズにほとんど会わなかった。
私の結婚は私たちをお互いから遠ざけていた。
Wall time: 1.32 s
NLLB200は分割した方がいまいちな印象。FuguMTの方が多少自然な役になっている。
日本語→英語
MLLB
文章分割無し
I've been in a relationship with my husband, and my relationship with him has been very strained.
文章分割有り
I've barely met with Holmes lately. My marriage had made our relationship distant.
Wall time: 15.1 s(2通りで)
FuguMT
I haven't seen much of Holmes lately.
Our relationship was estranged by my marriage.
Wall time: 1.35 s
文章を分割しないNLLBの訳文は良くなかったが、分割することでマシに。FuguMTも十分理解できる訳文になっている。
ごくごく簡単なテストだが、個人で開発されたFuguMTがここまでよいとは・・・。丁寧な学習データを用意されたのだろう。今回は、文章単位で翻訳する方がいい感じだという結果になった。本来は文章の前後まで考慮して翻訳するほうがより正確な文章が得られると考えられるけれども、よい学習データとパラメータ数のバランスで最適な使い方も変わってくるのかなぁ、と、素人的に思うのであった。
良質のデータセット作りにこそみんなで取り組むべきとも。