“万物皆可Seq2Seq” | 使用 bert4keras 在中文语境下运行Google Multilingual T5(mT5)

一、介绍

自去年Google发布了T5之后一直没有中文版本,所以没什么人去用。今年出了中文版我还是不会用,这里用的是苏总的bert4keras去跑mT5,一些对于T5的理解会慢慢加上,前面先以跑通为主。

 

二、环境

物理机:

Ubuntu18.04、RTX2080(8G)、NVIDIA-DRIVER=440.95.01、Anaconda3 5.2.1、Python=3.6、CUDA=10.1、CUDNN=7.6.5

先用conda创建一个虚拟环境:

conda create -n t5
source activate t5

然后用TensorFlow去装虚拟版本cudatoolkit

conda install tensorflow-gpu=1.14
pip install keras==2.3.1
pip install bert4keras==0.9.1
pip install numpy==1.19.2
pip install sentencepiece==0.1.94
pip install tqdm

其他东西缺什么装什么就行。

三、数据集与预训练权重

数据集用的GLGE:Chinese Language Generation Evaluation 中文生成任务基准测评中的CSL 中长文本摘要生成子集

下载地址:百度网盘(u6mc)                   然后把里面的json文件做成tsv格式,用sublime text的正则表达式替换很容易,嫌麻烦的话我后面会上传整个项目和数据,各位赏赐点积分就行~

权重有两部分:①第一部分tokenizer部分将包含在项目文件里面            ②mt5的权重下载地址:百度网盘(mwfc)

苏总的原始项目地址(不含数据):https://github.com/bojone/t5_in_bert4keras

后面我自己打包的项目地址(包含整理好的数据): 待上传

四、运行

打开项目里面 task_autotitle_csl.py  

把里面 config_path checkpoint_path spm_path keep_tokens_path train_data vaild_data test_data都换成你自己的绝对地址

8G显存建议使用small版本,base会OOM~

python task_autotitle_csl.py

就会开始训练了

你可能感兴趣的:(深度学习NLP方向,t5,nlp,bert,bert4keras)