論文のコードを参考にモデルの実装を行っているのですが、Transformersのバージョンが古く(v.3.2.0)、現在のSTABLEバージョンv.4.26.0と所々API仕様が異なるところがありました(メジャーバージョンが変わったので当たり前ですが...)。
公式docやライブラリのコードを読む際に不便なので、このたびバージョンをあげてみました。
案の定エラーが何個か出たので、解消した方法をこちらにメモします。
DataCollatorForLanguageModelingの_tensorize_batchが使用できない
torch.tensor
で書き換えました。
batch = self._tensorize_batch(examples)
↓
batch = torch.tensor([e.tolist() for e in examples],dtype=torch.long)
ACT2FN, BertLayerNorm, BertForMaskedLM, BertConfigのインポート失敗
インポート先を変更しました。
BertLayerNorm
は、torch.nn.LayerNorm
で書けるようになりました。
from transformers.modeling_bert import ACT2FN, BertLayerNorm
from transformers.modeling_bert import BertForMaskedLM
from transformers.configuration_bert import BertConfig
↓
from transformers.activations import ACT2FN
from transformers import BertForMaskedLM
from transformers import BertConfig
Trainerクラスの諸々
trainer.train()
の引数にmodel_path
が使えなくなり、resume_from_checkpoint
が追加されました。