NMT モデルのカスタマイズ

Cloud Translation - Advanced API を使用すると、コードを記述せずに Google のニューラル機械翻訳(NMT)モデルをカスタマイズできます。つまり、カスタムモデルを分野固有のコンテンツに合わせて調整し、デフォルトの Google NMT モデルよりも正確な翻訳を生成できます。

NMT モデルは、多数の言語ペアに対応し、汎用的なテキストに適しています。カスタムモデルの真価が発揮されるのは、専門的でニッチな語彙を扱う場合です。NMT モデルをカスタマイズすると、お客様にとって重要な分野固有の用語を適切に翻訳できます。

新しい国々に展開する可能性のある専門的なレポート サービスを運営している場合。こうした市場では、専門用語を含め、時間的制約のあるコンテンツをリアルタイムで正確に翻訳する必要があります。バイリンガルのスタッフを雇用したり、専門の翻訳者と契約したりすると、どちらの場合も費用がかさみます。代わりに、カスタムモデルを作成して調整すれば、リアルタイムで翻訳をはるかに低コストで行うことができます。

データ準備

カスタムモデルをトレーニングするには、ソース言語とターゲット言語で一致するセグメントのペアを指定します。これは、翻訳元の言語と翻訳先の言語で同じ意味を持つ単語やフレーズのペアです。セグメントのペアの意味が近いほど、モデルはうまく機能します。

一致するセグメント ペアのデータセットを作成するときは、ユースケースから始めます。

  • どのような結果を得ようとしているのか。

  • その結果を得るために、どのようなセグメントを正しく翻訳することが重要か。NMT モデルですぐに実行できるか。

  • 人間が十分な品質でその主要なセグメントを翻訳できるか。両方の言語に堪能な人でも十分な仕上がりを見込めないほど、その翻訳タスクが曖昧である場合、NMT モデルのパフォーマンスはカスタムモデルと同程度になる可能性があります。

  • システムで翻訳する必要があるセグメント ペアの種類と範囲を最もよく反映するサンプルはどのようなものか。

データを問題の分野に合わせる

特定の言語分野に適合するモデルが必要なため、カスタム翻訳モデルをトレーニングしているとします。このとき、セグメントのペアが、対象の業界や分野の語彙、用例、文法上の特性をできる限り網羅するようにしてください。対象となる翻訳タスクで典型的な用例を含むドキュメントを探し、翻訳元と翻訳先の言語でフレーズの意味ができる限り近いことを確認してください。もちろん、語彙や構文が言語間で完全には対応しない場合もありますが、できる限り、出現することが予想される多様な言い回しなどを網羅するように努めてください。汎用的な翻訳ですでに高い成果を達成しているモデルを土台にしているので、お客様からサンプルを提供していただくことが、カスタムモデルをお客様のユースケースに特化させて機能させるための特別な最終ステップとなります。そのため、サンプルはカスタムモデルを使用する典型的なものであることを確認してください。

言語空間の多様性を考慮する

特定の分野に関する記述方法がほぼ統一されているため、少数の翻訳者によって翻訳された少量のテキスト サンプルさえあれば、その分野について記述するすべての人に通用するモデルをトレーニングできると考えがちですが、人には個性があり、それが書き方に現れます。幅広い著者や翻訳者によるセグメントペアが含まれているトレーニング データセットを用意することで、多様な組織の文章の翻訳に役立つモデルを構築できる可能性が高くなります。また、セグメントの長さや構造の多様性も考慮してください。データセット内のすべてのセグメントが同じサイズの場合や、文法構造が似ている場合、あらゆる可能性に対応できる優れたカスタムモデルを構築できません。

データを調達する

必要なデータが決まったら、次にデータの調達方法を見つける必要があります。まずは、組織で現在収集しているあらゆるデータを考慮に入れるところから始めます。モデルをトレーニングするために必要なデータがすでに収集されている場合もあります。必要なデータがない場合、自力で収集することも、サードパーティ プロバイダにデータの収集を委託することもできます。

担当者が必ず確認を行う

可能であれば、両言語をよく理解する人が、セグメントペアが正確に一致し、わかりやすく正確な翻訳になっていることを確認してください。トレーニング データのスプレッドシートの行がずれるなどのよくあるミスで、まったく意味不明な翻訳になる場合があります。ビジネスに役立つモデルを実現するには、Cloud Translation - Advanced API に高品質のデータを提供することが非常に重要です。

セグメント ペアの開発における公平性を考慮する

