Laravel AI Translator: さらに強力になったLaravelベース(またはCrowdin)のプロダクト向けAI翻訳システム
(github.com/kargnas)以前ご紹介しましたが、新機能の追加とリファクタリングを行ったので共有します。
私はグローバルゲームデータサービス OP.GG を創業し、運営しています。
私たちは15言語を超える言語でサービスを提供していますが、これまで人間の翻訳者を利用する中で、スケジュールが数か月単位で遅れることがあったり、翻訳会社がこっそり機械翻訳を使って納品してくる不正に遭ったり、翻訳品質があまりにも低かったりと、さまざまな問題を経験し、その中で新たに構想したプロジェクトです。
このプロジェクトは、3言語以上に翻訳する場合、人に任せるよりはるかに速く(数分以内に)、そして最高品質ではないとしても少なくとも中以上の品質を保証するために、AI技術を使って作ってみようという目標で始めました。目標は、人間翻訳が 90点、Google翻訳が 30点 だとすると、この翻訳機は 80点 を出すことです。そして LLM の進化に伴い、1〜2年以内に90点以上も狙えるのではないかと思います。もちろんコストは人間よりはるかに低いです。
主に考慮した機能は次のとおりです。
- 可能な限り多くの関連 String を AI リクエスト時のコンテキストに含め、翻訳の一貫性と用語の一貫性を高めます。ソース言語の文字列と、ターゲット言語ですでに翻訳済みの文字列をコンテキストに含めます。 [新機能]
- ソーシャル翻訳プラットフォームであり、外部委託しやすい業者とも連携している翻訳プラットフォーム CrowdIn を利用している場合、CrowdIn のプロジェクトも翻訳できる機能が隠されています。Laravel とはまったく関係のないプロジェクトでも活用できます。ドキュメントにはありませんが、社内用として開発しました。(コマンド:
ai-translator:translate-crowdin) [新機能] - LLM が対応する世界中のあらゆる言語を設定可能
- 独自言語機能を追加可能。北朝鮮の文化語、Reddit 用語などが
README.mdに例として示されています。
- 独自言語機能を追加可能。北朝鮮の文化語、Reddit 用語などが
- Claude、OpenAI をサポート(ただし、品質が高いため Claude モデルの利用を推奨)
- Claude 3.7 Deep Thinking 対応 [新機能]
- Laravel ローカリゼーション機能の複数形処理(Plural)をサポート
- 言語を賢く翻訳するよう設計
- 文なのか単語なのかを区別して翻訳
- Key を見て、可能な限り開発者の意図に合わせて翻訳(そのため key は非常に明確に表現する必要があります)
- 各言語および各プロジェクトごとにコンテキストを追加し、プロジェクト翻訳時により自然な訳文になるようにする(核心)
- 単に翻訳させるよりも、このプロジェクトにおける特定の単語が何を意味するのかを AI に明確に伝えることが、品質向上にとても重要です。
- たとえば英語で 'Champion' という単語を使う場合、韓国語に翻訳するときは「チャンピオン」、中国語に翻訳するときは 英雄(ヒーロー) にするといったことを伝えると、はるかに自然に翻訳されます。
Prompt 作成を学んでいる方であれば、このフォルダを訪れて、私が作ったプロンプトを見てみてください。さらに加えたいアイデアがあれば、Pull Request をお願いします。
5件のコメント
Laravel の公式ドキュメントも可能でしょうか?
良いプロジェクトのご紹介ありがとうございます。
もし docker イメージをご提供いただけると、より便利に使えそうです
LLM API を使うとコストがかなり高くなることがあるので、入力値に対するコスト予測機能もあるとよいと思います。
north koreanのバンドルが提供されているのが面白いですね。OP.GGユーザーとして応援していますかなり初期の頃から多言語対応に取り組まれていたように思います。応援しています。