Site Web: https://legacyai.github.io/tf-transformateurs
TF-transformateurs: transformateur à la pointe de la technologie plus rapide et plus facile dans TensorFlow 2.0
Imaginez que la génération auto-régressive soit 90x plus vite. Les transformateurs TF (transformateurs TensorFlow) sont conçus pour exploiter la pleine puissance de TensorFlow 2, conçu spécifiquement pour l'architecture basée sur le transformateur.
Ces modèles peuvent être appliqués:
Génération de texte GPT2 avec 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 à 31 minutes est une accélération importante. Papée 92 % . En moyenne, les transformateurs TF sont de 80 à 90% d'amélioration que la mise en œuvre de TensorFlow en étreignant et dans la plupart des cas, il est comparable ou plus rapide que Pytorch .
Plus de repères peuvent être trouvés dans Benchmark
Ce référentiel est testé sur Python 3.7+ et TensorFlow 2.7.
pip install sentencepiece
pip install tensorflow-text > = 2.7.3
pip install tqdm Installez tensorflow >= 2.7.0 [CPU or GPU] selon votre machine. Vous devez installer des transformateurs TF dans un environnement virtuel. Si vous n'êtes pas familier avec les environnements virtuels Python, consultez le guide de l'utilisateur.
Tout d'abord, créez un environnement virtuel avec la version de Python que vous allez utiliser et activez-la.
Ensuite, vous devrez installer au moins un de TensorFlow. Veuillez vous référer à la page d'installation de TensorFlow, des pages d'installation concernant la commande d'installation spécifique de votre plate-forme. Nous vous recommandons fortement d'installer [Tensorflow-Text] (https://www.tensorflow.org/text).
Lorsque l'un de ces backends a été installé, les transformateurs TF peuvent être installés à l'aide de PIP comme suit:
pip install tf-transformersgit clone https://github.com/legacyai/tf-transformers.git
pip install poetry
cd tf-transformers
poetry installL'API TF-transformateurs est très simple et minimaliste.
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' )
> >> model . save_checkpoint ( "/tmp/gpt2_model/" ) # Save Model Pour la génération de texte, il est très important d'ajouter: obj: use_auto_regressive=True . Ceci est requis pour tous les modèles.
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' , use_auto_regressive = True )Pour sérialiser le modèle de sauvegarde et de chargement
> >> 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' ] Dans les transformateurs TF, nous avons surtout suivi Functional API de Keras. Tous les modèles dans tf-transformers sont connectés et ont toujours des fonctionnalités suivantes.
Si tf.keras.Model ou tf_transformers.core.LegacyModel , utilisation: print(model.input) .
Si tf.keras.Layer ou tf_transformers.core.LegacyLayer , utilisez: print(model.model_inputs) .
Si tf.keras.Model ou tf_transformers.core.LegacyModel , utilisation: print(model.output) .
Si tf.keras.Layer ou tf_transformers.core.LegacyLayer , utilisez: print(model.model_outputs) .
Nous avons couvert des tutoriels couvrant la pré-formation, les finetuning, la classe, QA, NER beaucoup plus.
Utilisez des modèles de pointe en production, avec moins de 10 lignes de code.
Faire de l'expérience basée sur l'industrie à AVALIABLE aux étudiants et à la communauté avec des tutoriels clairs
Train tout modèle sur GPU , multi-GPU , TPU avec incroyable tf.keras.Model.fit
Personnalisez tous les modèles ou pipelines avec un changement de code minimal ou sans code.
La section de recherche a des codes de pré-formation différents modèles allant de ** mlm, t5, clip, etc. Tous ces scripts sont conçus pour exploiter la pleine puissance du pipeline TensorFlow-IO et testés sur TPU V2 et TPU V3. Des bugs sont attendus dans ceux-ci, mais il sert à un objectif pour les praticiens de commencer ou de modifier ce que nous avons déjà fait.
Nous avons mené quelques expériences pour presser la puissance des modèles de base Albert (le concept est applicable à tous les modèles et dans les transformateurs TF, il est hors de la boîte.)
L'idée est de minimiser la perte de tâche spécifiée dans chaque couche de votre modèle et de vérifier les prédictions à chaque couche. Selon nos expériences, nous sommes en mesure d'obtenir le meilleur modèle plus petit (grâce à Albert ), et à partir de la couche 4 , nous avons battu tout le modèle plus petit dans Benchmark . Selon la couche 6 , nous avons obtenu un score de colle de 81,0 , soit 4 points d'avance sur Distillbert avec un score de colle de 77 et un score de colle de Mobilebert de 78 .
Le modèle Albert a 14 millions de paramètres, et en utilisant la couche 6 , nous avons pu accélérer la compuation de 50%.
Le concept est applicable à tous les modèles et tâches.
Codes + en savoir plus
En divisant la séquence d'entrée en attention et en fusion en utilisant la couche FFN, nous avons montré que les machines plus petites pourront effectuer un traitement de séquence jusqu'à 4096 jetons dans une seule machine GPU V100. Le modèle a surpassé Pegasus Base (128 million) en résumé PubMed malgré un paramètre de 60 million .

Codes + en savoir plus
Les transformateurs TF fournissent actuellement les architectures suivantes.
Nous avons maintenant une page que vous pouvez citer pour la bibliothèque TF-transformateurs.