SlideShare a Scribd company logo
Google's Neural Machine
Translation System: Bridging the
Gap between Human and
Machine Translation
中澤 敏明
2016年 黒橋・河原研 夏の勉強会
http://arxiv.org/abs/1609.08144
NMTの問題点
1. トレーニングも翻訳も(PBSMTに比べて)遅い
2. 低頻度語の翻訳が弱い
– 既存手法はattentionに頼っているが、attentionは
信頼性が低い
• Addressing the Rare Word Problem in Neural Machine
Translation
• On Using Very Large Target Vocabulary for Neural Machine
Translation
– 翻字(transliteration)するべきな時もある
3. 必ずしも入力文の全てを翻訳してくれない
4. いろいろ手法が提案されてるけど、scaleする?
Google’s Neural Machine Translation:
GNMT
• ベースはattentionモデル
• 8層LSTM RNN with residual connection
• 計算の並列化のために、attentionはdecoderの1
層目からencoderの最終層に対して行う
• 重みの量子化(quantization)による高速inference
• Tensor Processing Unit (TPU)
• 低頻度語をsub-word units (wordpieces)で扱う
• beam search decodingでlength normalizationと
coverage penaltyを使う
quality of the system gets closer to that of average
human translators
8層LSTM RNN
• encoderもdecoderも深い方がいい
– subtle irregularitiesを捉えることができる
• しかし単純に積むだけだと、トレーニングが遅
いしうまくトレーニングできない
– 勾配爆発/消失問題が起きるため
– 4層ぐらいが良い、6層は厳しい、8層は無理
• 画像認識で使われたresidual connectionを使
う
– 次の層の入力に、一つ前の層の入力を足す
並列化
• データ並列化: Downpour SGD
– Large Scale Distributed Deep Networks (NIPS2012)
– パラメータを共有している複数(実験では12)のモデル
を同時にトレーニングし、非同期にパラメータを更新
• モデル並列化: GPUをたくさん使う
– 各LSTMを別々のGPUに配置
– 最初の層以外はuni-directionalなので、前の層を待
たなくて良い
– softmax層も語彙ごとに別々のGPUに配置
低頻度語
• 既存研究
– 入力の低頻度語を(attention等で)出力にコピー
– 単語より小さい単位(sub-word unit)を使う
• Google音声認識で使われたwordpiece model
(WPM)を使う
– 日本語/韓国語のsegmentation問題のためらしい
Wordpiece Model: WPM
• “_”は単語の始まりを表す
– これを手掛かりに元の文を復元可能
• トレーニングコーパスとwordpiece数(8kから
32kが良いらしい)が与えられた時、言語モデ
ルの尤度が最小になるようwordpieceを選択
• 使う文字種の数も制限(西洋語で500ぐらい、
アジア言語はもっと多い)
• コピー機能を確保するため、両言語で共通の
wordpieceも用意し、分割が同じになるように
Jet makers feud over seat width with …
_J et _makers _fe ud _over _seat _width _with …
word:
wordpiece:
トレーニング方法
• 普通の最尤法の欠点=訓練とテストの乖離
– BLEUなどのタスクの目標に対して最適化してない
– BLEU値と出力の確率に相関がない
– デコーディング中のエラーに対してロバストでな
い
• 最尤法で訓練してから強化学習
– 実際には最尤方と強化学習の目的関数の重み
付き線形結合に対して最適化
BLEUの代わりに
GLEU: 正解と出力の
1-4 gramのprecision
かrecallの小さい方
量子化による高速化
• 細かいところはよくわからないのでパス!
• ポイントっぽいところ
– 訓練時にLSTMのメモリセルと隠れ層の値を[-δ, δ]に
(δはアニーリング)クリッピングし、後で16bitの整数値
で表現
• どうやって変換しているのか・・・?
– softmaxへの入力を[-γ, γ]に(γは25で固定)クリッピン
グ
• なぜこれが高速化につながるのか・・・?
– LSTM内の重みを丸めて8bit整数で表現
• 浮動小数点数演算を固定小数点数演算に置き
換えることで高速化
beam search decoding
• 通常のbeam search decodingは最も確率の高
い出力を探す
– 出力の長さは候補ごとに異なり、長いものほど確
率が低くなるため、短い出力が選ばれやすい
• length normalization
– 出力候補のlog-probabilityを以下の値で割る
lp(Y) =
(5+ |Y |)a
(5+1)a
coverage penalty
• 入力文の全てをカバーするようにするため
– pi,jは出力のj番目の、入力のi番目へのattention
確率
– attentionされなかった入力単語についてはΣpi,jが
1より小さくなり、ペナルティーがかかる
• 最終的に出力候補のスコアは以下の式
– 実験から、強化学習を行ったモデルでは効果は
非常に小さくなる
cp(X;Y) = b * log(min( pi, j,1.0))
j=1
|Y|
å
i=1
|X|
å
s(Y, X)= log(P(Y | X))/lp(Y)+cp(X;Y)
枝刈り (pruning)
• Beam幅は8-12程度が良いが、4とか2でもそ
こまで悪化しない
• 単語を出力する際、最も良い単語よりも一定
以上低いスコアの単語は考慮しない
• 最もスコアの高い出力候補のスコアより、一
定以上低いスコアの出力候補は枝刈り
• 出力の長さは入力の2倍まで
実験
• データ
– WMT En->Fr (36M), En->De (5M)
– Google En<->Fr, En<->Es, En<->Zh (WMTの100倍
から1000倍のデータサイズらしい)
• 評価
– BLEU, Google内部の7段階人手評価
• トレーニング
– gradient clipping = 5, Adam (60k steps, lr=0.0002)
-> SGD (lr=0.5), 128 mini-batch, lr annealing,
dropout
実験
• 1システムのトレーニング時間
– 最尤訓練: En->Fr (36M)で、96枚のNVIDIA K80
GPU(24GBメモリ)を使って6日間
• K80一枚約80万円ぐらいなので、これだけで8000万円
• 8アンサンブルしてるので全部で6億4000万?
– 強化学習: 400k steps行うのに3日間
• word-base modelのvocabulary size
– source: 212k, target: 80k
– それ以外の語は <first_char>UNK<last_char>に
結果
• WPM-32Kが最もよい
• 8アンサンブルでWMTデータセットでSOTA
• 強化学習の効果はBLEUではあったが、人手
評価ではなかった
• Googleのデータでは人手評価で人間の翻訳
と変わらないぐらいの精度が出たが、評価の
信頼性には疑問が残る
結論
• GPUを湯水のように使って、量子化してTPUも
使って、ネットワークを工夫すれば、精度を保
持したまま速度的にPBSMTをNMTに置き換え
るのも可能?
• 真似できるもんなら真似してみろ

