02.24 谷歌T5 基于 Transformer的文本到文本转换框架

T5 是谷歌研发的一款文本到文本转换框架,基于 Transformer。

该框架在多个 benchmarks 上的总结、问题回答、文本归类任务表现突出。

开发团队已经在 GitHub 上开源了 T5 相关数据集、预训练模型以及所有代码。

T5 为文本到文本任务的模型训练和微调提供了非常实用的模块,开发者可以将它用于未来的模型开发工作中。

对应的论文是https://arxiv.org/abs/1910.10683。

库的构成:

t5.data

t5.data是一个能提供t5.data.Dataset定义的task对象的包。每个task的构成包括数据源,文本预处理函数、

SentencePiece模型,标准函数;以及token预处理函数,postprocess函数。

在数据源中提供了对t5.data.Dataset的封装即TfdsTask(TensorFlow Datasets (TFDS)),存储为文本文件的TextLineTask。

在文本预处理函数中包括了把源数据处理为text-to-text模型的inputs,targets。如t5.data.preprocessors.translate,

{'inputs': 'translate German to English: Das ist gut.', 'targets': 'That is good.'}

t5.evaluation

t5.evaluation包括2个组件,评估标准函数及支持函数。

t5.models

t5.models包括task及mixtures,即为训练、评估的模型实现。

安装:

pip install t5[gcp]

目前的训练依赖TPU。

训练:

t5_mesh_transformer \\

--tpu="${TPU_NAME}" \\

--gcp_project="${PROJECT}" \\

--tpu_zone="${ZONE}" \\

--model_dir="${MODEL_DIR}" \\

--t5_tfds_data_dir="${DATA_DIR}" \\

--gin_file="dataset.gin" \\

--gin_file="models/bi_v1.gin" \\

--gin_param="utils.tpu_mesh_shape.model_parallelism = 1" \\

--gin_param="utils.tpu_mesh_shape.tpu_topology = '2x2'" \\

--gin_param="MIXTURE_NAME = 'glue_mrpc_v002'"

导出模型

t5_mesh_transformer \\

--gcp_project="${PROJECT}" \\

--tpu_zone="${ZONE}" \\

--model_dir="${MODEL_DIR}" \\

--use_model_api \\

--mode="export" \\

--export_dir="/path/to/export/dir"

预训练的模型;

T5-Small (60 million parameters): gs://t5-data/pretrained_models/small

T5-Base (220 million parameters): gs://t5-data/pretrained_models/base

T5-Large (770 million parameters): gs://t5-data/pretrained_models/large

T5-3B (3 billion parameters): gs://t5-data/pretrained_models/3B

T5-11B (11 billion parameters): gs://t5-data/pretrained_models/11B


谷歌T5 基于 Transformer的文本到文本转换框架


谷歌T5 基于 Transformer的文本到文本转换框架


分享到:


相關文章: