问题描述
我一直在玩 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]