前提・実現したいこと
https://github.com/bert-nmt/bert-nmt/tree/update-20-10
上記のgithubのページの手順通りに実行した結果を得たいです。
大雑把に説明すると、Fairseqというツールキットを用いてデータセットをダウンロード、Transformerで学習させて、それを事前学習データとして新しく学習させるという流れです。
readmeの通りに進めているのですが、Train a bert fused NMT modelのところがうまくいきません。
発生している問題・エラーメッセージ
バニラのTransformerをトレーニングする際にtransformer_iwslt_de_enというアーキテクチャを使ったのですが、サンプルスクリプトではtransformer_s2_iwslt_de_enというアーキテクチャが指定されています。そのまま実行した結果、アーキテクチャが違うのでパラメータを参照できないという旨のエラーが出ました。
(Exception: Cannot load model parameters from checkpoint, please ensure that the architectures match.)
逆に、サンプルスクリプトのアーキテクチャをtransformer_iwslt_de_enに変更したら今度は次のエラーが出ました。自分なりに調べてModeling.pyというファイルを見てみたのですが、hidden_sizeという項目を見つけたので、原因が分かりません。
(AttributeError: 'BertModel' object has no attribute 'hidden_size')
###試したこと
fairseqのドキュメントを見たところ、tansformer_s2_iwslt_de_enというアーキテクチャは見当たらなかったので、よくわかりませんでした。
補足情報(FW/ツールのバージョンなど)
PyTorch version == 1.5.0
Python version == 3.6
huggingface/transformers version == 3.5.0
example/translation/prepare-iwslt14.shのデータのダウンロードリンクだけURL="http://dl.fbaipublicfiles.com/fairseq/data/iwslt14/de-en.tgz"に変更しています。
その他のパスは自分の環境に合わせています。コードの変更点はその程度です。
あなたの回答
tips
プレビュー