我一直在玩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)
上面的代码可以完美地工作并标记数据-就像使用tensorflow (CPU)一样。在我的数据标记化之后,我开始训练我的模型-但在它开始之前,我得到以下importterror:
from transformers import GPT2Config, TFGPT2LMHeadModel, GPT2Tokenizer # loading tokenizer from the saved model path
ImportError: cannot import name 'TFGPT2LMHeadModel' from 'transformers' (unknown location)
变压器包似乎正确地安装在站点包库中,我似乎能够使用其他变压器-但不是TFGPT2LMHeadModel我在谷歌和拥抱上读了所有的东西。我尝试了不同版本的tensorflow-gpu、transformer、tokenizers和许多其他包——遗憾的是没有任何帮助。
包:
- Python, 3.7.1
- Tensorflow 2.1.0的
- Tensorflow-gpu 2.1.0的
- Tensorflow-base 2.1.0的
- Tensorflow-estimator 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
python -m pip install https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-2.3.0-cp37-cp37m-win_amd64.whl 安装gpu2.3.0
我刚刚使用了下面的命令,它按预期工作。
# installing Transformers and TensorFlow 2.0 in one line
!pip install transformers[tf-gpu]