0

私は 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
4

2 に答える 2

0

tensorflow-gpu=2.3.0 & cuda 10.1 をインストールすることで解決しました

このガイドに従う: https://medium.com/analytics-vidhya/tensorflow-2-3-0-with-gpu-support-on-windows-10-f975a552ea7c

次のコマンドを使用して gpu2.3.0 をインストールします:
python -m pip install https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-2.3.0-cp37-cp37m-win_amd64.whl

于 2021-01-30T19:13:10.830 に答える