网站:https://legacyai.github.io/tf-transformers
TF转换器:Tensorflow 2.0中的更快,更轻松的最新变压器
想象一下自动回归产生的速度更快90倍。 TF-Transformers(Tensorflow Transformers)旨在利用专为基于变压器的体系结构设计的TensorFlow 2的全功率。
这些模型可以应用于:
gpt2带有max_length=64 , num_beams=3 。
tf_transformers : 31 minutes
huggingface_tf : 83 minutes
huggingface_pt : 36 minutes
huggingface_jax : 35 minutes
从83 minutes到31 minutes是一个显着的加速。 92 %加速。平均而言, TF转换器比HuggingFace TensorFlow实现是80-90%的速度,并且在大多数情况下,它比Pytorch是可比或更快的。
可以在基准中找到更多基准
该存储库在Python 3.7+和Tensorflow 2.7上进行了测试。
pip install sentencepiece
pip install tensorflow-text > = 2.7.3
pip install tqdm根据机器安装tensorflow >= 2.7.0 [CPU or GPU] 。您应该在虚拟环境中安装TF转换器。如果您不熟悉Python虚拟环境,请查看用户指南。
首先,使用您要使用的Python版本创建虚拟环境并激活它。
然后,您将需要至少安装一个张量。请参阅TensorFlow安装页面,有关平台特定安装命令的安装页面。我们强烈建议安装[TensorFlow-Text](https://www.tensorflow.org/text)。
当安装了这些后端之一时,可以使用PIP安装TF-Transformers,如下所示:
pip install tf-transformersgit clone https://github.com/legacyai/tf-transformers.git
pip install poetry
cd tf-transformers
poetry installTF-Transformers API非常简单且极简。
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' )
> >> model . save_checkpoint ( "/tmp/gpt2_model/" ) # Save Model对于文本产生,添加非常重要的是:obj: use_auto_regressive=True 。这是所有模型所必需的。
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' , use_auto_regressive = True )序列化保存和加载模型
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' )
> >> model . save_transformers_serialized ( "/tmp/gpt2_serialized/" )
# To load a serialized models for inference in prodcution:
> >> import tensorflow as tf
> >> loaded = tf . saved_model . load ( "/tmp/gpt2_serialized/" )
> >> model = loaded . signatures [ 'serving_default' ]在TF转换器中,我们主要遵循KERAS的Functional API 。 tf-transformers中的所有模型均已连接并始终具有以下功能。
如果tf.keras.Model或tf_transformers.core.LegacyModel ,请使用: print(model.input) 。
如果tf.keras.Layer或tf_transformers.core.LegacyLayer ,请使用: print(model.model_inputs) 。
如果tf.keras.Model或tf_transformers.core.LegacyModel ,请使用: print(model.output) 。
如果tf.keras.Layer或tf_transformers.core.LegacyLayer ,请使用: print(model.model_outputs) 。
我们介绍了涵盖预培训,填充,阶级,质量检查,QA,NER的教程。
在生产中使用最先进的模型,少于10行代码。
通过清晰的教程为学生和社区提供基于行业的经验
训练与GPU , Multi-GPU , TPU上的任何模型一起使用惊人的tf.keras.Model.fit
自定义任何模型或管道,具有最小或没有代码更改。
该研究部分具有预训练的不同模型的代码,范围为** MLM,T5,CLIP等**。所有这些脚本均设计为利用TensorFlow-IO管道的全功能,并在TPU V2和TPU V3上进行了测试。预期的错误是错误的,但它是从事医生启动或修改我们已经做过的事情的目的。
我们进行了很少的实验来挤压Albert Base模型的功能(概念适用于任何模型,在TF-Transformers中,它是开箱即用的。)
这个想法是最大程度地减少模型每一层中指定任务的损失,并在每一层检查预测。根据我们的实验,我们能够获得最好的较小型号(感谢Albert ),从第4层开始,我们以Glue基准测试了所有较小的型号。到第6层,我们的胶水得分为81.0 ,比蒸馏厂领先4分,胶水得分为77 ,莫菲伯特胶水得分为78 。
Albert模型有1400万个参数,通过使用第6层,我们能够将汇编加快50%的速度加快。
该概念适用于所有模型和任务。
代码 +阅读更多
通过将输入序列分为封闭注意力并使用FFN层合并,我们表明,较小的机器将能够在单个V100 GPU机器中执行高达4096个令牌的序列处理。该模型的表现优于Pegasus Base (128 million) PubMed摘要,尽管参数为60 million 。

代码 +阅读更多
TF-Transformers当前提供以下架构。
现在,我们有一个页面可以引用TF-Transformers库。