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 スコアを比較することは推奨されません。たとえば、英語からドイツ語への BLEU スコアが 50 の場合、日本語から英語への BLEU スコアが 50 の場合とは比較できません。多くの翻訳の専門家は、モデルベースの指標アプローチに移行しています。このアプローチは、人間の評価との相関が高く、エラー シナリオの特定がより詳細です。
AutoML Translation は BLEU スコアのみをサポートしています。モデルベースの指標を使用して翻訳モデルを評価するには、Vertex AI の Gen AI 評価サービスをご覧ください。
モデルのテスト
BLEU スコアに問題がない場合でも、パフォーマンスが予想どおりであることを確かめるためにモデルのチェックを実施することをおすすめします。トレーニング データとテストデータが、誤りが含まれる同一のサンプルセットから抽出されている場合、翻訳が意味不明であっても、高スコアが発生する可能性があります。[予測] タブに入力としてサンプルを追加し、カスタムモデルと Google NMT ベースモデルの結果を比較します。特にセグメントが短い場合やトレーニング セットのサイズが小さい場合は、モデルがベースモデルと同じ予測をするかもしれません。これは予想外の結果ではありません。ベースモデルはすでに幅広いユースケースに適しているからです。長く複雑なセグメントで試してみてください。ただし、すべてのセグメントがベースモデルでの予測と同じになった場合、データに問題があることを示している可能性があります。
モデル作成について特に心配しているミスがある場合(たとえば、言語ペアに関する翻訳者が陥りやすい文法上の落とし穴や、金銭的にも評判にも大きな損失を招く翻訳ミスなど)、日々の業務でモデルを安心して使用できるように、テストセットや手順がそのミスに適切に対応していることを確認してください。
次のステップ
- 独自のデータセットとカスタムモデルを作成する。トレーニング データを準備するでデータの準備方法を確認してください。