对于论文 Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context 官方源码的重构
git clone https://github.com/Wingsdh/transformer-xl-refactoring
推荐开源语料:
使用私有语料训练时,需要确定是否用以下存储格式?
class CorpusType(Enum):
FILE = 'file' # 单个文件
DIR = 'dir' # 目录下所有txt文件
WIKI2019 = 'wiki2019zh' # https://github.com/brightmart/nlp_chinese_corpus
如果是,可以使用make_tfrecord.py的<data_paths>和<type_corpus_gens>参数传值即可。
如果不是,可以参考standard_generator.py实现一个ICorpusGenerator的子类用于迭代语料。
默认使用 SentencePiece 用来实现文本到索引数组的转换,需要根据官方指导构建词库文件,并用make_tfrecord.py的<vocab_path>参数传值。
推荐使用脚本来组织训练,参考 scripts。
PS:支持同时训练多种语料,以','分割即可,比如:
python make_tfrecord.py \
--data_paths=../../Data/wiki_zh/,../../Data/THUCNews \
--type_corpus_gens=wiki2019zh,dir ...
bash script/wiki2019zh_base.sh train_data
bash script/wiki2019zh_base.sh train
两种监控训练情况的方式:
-
控制台日志
-
Tensorboard
tensorboard --logdir=<model_dir>