Google の ML プロダクトを支える基本原則は、人間を中心とした機械学習です。これは責任ある AI への取り組みを重視したアプローチであり、公平性への取り組みなどが含まれます。ML における公平性の目標は、人種、所得、性的指向、宗教、性別、その他の差別や疎外と歴史的に関連付けられてきた特性に関連する不当または偏見のある扱いが、アルゴリズム システムやアルゴリズム支援の意思決定において現れる場合や場所を理解し、防止することです。詳細については、ガイドと、以下の公平性の認識の注記をご覧ください。

  • 所在地域とアプリケーションのサービス提供地域の両方の法規制と、事業分野の既存の研究資料やプロダクト情報を確認して、法的指針と文化的な問題の可能性についての理解を深めます。詳細

  • ユースケースやプロダクトによって、個人の経済的機会あるいはその他重要な機会に、不都合が生じる可能性があるかどうかを検討してください。可能性がある場合は、詳細をご覧ください。

  • 特定のサブグループに関するデータが不十分な場合は、トレーニング データとテストデータの分割をご自身で行い、トレーニング セットとテストセットの間で、データがそれぞれを代表するように分散させてください。

  • テストを行う際は、問題のドメインと、不公正性およびバイアスが生じる可能性について慎重に検討します。本番環境で検出された場合にユーザーに悪影響を及ぼす可能性があるケースを見つけ、それらを最初にテストします。詳細

  • 公平性への考慮を必要とするユースケースがある場合は、バイアスや悪影響を軽減するモデルの使用方法について、詳細

  • 公平性に関するデータガイドラインの追加

データをクリーンアップする

データの前処理ではミスが起きやすく、それがカスタムモデルをひどく混乱させる場合があります。特に、データに関する次のような問題がないか注意し、あった場合は修正してください。

  • 重複するソース セグメントを削除します(特に、ターゲット言語の翻訳が異なる場合)。Cloud Translation - Advanced API は最初に検出されたサンプルのみを使用し、インポート時に他のすべてのペアを削除します。重複を削除すると、Cloud Translation - Advanced API が優先すべき翻訳を確実に使用するようになります。
  • ソース セグメントと適正なターゲット セグメントが一致するよう調整します。
  • 指定された言語に対してセグメントを照合します。たとえば、中国語のデータセットには中国語のセグメントのみを含めます。
  • 複数の言語が混在するターゲット セグメントの場合は、未翻訳の単語がプロダクトや組織の名前など、意図的にそうされているものであることを確認します。翻訳されていない単語を誤って含んだターゲット セグメントにより、トレーニング データにノイズが発生し、モデルの品質が低下する可能性があります。
  • モデルがこれらのエラーを学習しないように、入力ミスや文法的な誤りのあるセグメントを修正します。
  • プレースホルダ タグや HTML タグなど、翻訳できないコンテンツは削除します。翻訳できないコンテンツは句読点エラーとなる可能性があります。
  • 一般的なエンティティを固有名詞に置き換えるセグメント ペアは含めないでください。たとえば、「大統領」のような一般的な用語を「JFK」のような特定の大統領の名前に翻訳する例は避けてください。これにより、モデルは 大統領のすべてのインスタンスを JFK に変更するように学習する可能性があります。代わりに、そのようなセグメントのペアを削除するか、固有名詞を普通名詞に変更してください。
  • トレーニング セットとテストセットで重複するセグメントを削除します(データセットを 3 つのサブセットに分割する方法については、データセットの分割をご覧ください)。
  • 複数のセグメントを異なるセグメントペアに分割します。多数のアイテムに 50 以上のトークン(単語)が含まれているデータセットをトレーニングすると、モデルの品質が低くなります。可能な場合は、アイテムを個々のセンテンスに分割してください。
  • 大文字と小文字に一貫性を持たせます。大文字と小文字の区別は、たとえば、見出しと本文の識別など、モデルがどのように学習するかに影響を与えます。
  • TSV ファイルからデータをインポートする際は、TMX タグを削除します。場合によっては、既存の翻訳メモリを TSV ファイルにエクスポートすることもあります。このファイルには TMX タグが含まれる場合があります。ただし、Cloud Translation - Advanced API では、TMX ファイルからのインポート時にのみ、翻訳単位タグがクリーンアップされます(TSV ファイルの場合はクリーンアップされません)。

データ処理

Cloud Translation - Advanced API では、以下の場合にデータ入力ファイルの解析を停止します。

  • 無効な書式が含まれています。
  • 異常に長いセグメントペア(10 MB)がある。
  • ファイルに UTF-8 以外のエンコードが使用されている。

Cloud Translation - Advanced API では、以下のような検出不可能な問題に関するエラーが無視されます。

  • ソース言語またはターゲット言語を指定していない TMX ファイルの <tu> 要素。
  • 入力セグメントペアの一方が空である。

自動データ分割の場合、Cloud Translation - Advanced API は追加の処理を行います(データセットの分割をご覧ください)。

  • データセットがアップロードされた後、ソース セグメントが同一のセグメントペアを削除します。

  • トレーニングの前に、データを 8:1:1(トレーニング:検証:テスト)の比率で 3 つのセットにランダムに分割します。

データセットの分割

