AutoML Translation 初心者向けガイド

AutoML Translation を使用すると、デフォルトの Google ニューラル機械翻訳(NMT)モデルをそのまま使用した場合と比較して、お客様の分野固有のコンテンツに合わせてより調整されたカスタムモデルを作成できます(コードを記述する必要はありません)

新しい国々に展開する可能性のある財務報告サービスを運営していると想像してみてください。こうした市場では、時間的制約のある財務文書をリアルタイムで翻訳する必要があります。バイリンガルの金融スタッフを雇用する、あるいは金融専門の翻訳者と契約した場合、どちらの場合も金融に関する専門知識を有していることや、短納期での翻訳を求める必要があることから、費用がかさみます。代わりに、カスタムモデルを活用すれば、翻訳を自動化しつつスケールの拡大にも対応できます。

翻訳

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成し、実際のシナリオで Cloud Translation のパフォーマンスを評価してみてください。新規のお客様には、ワークロードの実行、テスト、デプロイを行う際に使用できる無料クレジット $300 分を差し上げます。

Cloud Translation の無料トライアル

この問題に機械学習(ML)が適したツールである理由

従来型のプログラミングでは、コンピュータが実行する手順をプログラマが 1 つずつ指示する必要があります。しかし、このルールベースのアプローチを翻訳に応用するのは現実的ではありません。自然言語は複雑であるため、翻訳もまた複雑です。機械翻訳のほとんどは統計的手法で行われています。言語の専門家が専門分野別のルールセットを手作業で細かく調整する代わりに、大規模な並列コーパスが使用されています。

求められているのは、幅広い翻訳シナリオに対して汎用化されているものの、それぞれのユースケースやタスク固有の語彙や言葉遣いにも、必要とする言語ペアでピンポイントで対応できるシステムです。一連の特定のルールが指数関数的に拡大することが想定される状況では、サンプルから学習できるシステムも必要です。幸いなことに、ML システムはこのような問題を解決するのに適しています。

デフォルトの NMT モデルとカスタムモデルのどちらが適しているか

ニューラル機械翻訳(NMT)モデルは、多数の言語ペアに対応し、汎用的なテキストに適しています。カスタムモデルの真価が発揮されるのは、汎用的な翻訳タスクと専門的でニッチな語彙をつなぐ「最後の工程」においてです。AutoML Translation は、汎用の NMT モデルから出発し、トレーニング データに合わせてモデルをチューニングすることで、お客様にとって重要な、分野に特化したコンテンツを適切に翻訳できるようにします。

ML を利用するために必要なこと

ML で望ましい結果を得るには、データを使用してアルゴリズムをトレーニングする必要があります。アルゴリズムの詳細やトレーニング方法は、問題の内容に応じて変わります。ML にはさまざまなサブカテゴリがあり、それらはすべて異なる問題を解決し、異なる制約の中で動作します。AutoML Translation を使用すると、翻訳されたセグメントのペアからパターンを認識するようにトレーニングする、教師あり学習を実施できます。教師あり学習を使用することで、お客様にとって重要な分野に特化したコンテンツを翻訳するようにカスタムモデルをトレーニングできます。

データ準備

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

ユースケースを検討する

データセットを用意するときは、常にユースケースの検討から始めます。まずは以下の点を考慮します。

  • どのような結果を得ようとしているか。
  • その結果を得るために、どのようなセグメントを翻訳する必要があるか。これは、NMT モデルですぐに実行できるタスクか。
  • 人間が十分な品質でそのセグメントを翻訳できるか。両方の言語に習熟している人でも十分な仕上がりを見込めないほど、その翻訳タスクが本質的に曖昧である場合、NMT モデルとカスタムモデルのパフォーマンスに差がみられないことがあります。
  • システムに翻訳させる必要があるデータの種類と範囲を最もよく表すのは、どのようなサンプルか。

Google の ML プロダクトを支える基本原則は、人間を中心とした ML です。これは責任ある AI への取り組みを重視したアプローチであり、公平性への取り組みなどが含まれます。ML における公平性の目的とは、歴史的に差別や過小評価の対象になった人々の人種、収入、性的指向、宗教、性別などの特性を理解し、そのような特性がアルゴリズム システムやアルゴリズムによる意思決定に現れる場合に、不公平で偏見的な扱いを防止することです。詳細についてはガイドをお読みいただくか、ガイドラインの公平性の認識の注記 ✽ でご確認いただけます。データセットを用意するためのガイドラインを読み進めながら、ご自身のユースケースに関係するところで ML における公平性について検討してみてください。