More Related Content

PDF
[DL輪読会]Understanding Black-box Predictions via Influence Functions
PPTX
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
PDF
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
PDF
敵対的生成ネットワーク(GAN)
PDF
機械学習モデルの判断根拠の説明
PPTX
近年のHierarchical Vision Transformer
PPTX
【DL輪読会】Dropout Reduces Underfitting
PDF
自己教師学習(Self-Supervised Learning)
[DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
敵対的生成ネットワーク(GAN)
機械学習モデルの判断根拠の説明
近年のHierarchical Vision Transformer
【DL輪読会】Dropout Reduces Underfitting
自己教師学習(Self-Supervised Learning)

What's hot (20)

PPTX
【DL輪読会】時系列予測 Transfomers の精度向上手法
PDF
Anomaly detection 系の論文を一言でまとめた
PDF
Transformerを多層にする際の勾配消失問題と解決法について
PDF
[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series
PPTX
[DL輪読会]Pay Attention to MLPs (gMLP)
PPTX
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
PPTX
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
PPTX
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
PPTX
[DL輪読会]When Does Label Smoothing Help?
PPTX
[DL輪読会]Focal Loss for Dense Object Detection
PDF
Overcoming Catastrophic Forgetting in Neural Networks読んだ
PDF
モデルアーキテクチャ観点からのDeep Neural Network高速化
PDF
[DL輪読会]The Neural Process Family−Neural Processes関連の実装を読んで動かしてみる−
PPTX
対話テキストの自動要約
PDF
2019年度チュートリアルBPE
PDF
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
PPTX
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
PPTX
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
PPTX
How Much Position Information Do Convolutional Neural Networks Encode?
PDF
グラフデータ分析 入門編
【DL輪読会】時系列予測 Transfomers の精度向上手法
Anomaly detection 系の論文を一言でまとめた
Transformerを多層にする際の勾配消失問題と解決法について
[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series
[DL輪読会]Pay Attention to MLPs (gMLP)
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]Focal Loss for Dense Object Detection
Overcoming Catastrophic Forgetting in Neural Networks読んだ
モデルアーキテクチャ観点からのDeep Neural Network高速化
[DL輪読会]The Neural Process Family−Neural Processes関連の実装を読んで動かしてみる−
対話テキストの自動要約
2019年度チュートリアルBPE
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
How Much Position Information Do Convolutional Neural Networks Encode?
グラフデータ分析 入門編
Ad

Viewers also liked (17)

PPTX
第3回アジア翻訳ワークショップの人手評価結果の分析
PPTX
Attention-based NMT description
PDF
最近のDeep Learning (NLP) 界隈におけるAttention事情
PPTX
ニューラル機械翻訳の動向@IBIS2017
PPTX
Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...
PPTX
Promoting Science and Technology Exchange using Machine Translation
PPTX
3-step Parallel Corpus Cleaning using Monolingual Crowd Workers
PDF
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
PDF
捗るリコメンドシステムの裏事情(ハッカドール)
PPTX
NLP2017 NMT Tutorial
PDF
Deep learning を用いた画像から説明文の自動生成に関する研究の紹介
PDF
自然言語処理のためのDeep Learning
PPTX
深層学習による自然言語処理の研究動向
PDF
Pythonによる機械学習の最前線
PDF
scikit-learnを用いた機械学習チュートリアル
PDF
機械学習によるデータ分析まわりのお話
PDF
機械学習チュートリアル@Jubatus Casual Talks
第3回アジア翻訳ワークショップの人手評価結果の分析
Attention-based NMT description
最近のDeep Learning (NLP) 界隈におけるAttention事情
ニューラル機械翻訳の動向@IBIS2017
Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...
Promoting Science and Technology Exchange using Machine Translation
3-step Parallel Corpus Cleaning using Monolingual Crowd Workers
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
捗るリコメンドシステムの裏事情(ハッカドール)
NLP2017 NMT Tutorial
Deep learning を用いた画像から説明文の自動生成に関する研究の紹介
自然言語処理のためのDeep Learning
深層学習による自然言語処理の研究動向
Pythonによる機械学習の最前線
scikit-learnを用いた機械学習チュートリアル
機械学習によるデータ分析まわりのお話
機械学習チュートリアル@Jubatus Casual Talks
Ad

Similar to G社のNMT論文を読んでみた (13)

PDF
Guiding neural machine translation with retrieved translation pieces
PDF
ChainerによるRNN翻訳モデルの実装+@
PPTX
Agreement for rnn
PDF
Graph-to-Sequence Learning using Gated Graph Neural Networks. [ACL'18] 論文紹介
PDF
Memory-augmented Neural Machine Translation
PDF
[DL輪読会]Convolutional Sequence to Sequence Learning
PDF
20161215Neural Machine Translation of Rare Words with Subword Units
PDF
ニューラルネットワークを用いた自然言語処理
PDF
RNN-based Translation Models (Japanese)
PDF
[DLHacks 実装]Neural Machine Translation in Linear Time
PDF
Ai from-digital-transformation:ポエムなAI はもう終わりにしよう:クラウドによる市民革命とAIによる産業革命
PDF
クラウドの進化とメディア理解の発展
PDF
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...
Guiding neural machine translation with retrieved translation pieces
ChainerによるRNN翻訳モデルの実装+@
Agreement for rnn
Graph-to-Sequence Learning using Gated Graph Neural Networks. [ACL'18] 論文紹介
Memory-augmented Neural Machine Translation
[DL輪読会]Convolutional Sequence to Sequence Learning
20161215Neural Machine Translation of Rare Words with Subword Units
ニューラルネットワークを用いた自然言語処理
RNN-based Translation Models (Japanese)
[DLHacks 実装]Neural Machine Translation in Linear Time
Ai from-digital-transformation:ポエムなAI はもう終わりにしよう:クラウドによる市民革命とAIによる産業革命
クラウドの進化とメディア理解の発展
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...

G社のNMT論文を読んでみた

  • 1. Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation 中澤 敏明 2016年 黒橋・河原研 夏の勉強会 http://arxiv.org/abs/1609.08144
  • 2. NMTの問題点 1. トレーニングも翻訳も(PBSMTに比べて)遅い 2. 低頻度語の翻訳が弱い – 既存手法はattentionに頼っているが、attentionは 信頼性が低い • Addressing the Rare Word Problem in Neural Machine Translation • On Using Very Large Target Vocabulary for Neural Machine Translation – 翻字(transliteration)するべきな時もある 3. 必ずしも入力文の全てを翻訳してくれない 4. いろいろ手法が提案されてるけど、scaleする?
  • 3. Google’s Neural Machine Translation: GNMT • ベースはattentionモデル • 8層LSTM RNN with residual connection • 計算の並列化のために、attentionはdecoderの1 層目からencoderの最終層に対して行う • 重みの量子化(quantization)による高速inference • Tensor Processing Unit (TPU) • 低頻度語をsub-word units (wordpieces)で扱う • beam search decodingでlength normalizationと coverage penaltyを使う quality of the system gets closer to that of average human translators
  • 4. 8層LSTM RNN • encoderもdecoderも深い方がいい – subtle irregularitiesを捉えることができる • しかし単純に積むだけだと、トレーニングが遅 いしうまくトレーニングできない – 勾配爆発/消失問題が起きるため – 4層ぐらいが良い、6層は厳しい、8層は無理 • 画像認識で使われたresidual connectionを使 う – 次の層の入力に、一つ前の層の入力を足す
  • 5. 並列化 • データ並列化: Downpour SGD – Large Scale Distributed Deep Networks (NIPS2012) – パラメータを共有している複数(実験では12)のモデル を同時にトレーニングし、非同期にパラメータを更新 • モデル並列化: GPUをたくさん使う – 各LSTMを別々のGPUに配置 – 最初の層以外はuni-directionalなので、前の層を待 たなくて良い – softmax層も語彙ごとに別々のGPUに配置
  • 6. 低頻度語 • 既存研究 – 入力の低頻度語を(attention等で)出力にコピー – 単語より小さい単位(sub-word unit)を使う • Google音声認識で使われたwordpiece model (WPM)を使う – 日本語/韓国語のsegmentation問題のためらしい
  • 7. Wordpiece Model: WPM • “_”は単語の始まりを表す – これを手掛かりに元の文を復元可能 • トレーニングコーパスとwordpiece数(8kから 32kが良いらしい)が与えられた時、言語モデ ルの尤度が最小になるようwordpieceを選択 • 使う文字種の数も制限(西洋語で500ぐらい、 アジア言語はもっと多い) • コピー機能を確保するため、両言語で共通の wordpieceも用意し、分割が同じになるように Jet makers feud over seat width with … _J et _makers _fe ud _over _seat _width _with … word: wordpiece:
  • 8. トレーニング方法 • 普通の最尤法の欠点=訓練とテストの乖離 – BLEUなどのタスクの目標に対して最適化してない – BLEU値と出力の確率に相関がない – デコーディング中のエラーに対してロバストでな い • 最尤法で訓練してから強化学習 – 実際には最尤方と強化学習の目的関数の重み 付き線形結合に対して最適化 BLEUの代わりに GLEU: 正解と出力の 1-4 gramのprecision かrecallの小さい方
  • 9. 量子化による高速化 • 細かいところはよくわからないのでパス! • ポイントっぽいところ – 訓練時にLSTMのメモリセルと隠れ層の値を[-δ, δ]に (δはアニーリング)クリッピングし、後で16bitの整数値 で表現 • どうやって変換しているのか・・・? – softmaxへの入力を[-γ, γ]に(γは25で固定)クリッピン グ • なぜこれが高速化につながるのか・・・? – LSTM内の重みを丸めて8bit整数で表現 • 浮動小数点数演算を固定小数点数演算に置き 換えることで高速化
  • 10. beam search decoding • 通常のbeam search decodingは最も確率の高 い出力を探す – 出力の長さは候補ごとに異なり、長いものほど確 率が低くなるため、短い出力が選ばれやすい • length normalization – 出力候補のlog-probabilityを以下の値で割る lp(Y) = (5+ |Y |)a (5+1)a
  • 11. coverage penalty • 入力文の全てをカバーするようにするため – pi,jは出力のj番目の、入力のi番目へのattention 確率 – attentionされなかった入力単語についてはΣpi,jが 1より小さくなり、ペナルティーがかかる • 最終的に出力候補のスコアは以下の式 – 実験から、強化学習を行ったモデルでは効果は 非常に小さくなる cp(X;Y) = b * log(min( pi, j,1.0)) j=1 |Y| å i=1 |X| å s(Y, X)= log(P(Y | X))/lp(Y)+cp(X;Y)
  • 12. 枝刈り (pruning) • Beam幅は8-12程度が良いが、4とか2でもそ こまで悪化しない • 単語を出力する際、最も良い単語よりも一定 以上低いスコアの単語は考慮しない • 最もスコアの高い出力候補のスコアより、一 定以上低いスコアの出力候補は枝刈り • 出力の長さは入力の2倍まで
  • 13. 実験 • データ – WMT En->Fr (36M), En->De (5M) – Google En<->Fr, En<->Es, En<->Zh (WMTの100倍 から1000倍のデータサイズらしい) • 評価 – BLEU, Google内部の7段階人手評価 • トレーニング – gradient clipping = 5, Adam (60k steps, lr=0.0002) -> SGD (lr=0.5), 128 mini-batch, lr annealing, dropout
  • 14. 実験 • 1システムのトレーニング時間 – 最尤訓練: En->Fr (36M)で、96枚のNVIDIA K80 GPU(24GBメモリ)を使って6日間 • K80一枚約80万円ぐらいなので、これだけで8000万円 • 8アンサンブルしてるので全部で6億4000万? – 強化学習: 400k steps行うのに3日間 • word-base modelのvocabulary size – source: 212k, target: 80k – それ以外の語は <first_char>UNK<last_char>に
  • 15. 結果 • WPM-32Kが最もよい • 8アンサンブルでWMTデータセットでSOTA • 強化学習の効果はBLEUではあったが、人手 評価ではなかった • Googleのデータでは人手評価で人間の翻訳 と変わらないぐらいの精度が出たが、評価の 信頼性には疑問が残る