セグメント ペアのデータセットは、トレーニング、検証、テスト用に 3 つのサブセットに分割されます。

  • トレーニング セット
    データの大部分をトレーニング セットに含めるようにします。これはトレーニング中にモデルが「見る」データであり、モデルのパラメータを学習し、ニューラル ネットワークのノード間の接続の重みを計算するために使用されます。

  • 検証セット
    検証セット(「開発」セットとも呼ばれる)はトレーニング プロセス中にも使用されます。モデルの学習中、フレームワークではトレーニング セットを使用して一連の候補モデルがトレーニングされ、検証セットに対するモデルのパフォーマンスを考慮して、生成されたモデルの中から最適なものが選択されます。検証セットに対するモデルのパフォーマンスに基づき、そのハイパーパラメータ(モデルの構造を指定する変数)を調整します。ハイパーパラメータの調整にトレーニング セットを使用すると、モデルがトレーニング データに過度に適合してしまいます。多少違ったデータセットを使ってモデル構造を細かく調整すると、モデルがより一般化されます。

  • テストセット
    テストセットはトレーニング プロセスにはまったく使用されません。モデルのトレーニングが完了したら、モデル向けのまったく新しい課題としてテストセットを使用します。テストセットに対するモデルのパフォーマンスを知ることで、モデルが実世界のデータに対してどのように機能するかをおおよそ理解できます。

トレーニング データの準備で説明されているように、データセットをこれらの関数間で分割する方法を手動で指定せず、データセットに含まれるセグメントペアが 100,000 個未満の場合、Cloud Translation - Advanced API は、コンテンツ ドキュメントの 80% をトレーニングに、10% を検証に、10% をテストに自動的に使用します。これより大規模なデータの場合は、分割方法を明示的に指定する必要があります。手動分割では、分割の割合を決定できるだけでなく、特定のセグメントペアを含める特定のセットを指定することもできるため、プロセスをより詳細に制御できます。

データのインポート

データの手動分割と自動分割のどちらが適切かを判断したら、次の 2 つの方法でデータを追加できます。

  • 1 行あたり 1 つのセグメントペアが配置された、ソースとターゲットのセグメントからなるタブ区切り値(TSV)ファイルとしてデータをインポートできます。

  • 自動翻訳モデルツールにセグメントペアを提供する際の標準形式である TMX ファイルでデータをインポートできます(TMX 形式の詳細については、トレーニング データを準備するをご覧ください)。TMX ファイルに無効な XML タグが含まれている場合、Cloud Translation - Advanced API はそれらを無視します。終了タグや <tmx> 要素がないなど、TMX ファイルに XML エラーまたは TMX エラーが含まれている場合、Cloud Translation - Advanced API は、1,024 個を超える無効な `' 要素をスキップすると、処理を終了してエラーを返します。

カスタムモデルの事前評価

モデルのトレーニングが完了すると、モデルのパフォーマンスの概要が表示されます。[トレーニング] タブをクリックして、詳細な分析を表示します。カスタムモデルと標準の Google NMT モデルの BLEU スコアが [トレーニング] タブに表示されます。また、カスタムモードを使用することで得られた BLEU スコアのパフォーマンスも表示されます。

BLEU スコアが高いほど、トレーニング データに類似したセグメントのモデルでの翻訳が向上します。30 ~ 40 の範囲のスコアは良好と見なされます。BLEU スコアの詳細については、BLEU 翻訳品質指標 BLEU をご覧ください。

BLEU スコアよりも信頼性の高い評価指標は他にもあります。これらの評価オプションについては、翻訳モデルを評価するをご覧ください。

デバッグ

カスタムモデルのデバッグは、モデル自体よりもデータを重点的にデバッグする作業です。モデルが意図したとおりに翻訳されない場合は、データをチェックして改善の余地がある箇所を確認します。

テスト

BLEU スコアに問題がない場合でも、パフォーマンスが予想どおりであることを確かめるためにモデルのチェックを実施することをおすすめします。トレーニング データとテストデータが、誤りが含まれる同一のサンプルセットから抽出されている場合、翻訳が意味不明であっても、高スコアが発生する可能性があります。[予測] タブに入力としてサンプルを追加し、カスタムモデルと Google NMT ベースモデルの結果を比較します。ベースモデルはすでに幅広いユースケースに対応しているため、特にセグメントが短い場合やトレーニング セットのサイズが小さい場合は、モデルがベースモデルと同じ予測をするかもしれません。その場合は、長く複雑なセグメントで試してみてください。ただし、すべてのセグメントがベースモデルでの予測と同じになった場合、データに問題があることを示している可能性があります。

モデルが犯す可能性のある間違い(金銭的または評判に影響する翻訳ミスなど)が特に気になる場合は、テストセットまたは手順でそのケースが十分にカバーされていることを確認し、日常業務でモデルを安心して使用できるようにしてください。

次のステップ