データを調達する

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

データを対象分野に合わせる

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

表現の多様性を考慮する

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

担当者が必ず確認を行う

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

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

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

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

AutoML Translation によるデータの前処理

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

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

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

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

自動データ分割の場合、AutoML Translation は次のような追加の処理を行います。

  • データセットがアップロードされた後、ソース セグメントが同一のセグメントペアを削除します。
  • トレーニングの前に、データを 8:1:1(トレーニング:検証:テスト)の比率で 3 つのセットにランダムに分割します。

カスタムモデルの作成時に AutoML Translation がどのようにデータセットを使用するかを考慮する

データセットには、トレーニング セット、検証セット、テストセットが含まれます。データセットの分割を指定せず(トレーニング データの準備を参照)、データセットに含まれるセグメントペアが 100,000 個未満の場合、AutoML Translation では、コンテンツ ドキュメントの 80% がトレーニングに、10% が検証に、10% がテストに自動的に使用されます。これより大規模なデータの場合は、ご自身でデータを分割する必要があります。

トレーニング セット

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

検証セット

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

テストセット

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

手動分割

AutoML Translation では、データをトレーニング セット、検証セット、テストセットに分割できます。より詳細にプロセスを制御する場合や、異なる比率でデータを分割する場合、モデルのトレーニング ライフサイクルの特定の部分に特定のサンプルを確実に含める場合は、手動でデータを分割することもできます。

 

インポートするデータを準備する

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

  • 1 行あたり 1 つのセグメントペアが配置された、ソースとターゲットのセグメントからなるタブ区切り値(TSV)ファイルとしてデータをインポートできます。
  • 自動翻訳モデルツールにセグメントペアを提供する際の標準形式である TMX ファイルでデータをインポートできます(サポートされる TMX 形式の詳細については、こちらをご覧ください)。TMX ファイルに無効な XML タグが含まれている場合、AutoML では無視されます。TMX ファイルが適切な XML 形式と TMX 形式に準拠していない場合(たとえば、終了タグや <tmx> 要素がない場合)、AutoML はそのファイルの処理を行いません。また、Cloud Translation は、1,024 個を超える無効な <tu> 要素をスキップした場合、処理を終了してエラーを返します。

評価

モデルのトレーニングが完了すると、モデルのパフォーマンスの概要が表示されます。[トレーニング] タブをクリックして、詳細な分析を表示します。

モデルを評価する前の留意点

モデルのデバッグは、モデル自体よりもデータを対象とするものです。本番環境への移行前後でモデルのパフォーマンスを評価しているときに、モデルが予期しない動作をするようになった場合は、いったん戻ってデータをチェックし、改善が必要な箇所を見つける必要があります。

BLEU スコア

BLEU スコアは、機械翻訳システムの品質を測定するための標準的な方法です。AutoML Translation では、提供したテストデータに対して計算された BLEU スコアを主な評価指標として使用します(BLEU スコアの詳細については、こちらをご覧ください)。

Cloud Translation API で使用されている Google NMT モデルは、一般的な使用方法を想定して構築されています。独自の分野に特化した翻訳をお求めの場合には最良の方法ではないかもしれません。トレーニングされたカスタムモデルは、一般的にトレーニング セットに関連する分野において NMT モデルよりも優れています。

独自のデータセットを使用してカスタムモデルをトレーニングすると、カスタムモデルと Google NMT モデルの BLEU スコアが [トレーニング] タブに表示されます。また、[トレーニング] タブには、カスタムモデルで得た BLEU スコアのパフォーマンスも表示されています。BLEU スコアが高いほど、トレーニング データに類似したセグメントのモデルでの翻訳が向上します。BLEU スコアが 30~40 の範囲内にある場合、モデルは良質な翻訳を提供できると考えられます。

モデルのテスト

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

モデル作成について特に心配しているミスがある場合(たとえば、言語ペアに関する翻訳者が陥りやすい文法上の落とし穴や、金銭的にも評判にも大きな損失を招く翻訳ミスなど)、日々の業務でモデルを安心して使用できるように、テストセットや手順がそのミスに適切に対応していることを確認してください。

次のステップ