私は tensorflow (CPU) といくつかの言語モデリングをいじっています - そしてそれはこれまでのところ爆発的でした - すべてがうまく機能しています.
しかし、古い CPU がすべてのモデル トレーニングからゆっくりと死んでいくのを見た後、ついに RTX 2080 を活用する時が来たと判断しました。ワシントン大学のガイドに従っています:. すぐに tensorflow-gpu を実行し、軽度の予測などで実行しました。
しかし、GPT2 言語モデルを実行するようになったとき、いくつかの小さな問題に遭遇しました。データをトークン化することから始めます。
from tokenizers.models import BPE
from tokenizers import Tokenizer
from tokenizers.decoders import ByteLevel as ByteLevelDecoder
from tokenizers.normalizers import NFKC, Sequence
from tokenizers.pre_tokenizers import ByteLevel
from tokenizers.trainers import BpeTrainer
class BPE_token(object):
def __init__(self):
self.tokenizer = Tokenizer(BPE())
self.tokenizer.normalizer = Sequence([
NFKC()
])
self.tokenizer.pre_tokenizer = ByteLevel()
self.tokenizer.decoder = ByteLevelDecoder()
def bpe_train(self, paths):
trainer = BpeTrainer(vocab_size=50000, show_progress=True, inital_alphabet=ByteLevel.alphabet(), special_tokens=[
"<s>",
"<pad>",
"</s>",
"<unk>",
"<mask>"
])
self.tokenizer.train(trainer, paths)
def save_tokenizer(self, location, prefix=None):
if not os.path.exists(location):
os.makedirs(location)
self.tokenizer.model.save(location, prefix)
# ////////// TOKENIZE DATA ////////////
from pathlib import Pa th
import os# the folder 'text' contains all the files
paths = [str(x) for x in Path("./da_corpus/").glob("**/*.txt")]
tokenizer = BPE_token()# train the tokenizer model
tokenizer.bpe_train(paths)# saving the tokenized data in our specified folder
save_path = 'tokenized_data'
tokenizer.save_tokenizer(save_path)
上記のコードは完全に機能し、テンソルフロー (CPU) と同様にデータをトークン化します。データをトークン化した後、モデルのトレーニングを開始しますが、開始する前に、次の ImportError が発生します。
from transformers import GPT2Config, TFGPT2LMHeadModel, GPT2Tokenizer # loading tokenizer from the saved model path
ImportError: cannot import name 'TFGPT2LMHeadModel' from 'transformers' (unknown location)
Transformers パッケージは site-packages lib に正しくインストールされているようで、他のトランスフォーマーを使用できるようです - しかし TFGPT2LMHeadModel は使用できません。googleとhugging.co ですべてを読みました- 異なるバージョンの tensorflow-gpu、トランスフォーマーを試しました。トークナイザーと他の多くのパッケージ - - 残念ながら何も役に立ちません。
パッケージ:
- パイソン、3.7.1
- テンソルフロー 2.1.0
- Tensorflow GPU 2.1.0
- Tensorflow ベース 2.1.0
- Tensorflow-estimator 2.1.0
- トランスフォーマー 4.2.2
- トークナイザー 0.9.4
- cudnn 7.6.5
- cudatoolkit 10.1.243