モデルを評価する

モデルをトレーニングした後、AutoML Translation は TEST セットを使用して新しいモデルの品質と精度を評価します。AutoML Translation は、BLEU(Bilingual Evaluation Understudy)スコアを使用してモデルの品質を表現します。このスコアは、候補テキストと参照テキストの類似度を示します。BLEU スコア値が 1 に近いほど、翻訳が参照テキストに近いことを示します。

このデータを使用して、モデルの準備状況を評価します。モデルの品質を改善するには、トレーニング用のセグメントペアをさらに追加する(そして多様性を高める)ことを検討してください。データセットを調整したら、改善されたデータセットで新しいモデルをトレーニングします。

モデル評価を取得する

  1. AutoML Translation のコンソールに移動します。

    [翻訳] ページに移動

  2. ナビゲーション メニューで [モデル] をクリックして、モデルのリストを表示します。

  3. 評価するモデルをクリックします。

  4. [トレーニング] タブをクリックして、モデルの評価指標(BLEU スコアなど)を表示します。

モデルの予測をテストする

Google Cloud コンソールを使用して、カスタムモデルの翻訳結果をデフォルトの NMT モデルと比較します。

  1. AutoML Translation のコンソールに移動します。

    [翻訳] ページに移動

  2. ナビゲーション メニューで [モデル] をクリックして、モデルのリストを表示します。

  3. テストするモデルをクリックします。

  4. [予測] タブをクリックします。

  5. ソース言語のテキスト ボックスに入力テキストを追加します。

  6. [翻訳] をクリックします。

    AutoML Translation は、カスタムモデルと NMT モデルの翻訳結果を表示します。

新しいテストセットを使用したモデルの評価と比較

Google Cloud コンソールでは、新しいテストデータのセットを使用して既存のモデルを再評価できます。1 回で最大 5 つの異なるモデルを評価して比較できます。

テストデータをタブ区切り形式値(TSV)ファイルまたは Translation Memory eXchange(TMX)ファイルとして Cloud Storage にアップロードします。

AutoML Translation では、テストセットに対してモデルを評価し、評価スコアを生成します。必要に応じて、各モデルの結果を TSV ファイルとして Cloud Storage バケットに保存できます。各行の形式は次のとおりです。

Source segment tab Model candidate translation tab Reference translation
  1. AutoML Translation のコンソールに移動します。

    [翻訳] ページに移動

  2. ナビゲーション メニューで [モデル] をクリックして、モデルのリストを表示します。

  3. 評価するモデルをクリックします。

  4. [評価] タブをクリックします。

  5. [評価] タブで、[新しい評価] をクリックします。

  6. 評価および比較するモデルを選択し、[次へ] をクリックします。

    現在のモデルを選択する必要があります。デフォルトでは Google NMT が選択されていますが、この選択は解除できます。

  7. 他の評価と区別しやすいようにテストセット名を指定して、Cloud Storage から新しいテストセットを選択します。

  8. [Next(次へ)] をクリックします。

  9. 予測をエクスポートするには、Cloud Storage の宛先フォルダを指定します。

  10. [評価を開始] をクリックします。

    評価が完了すると、AutoML Translation はコンソールにテーブル形式で評価スコアを表示します。評価は一度に 1 つしか実行できません。予測結果を保存するフォルダを指定すると、AutoML Translation は、関連するモデル ID とテストセット名が付加された名前の場所に TSV ファイルを書き込みます。

BLEU スコアの解釈

BLEU(BiLingual Evaluation Understudy)は、機械翻訳されたテキストを自動的に評価するための指標です。BLEU スコアは、機械翻訳されたテキストと高品質な参照訳の類似度を測定する 0 から 1 までの数値です。値が 0 の場合、機械翻訳の出力に参照訳と一致する部分がない(品質が低い)ことを意味します。値が 1 の場合は、参照訳と完全に一致している(品質が高い)ことを意味します。

BLEU スコアは、人が翻訳品質を評価する場合とよく似ていることがわかっています。人の翻訳者が評価しても、1.0 という完全なスコアには達しません。

AutoML Translation では、BLEU スコアを 0 から 1 の小数ではなく割合で表します。

解釈

異なるコーパス間や言語間で BLEU スコアを比較することは推奨されません。同じコーパスについて BLEU スコアを比較しても、参照訳の数が異なっていれば、紛らわしくなる可能性があります。

ただし、大まかなガイドラインとして、次に示す BLEU スコアの解釈が参考になります(BLEU スコアは、小数ではなく割合として表しています)。

BLEU スコア 解釈
< 10 ほとんど役に立たない
10~19 主旨を理解するのが困難である
20~29 主旨は明白であるが、文法上の重大なエラーがある
30~40 理解できる、適度な品質の翻訳
40~50 高品質な翻訳
50~60 非常に高品質で、適切かつ流暢な翻訳
> 60 人が翻訳した場合よりも高品質であることが多い

次のカラー グラデーションは、BLEU スコアの解釈の一般的な尺度として使用できます。

解釈の一般的な尺度

数学的な詳細

数学的には、BLEU スコアは次のように定義されます。

