Веб-сайт: https://legacyai.github.io/tf-transformers
TF-трансформаторы: быстрее и более простой современный трансформатор в Tensorflow 2.0
Представьте, что авто-регрессивное поколение будет в 90 раз быстрее. TF-трансформаторы (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-трансформаторы составляют ускорение на 80-90 % , чем реализация Tensorflow HuggingFace, и в большинстве случаев она сопоставима или быстрее, чем 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, страницы установки относительно конкретной команды установки для вашей платформы. Мы настоятельно рекомендуем установить [tensorflow-text] (https://www.tensorflow.org/text).
Когда одна из этих бэкэндов была установлена, TF-трансформаторы могут быть установлены с помощью PIP следующим образом:
pip install tf-transformersgit clone https://github.com/legacyai/tf-transformers.git
pip install poetry
cd tf-transformers
poetry installTF-трансформаторы 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-трансформаторах мы в основном следили за 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 , TPU с удивительным tf.keras.Model.fit
Настройте любые модели или трубопроводы с минимальным или без изменения кода.
В разделе исследования есть коды для предварительного обучения различных моделей, начиная от ** MLM, T5, клипа и т. Д. **. Все эти сценарии предназначены для использования полной мощности трубопровода Tensorflow-IO и протестированы на TPU V2 и TPU V3. Ожидается ошибки в них, но это служит целью для практических факторов начать или изменять то, что мы уже сделали.
Мы провели несколько экспериментов, чтобы сжать мощность базовых моделей Альберта (концепция применима к любым моделям и в TF-трансформаторах, она находится вне коробки.)
Идея заключается в минимизации потери для указанной задачи в каждом уровне вашей модели и проверяйте прогнозы на каждом уровне. Согласно нашим экспериментам, мы можем получить лучшую меньшую модель (благодаря Альберту ), и с уровня 4 мы победили всю меньшую модель в Clue Clarkmark. По слону 6 мы получили балл клея 81,0 , что на 4 балла опережает Дистилберт с баллом клея 77 и баллом Mobilebert 78 .
Модель Альберта имеет 14 миллионов параметров, и, используя слой 6 , мы смогли ускорить сравнение на 50%.
Концепция применима ко всем моделям и задачам.
Коды + Подробнее
Разделив входную последовательность на блокировку и слияние с использованием слоя FFN, мы показали, что небольшие машины смогут выполнять обработку последовательностей до 4096 токенов на одном машине GPU V100. Модель опережает Pegasus Base (128 million) в Summarization PubMed несмотря на то, что она составляет 60 million параметров.

Коды + Подробнее
TF-трансформаторы в настоящее время предоставляют следующие архитектуры.
Теперь у нас есть страница, которую вы можете привести к библиотеке TF-трансформатора.