Google神經機器翻譯系統 要點備忘

2021-07-23 13:47:17 字數 1726 閱讀 8730

現有nmt系統缺點:計算量大,難應對低頻詞

[2](2015經典nmt)裡的模型,是(上一時刻隱藏層輸出s,上一時刻輸出層**詞的詞向量e(y),和當前上下文向量c)這三者輸入到當前時刻lru單元中,得到當前時刻隱藏層輸出s;「當前上下文向量c」是由encoder的所有時刻隱藏層輸出h的加權得到;各時刻權重a是由上一時刻隱藏層輸出s和encoder在各個時刻隱藏層輸出h計算「相似度」後再經過softmax得到;「相似度」是由s和h經過乙個全連線網路得到;

gnmt: 

1. 8層encoder, 8層decoder;(越深效果越好)

2. 使用residual連線(極大減輕層數加深後帶來的梯度消散問題);attention

3. 為提高並行度,attention將decoder的底層輸出接到encoder的頂層輸出

4. 為加速**階段,在**階段使用整型量化(8位*8位=16位)

5. 為解決低頻詞問題,使用介於字母和詞之間的子詞單元(wordpiece),效果好速度快

6. beam search, 使用了length-normalization(不用的話,目標函式會傾向短句子),使用了coverage penalty(使得目標句子盡量覆蓋源句子所有詞)

7. 先adam,再sgd;最後再用reinforce learning來refine

網路結構:

attention使用decoder最底層的上一時刻隱層輸出,和encoder最上層每一時刻輸出計算「相似度」並通過softmax,得到encoder每一時刻的權值,再用權值對encoder最上層每一時刻輸出進行加權,得到attention向量(即[2]中的上下文向量)

之所以使用「最底層」輸出,而不是[2]中的「最上層「輸出,是為了並行加速的目的

softmax層節點幾十k個,計算量大,因此分到多個gpu上去並行;

dapa parallellism: 使用downpour sgd(即google經典的asgd)

model parallellism: 按層劃分gpu;softmax層分給幾個gpu並行;

之所以encoder只有最底下一層是雙向的,是為了並行度考慮,雙向的話,必須全算完了才能開始上層的計算;

之所以attention使用decoder的最底層輸出,而不是最上層輸出,也是為了並行度考慮;

8k~32k個wordpiece效果最好;

浮點量化:[41]在cnn上取得好效果;[26]3狀態編碼;

只在inference階段(即test階段)使用浮點量化;在訓練階段使用正常的float

量化的關鍵,是要保證陣列數值在一定區間內;這裡對某些向量採用了範圍限制clip了;

clip區間隨著訓練進行而逐漸減小!只在test階段使用量化,訓練階段只使用區間clip不使用量化

inference階段的並行加速:將相近長度的句子們(比如35個句子),打包到同乙個batch中,並行算(速度受最長的句子拖累)

google內部的資料集,比wmt資料集大100~1000倍

lstm-node大小:1024

gradient clipping

先跑60k個minibatch的adam(收斂較快),後面全跑sgd(最終效果好);最後再用rl增強學習來refine

wmt en->fr上,用96塊k80跑了6整天;

用了dropout

《首字母》_unk_《尾字母》 ,很多這個來表示未登入詞

測試階段,翻譯出來,則用attention來找到源句子中的最相似詞,直接copy過來

Google機器翻譯分析

由 www.lucene.com.cn 提供 史洪柏 葛帥 3 generalized ebmt的介紹 gereralization 將語句中的某些詞語或短語用更一般的概念來表示。可以很大程度上減少對例項庫規模的需求。泛化採用的基本方法 通過對大規模語料的訓練進行word cluster 來自動的對...

JFY系列機器翻譯系統

機器翻譯的研究是理論方法和工程技術並舉的。要建立乙個機器翻譯系統,首先需要確立語言分析和生成的基本觀點,選擇適用的語法理論,設計系統的執行機制,組織析句時需要的各種引數,還要針對所有這些考慮提出在計算機上實現的演算法,並設計程式,除錯通過。這個過程幾乎涉及了計算語言學和自然語言處理的各個重要領域。我...

透徹理解神經機器翻譯的原理

今天我們要學習機器翻譯,機器翻譯就是讓計算機來幫我們將一種語言自動翻譯成另一種語言。現在機器翻譯幾乎已經成為我們生活中不可缺少的工具了,當我們在看英文文件時,可以直接把不懂的單詞 句子,甚至段落,複製到谷歌翻譯等工具中就可以立刻得到翻譯結果。有了機器翻譯,我們的生活變得更加便利。世界上有 5000 ...