Site: https://legacyai.github.io/tf-transformers
TF-Transformers: Transformador de última geração mais rápido e fácil no Tensorflow 2.0
Imagine a geração automática regressiva para ser 90x mais rápida. O TF-Transformers (TensorFlow Transformers) foi projetado para aproveitar todo o poder do TensorFlow 2, projetado especificamente para a arquitetura baseada em transformadores.
Esses modelos podem ser aplicados em:
Geração de texto GPT2 com max_length=64 , num_beams=3 .
tf_transformers : 31 minutes
huggingface_tf : 83 minutes
huggingface_pt : 36 minutes
huggingface_jax : 35 minutes
De 83 minutes a 31 minutes é uma aceleração significativa. Speedup 92 % . Em média, o TF-Transformers é de 80 a 90 % de aceleração do que a implementação do HuggingFace Tensorflow e, na maioria dos casos, é comparável ou mais rápido que o Pytorch .
Mais benchmarks podem ser encontrados em benchmark
Este repositório é testado no Python 3.7+ e no Tensorflow 2.7.
pip install sentencepiece
pip install tensorflow-text > = 2.7.3
pip install tqdm Instale tensorflow >= 2.7.0 [CPU or GPU] conforme sua máquina. Você deve instalar o TF-Transformers em um ambiente virtual. Se você não estiver familiarizado com os ambientes virtuais do Python, consulte o guia do usuário.
Primeiro, crie um ambiente virtual com a versão do Python que você usará e o ativará.
Em seguida, você precisará instalar pelo menos um de Tensorflow. Consulte a página de instalação do TensorFlow, páginas de instalação sobre o comando de instalação específico da sua plataforma. É altamente recomendável instalar [TensorFlow-Text] (https://www.tensorflow.org/text).
Quando um desses backnds foi instalado, o TF-Transformadores pode ser instalado usando o PIP da seguinte forma:
pip install tf-transformersgit clone https://github.com/legacyai/tf-transformers.git
pip install poetry
cd tf-transformers
poetry installA API de TF-Transformers é muito simples e minimalista.
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' )
> >> model . save_checkpoint ( "/tmp/gpt2_model/" ) # Save Model Para geração de texto, é muito importante adicionar: obj: use_auto_regressive=True . Isso é necessário para todos os modelos.
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' , use_auto_regressive = True )Para serializar o modelo de salvamento e carga
> >> 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' ] Nos transformadores de TF, seguimos principalmente Functional API de Keras. Todos os modelos nos tf-transformers estão conectados e sempre têm a seguinte funcionalidade.
Se tf.keras.Model ou tf_transformers.core.LegacyModel , use: print(model.input) .
Se tf.keras.Layer ou tf_transformers.core.LegacyLayer , use: print(model.model_inputs) .
Se tf.keras.Model ou tf_transformers.core.LegacyModel , use: print(model.output) .
Se tf.keras.Layer ou tf_transformers.core.LegacyLayer , use: print(model.model_outputs) .
Cobrimos tutoriais cobrindo pré-treinamento, finetuning, classication, qa, ner mais.
Use modelos de última geração na produção, com menos de 10 linhas de código.
Faça experiência baseada no setor para avaliar para estudantes e comunidade com tutoriais claros
Treine qualquer modelo em GPU , Multi-GPU , TPU com incrível tf.keras.Model.fit
Personalize quaisquer modelos ou pipelines com alteração mínima ou nenhuma de código.
A seção de pesquisa possui códigos para pré-treinamento diferentes modelos que variam de ** mlm, t5, clipe etc **. Todos esses scripts foram projetados para aproveitar o poder total do pipeline TensorFlow-Io e testados em TPU V2 e TPU V3. Os bugs são esperados neles, mas serve como um objetivo para os praticantes iniciarem ou modificarem o que já fizemos.
Realizamos poucos experimentos para espremer o poder dos modelos de base de Albert (o conceito é aplicável a quaisquer modelos e transformadores de TF, ele está fora da caixa.)
A ideia é minimizar a perda para a tarefa especificada em cada camada do seu modelo e verifique as previsões em cada camada. De acordo com nossos experimentos, somos capazes de obter o melhor modelo menor (graças a Albert ) e, a partir da camada 4 , vencemos todo o modelo menor no benchmark de cola . Na camada 6 , obtivemos uma pontuação de cola de 81,0 , que está 4 pontos à frente de Distillbert com pontuação de cola de 77 e uma pontuação de cola de 78 Mobilebert .
O modelo Albert possui 14 milhões de parâmetros e, usando a camada 6 , conseguimos acelerar a computação em 50%.
O conceito é aplicável a todos os modelos e tarefas.
Códigos + Leia mais
Ao dividir a sequência de entrada na atenção e a mesclagem do bloco usando a camada FFN, mostramos que, as máquinas menores poderão executar o processamento de sequência de até 4096 tokens em uma única máquina GPU V100. O modelo supera Pegasus Base (128 million) no PubMed Summarisation, apesar de ter 60 million parâmetros.

Códigos + Leia mais
Atualmente, a TF-Transformers fornece as seguintes arquiteturas.
Agora temos uma página que você pode citar para a biblioteca TF-Transformers.