Esta é uma implementação de Pytorch do modelo de transformador em "Atenção é tudo o que você precisa" (Ashish Vaswani, Noam Orheador, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin, Arxiv, 2017).
Uma nova sequência à estrutura de sequência utiliza o mecanismo de auto-atimento , em vez de a operação de convolução ou estrutura recorrente, e atinge o desempenho de ponta na tarefa de tradução do WMT 2014 Inglês-Alemão . (2017/06/12)
A implementação oficial do tensorflow pode ser encontrada em: tensorflow/tensor2tensor.
Para saber mais sobre o mecanismo de auto-atendimento, você pode ler "uma sentença auto-atenta estruturada incorporando".
O projeto de suporte ao projeto e tradução com modelo treinado agora.
Observe que este projeto ainda é um trabalho em andamento.
As peças relacionadas ao BPE ainda não foram totalmente testadas.
Se houver alguma sugestão ou erro, fique à vontade para disparar um problema para me informar. :)
Um exemplo de treinamento para a tarefa de tradução multimodal WMT'16 (http://www.statmt.org/wmt16/multimodal-task.html).
# conda install -c conda-forge spacy
python -m spacy download en
python -m spacy download depython preprocess.py -lang_src de -lang_trg en -share_vocab -save_data m30k_deen_shr.pklpython train.py -data_pkl m30k_deen_shr.pkl -log m30k_deen_shr -embs_share_weight -proj_share_weight -label_smoothing -output_dir output -b 256 -warmup 128000 -epoch 400python translate.py -data_pkl m30k_deen_shr.pkl -model trained.chkpt -output prediction.txtComo as interfaces não são unificadas, você precisa alternar a chamada de função principal de
main_wo_bpeparamain.
python preprocess.py -raw_dir /tmp/raw_deen -data_dir ./bpe_deen -save_data bpe_vocab.pkl -codes codes.txt -prefix deenpython train.py -data_pkl ./bpe_deen/bpe_vocab.pkl -train_path ./bpe_deen/deen-train -val_path ./bpe_deen/deen-val -log deen_bpe -embs_share_weight -proj_share_weight -label_smoothing -output_dir output -b 256 -warmup 128000 -epoch 400