TFGPT2LMHeadModel 位置未知

问题描述

我一直在玩 tensorflow (cpu) 和一些语言建模 - 到目前为止,它一直很棒 - 一切都很好。
但是在看到我的旧 cpu 从所有模型训练中慢慢被淘汰后 - 我决定是时候最终从我的 RTX 2080 中获得一些用途了。我一直在遵循 washinton university 的指南:。很快我就运行了 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)

上面的代码完美运行并标记数据 - 就像使用 tensorflow (cpu) 一样。将数据标记化后,我开始训练我的模型 - 但在它开始之前,我收到以下 ImportError:

from transformers import GPT2Config,TFGPT2LMHeadModel,GPT2Tokenizer # loading tokenizer from the   saved model path
ImportError: cannot import name 'TFGPT2LMHeadModel' from 'transformers' (unkNown location)

变形金刚包似乎正确安装在站点包库中,我似乎能够使用其他变形金刚 - 但不能使用 TFGPT2LMHeadModel 我已经阅读了 google 和 hugging.co 上的所有内容 - 尝试了不同版本的 tensorflow-gpu、transformers、tokenizers 和许多其他软件包 - 遗憾的是没有任何帮助。

包:

  • Python,3.7.1
  • TensorFlow 2.1.0
  • tensorflow-gpu 2.1.0
  • 基于 Tensorflow 的 2.1.0
  • Tensorflow 估算器 2.1.0
  • 变形金刚 4.2.2
  • 分词器 0.9.4
  • cudnn 7.6.5
  • cudatoolkit 10.1.243

解决方法

通过安装 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

,

我刚刚使用了以下按预期工作的命令。

# installing Transformers and TensorFlow 2.0 in one line
!pip install transformers[tf-gpu]