$$ \text{BLEU} = \underbrace{\vphantom{\prod_i^4}\min\Big(1, \exp\big(1-\frac{\text{reference-length}} {\text{output-length}}\big)\Big)}_{\text{brevity penalty}} \underbrace{\Big(\prod_{i=1}^{4} precision_i\Big)^{1/4}}_{\text{n-gram overlap}} $$

使えば

\[ precision_i = \dfrac{\sum_{\text{snt}\in\text{Cand-Corpus}}\sum_{i\in\text{snt}}\min(m^i_{cand}, m^i_{ref})} {w_t^i = \sum_{\text{snt'}\in\text{Cand-Corpus}}\sum_{i'\in\text{snt'}} m^{i'}_{cand}} \]

それぞれの意味は次のとおりです。

  • \(m_{cand}^i\hphantom{xi}\) は、参照訳と一致する候補訳内の i グラムのカウントです。
  • \(m_{ref}^i\hphantom{xxx}\) は、参照訳内の i グラムのカウントです。
  • \(w_t^i\hphantom{m_{max}}\) は、候補訳内の i グラムの総数です。

数式は、Brevity Penalty(短さのペナルティ)と n グラム適合率の 2 つの部分で構成されます。

  • Brevity Penalty
    Brevity Penalty は、最も近い参照訳の長さと比較して、生成された翻訳が短すぎる場合に指数関数的減衰を使用してペナルティを課します。Brevity Penalty は、BLEU スコアに再現率の項がないという事実を補正します。

  • n グラム適合率
    n グラム適合率は、1 グラム、2 グラム、3 グラム、4 グラム(i=1,...,4)が参照訳内の対応する n グラムと一致する数をカウントします。この項は、精度の指標として機能します。1 グラムは適切さを評価し、それよりも長い n グラムは翻訳の流暢さを評価します。オーバーカウントを避けるために、n グラムのカウントは、参照訳に出現する n グラムの最大カウント(\(m_{ref}^n\))に切り詰められます。

\(precision_1\) の計算

次のような参照文と候補訳について考えてみましょう。

参照文: the cat is on the mat
候補訳: the the the cat mat

最初のステップでは、参照文と候補訳における各 1 グラムの出現回数をカウントします。BLEU 指標では大文字と小文字が区別されます。

1 グラム \(m_{cand}^i\hphantom{xi}\) \(m_{ref}^i\hphantom{xxx}\) \(\min(m^i_{cand}, m^i_{ref})\)
the 3 2 2
cat 1 1 1
is 0 1 0
on 0 1 0
mat 1 1 1

候補訳内の 1 グラムの総数(\(w_t^1\))は 5 なので、\(precision_1\) = (2 + 1 + 1)/5 = 0.8 となります。

BLEU スコアの計算

参照文:     The NASA Opportunity rover is battling a massive dust storm on Mars .
候補訳 1: The Opportunity rover is combating a big sandstorm on Mars .
候補訳 2: A NASA rover is fighting a massive storm on Mars .

上記の例は、1 つの参照文と 2 つの候補訳で構成されています。これらの文は、前に示したように BLEU スコアを計算する前にトークン化されます。たとえば、最後のピリオドは別個のトークンとしてカウントされます。

各翻訳の BLEU スコアを計算するために、次の統計を計算します。

  • n グラム適合率
    次の表に、両方の候補訳に対する n グラム適合率を示します。
  • Brevity-Penalty
    候補訳 1 も候補訳 2 も 11 個のトークンで構成されているので、Brevity Penalty は両方の文で同じです。
  • BLEU スコア
    BLEU スコアが 0 より大きくなるには、一致する 4 グラムが少なくとも 1 つ必要です。候補訳 1 には一致する 4 グラムがないので、BLEU スコアは 0 です。
指標 候補訳 1 候補訳 2
\(precision_1\)(1 グラム) 8/11 9/11
\(precision_2\)(2 グラム) 4/10 5/10
\(precision_3\)(3 グラム) 2/9 2/9
\(precision_4\)(4 グラム) 0/8 1/8
Brevity Penalty 0.83 0.83
BLEU スコア 0.0 0.27

特性

  • BLEU はコーパスベースの指標である
    BLEU 指標を個々の文の評価に使用した場合は、うまく機能しません。たとえば、例の 2 つの文はほとんどの意味をとらえていますが、どちらの BLEU スコアも低くなっています。個々の文の n グラム統計はあまり意味がないので、BLEU はコーパスベースの指標として設計されています。つまり、スコアを計算する際には、コーパス全体で統計が収集されます。上記で定義した BLEU 指標は個々の文に対して因数分解できません。

  • 内容語と機能語の区別がない
    BLEU 指標では、内容語と機能語が区別されません。つまり、「a」のような機能語が抜けている語句の場合、「NASA」という名前が誤って「ESA」に置換された場合と同じペナルティが課せられます。

  • 文の意味や文法の正しさまでは十分に評価できない
    「not」のような単語が 1 つ抜けると、文の意味が正反対になる場合があります。また、n が 4 以下の n グラムのみを考慮すると、長い範囲の依存性が無視されるため、BLEU は、文法に合わない文に小さいペナルティしか課さないことがよくあります。

  • 正規化とトークン化
    BLEU スコアを計算する前に、参照訳と候補訳の両方が正規化され、トークン化されます。正規化とトークン化の手順の選択は、最終的な BLEU スコアに大きな影響を与えます。