再看机器翻译
前面有文章具體介紹了機器翻譯用到的模型:seq2seq和加入attention機制。這里再說點別的。
1 機器翻譯評價標準BLUE
參考文章介紹的很詳細。論文地址:url
2 模型背后的理論:密碼學
例如從中文翻譯成英文,可以將中文看做是加密了的英文。
3 工程上
1 Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
2 NEURAL MACHINE TRANSLATION
BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
https://arxiv.org/pdf/1508.04025.pdf
google的翻譯模型
Zero-shot NMT:解決沒有翻譯原材料的問題
Transformer模型:現在流行的模型
Model Inference:怎樣做到統一訓練和預測。在各類?本?成任務中,其實?本的?成與訓練是兩種不同的情形。在訓練的過程中,我們假設模型在
?成下?個單詞的時候知道所有之前的單詞(groud truth)。然?在真正使?模型?成?本的時候,每?步?成的?本都來?于模型本身。這其中訓練和預測的不同導致了模型的效果可能會很差。為了解決這?問題,?們發明了各種提升模型預測?平的?法,例如Beam Search。
beam search是一種固定寬度的裝置。在每一步都選擇概率最大的k個詞。
第一步選擇k個詞:y11,y12,y13
第二步為每個詞再生成k個下一個詞,這里有k2k^2k2個詞,然后選擇概率最高的k個詞。
k太大,或者太小,都可能會造成標準答案丟失。所以不能完整解決問題。
例如:美國總統和中國主席打電話。
翻譯的時候:k=1,那假如最高的詞是U.S. 那American就會丟了。
如果k=3,假如排序是American U.S Unite State
在第二步的時候可能因為各種原因把American丟了。
開源項目:
FairSeq https://github.com/pytorch/fairseq Facebook的開源項目
Tensor2Tensor https://github.com/tensorflow/tensor2tensor google開源項目,是Attention is all your need的標準實現
Trax https://github.com/google/trax google現在維護的開源項目
做翻譯可以使用的開源工具
Pointer network 文本摘要
Copy Mechanism 文本摘要
Converage Loss
ConvSeq2Seq
Transformer
Tensor2Tensor
PyTorch代碼
- seq2seq-tutorial
- Tutorial from Ben Trevett
- IBM seq2seq
- OpenNMT-py
4 做翻譯可以做的事情
1 使用transformer模型
2 可以使用的庫 Facebook、OpenNMT-py、huggingface、allenXXX
3 beamsearch
4 Copy Mechanism:直接復制一個詞。
5 加入中文分詞或者使用word-piece
總結
- 上一篇: C语言--在终端输入多行信息,找出包含“
- 下一篇: STRIX z490i 10700k M