Skip to content

Wingsdh/transformer-xl-refactoring

Repository files navigation

Transformer XL refactoring

对于论文 Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context 官方源码的重构

PyPI pyversions Ask Me Anything ! contributions GitHub stars

目录

1. 使用

1.1下载代码

git clone https://github.com/Wingsdh/transformer-xl-refactoring

1.2 收集语料

推荐开源语料:

使用私有语料训练时,需要确定是否用以下存储格式?

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的子类用于迭代语料。

1.3 构建词表

默认使用 SentencePiece 用来实现文本到索引数组的转换,需要根据官方指导构建词库文件,并用make_tfrecord.py的<vocab_path>参数传值。

1.4 配置脚本

推荐使用脚本来组织训练,参考 scripts

PS:支持同时训练多种语料,以','分割即可,比如:

python make_tfrecord.py \
  --data_paths=../../Data/wiki_zh/,../../Data/THUCNews \
  --type_corpus_gens=wiki2019zh,dir ...

1.5 语料格式转存为TFRecord

bash script/wiki2019zh_base.sh train_data

1.6 模型训练

bash script/wiki2019zh_base.sh train

1.7 训练监控

两种监控训练情况的方式:

  1. 控制台日志

  2. Tensorboard

    tensorboard --logdir=<model_dir>

1.8 模型部署

2. 重构思路和算法理解分享

3. 参考