Узнайте, как реализовать модель Transformer для перефразирования, преобразования ключевых слов в текст и грамматической коррекции.

В этой статье я расскажу о трех моих любимых моделях T5 с тонкой настройкой, которые доступны на сайте Hugging Face's Model Hub. T5 был опубликован Google в 2019 году и остается ведущей моделью преобразования текста в текст в области НЛП. Модель настолько способна, что является одной из немногих моделей, способных превзойти человеческий базовый уровень в тесте General Language Understanding Evaluation.

Google любезно предоставил вес для T5, доступ к которому можно получить через Hugging Face’s Model Hub. Таким образом, любой может загрузить и настроить свою собственную версию T5, а затем опубликовать свою обученную модель для использования другими. В этой статье мы обсудим три из моих любимых доработанных моделей T5, которые вы можете использовать прямо сейчас, всего несколькими строками кода.

Мы будем использовать мою собственную библиотеку Happy Transformer. Happy Transformer построен на основе библиотеки Transformers Hugging Face и позволяет легко реализовать и обучить модели Transformer с помощью всего нескольких строк кода. Если вы хотите узнать больше о тонкой настройке моделей с помощью всего нескольких строк кода, вы можете ознакомиться с этим учебником, в котором объясняется, как точно настроить модель грамматической коррекции.

Счастливый трансформер

Happy Transformer доступен на PyPI и поэтому может быть установлен с помощью простой команды pip.

pip install happytransformer

T5 - это модель преобразования текста в текст, поэтому нам нужно импортировать класс из Happy Transformer, который позволяет нам реализовывать модели преобразования текста в текст, называемые HappyTextToText.

from happytransformer import HappyTextToText

Вамси / T5_Paraphrase_Paws

В первой модели мы обсудим перефразирование текста. Таким образом, при вводе текста модель переписывает его, чтобы сохранить то же значение при использовании разных слов. Модель была обучена с помощью набора данных Google's PAWs и была загружена более 78 тысяч раз.

Мы начнем с загрузки и создания экземпляра модели, создав объект HappyTextToText, как показано ниже. Первый параметр позиции предназначен для типа модели, который представляет собой просто T5, а второй параметр - это имя модели, которое является Vamsi / T5_Paraphrase_Paws.

happy_paraphrase = HappyTextToText("T5", "Vamsi/T5_Paraphrase_Paws")

Мы можем использовать разные настройки генерации текста, что приведет к разным результатам. Мы не будем заострять внимание на настройках генерации текста в этой статье, а вместо этого воспользуемся настройками, рекомендованными автором модели.

from happytransformer import TTSettings

top_k_sampling_args = TTSettings(do_sample=True, top_k=120, top_p=0.95, early_stopping=True, min_length=1, max_length=30)

Отсюда мы можем начать генерировать текст с помощью метода «generate_text» happy_paraphrase. Мы должны предоставить текст, который мы хотим перефразировать, для первого параметра позиции и аргументы для параметра, называемого «args». Нам также нужно добавить текст «paraphrase:» в начало текста, чтобы указать, какую задачу модель должна выполнить, и текст «‹/s›» в конец.

text = "I ate 2 apples today." 
input_text = "paraphrase: " + text + " </s>" 
result = happy_paraphrase.generate_text(input_text, args=top_k_sampling_args)

Результатом является объект класса данных с единственной переменной, называемой текстом, которую мы можем выделить, как показано ниже.

print(result.text)

Результат: сегодня я съела 2 яблока.

mrm8488 / t5-base-finetuned-common_gen

Следующая модель, которую мы обсудим, берет набор слов, а затем создает текст на основе предоставленных слов. Итак, возможно, у вас есть несколько ключевых слов для текста, который вы хотите создать, тогда вы можете использовать эту модель для создания текста, относящегося к этим ключевым словам.

happy_common_gen = HappyTextToText("T5", "mrm8488/t5-base-finetuned-common_gen")

Мы будем использовать алгоритм, называемый лучевым поиском, для генерации текста. Не забудьте сначала импортировать TTSettings, если еще не сделали этого.

beam_args = TTSettings(num_beams=5, min_length=1, max_length=100)
input_text = "Apples eat lunch" 
result = happy_common_gen.generate_text(input_text, args=beam_args) print(result.text)

Результат: группа людей ест яблоки на обед.

Vennify / t5-base-грамматика-исправление

Исправление грамматики - обычная задача в НЛП. Возможно, вы хотите дать своим пользователям рекомендации по улучшению их написания, или, может быть, вы хотите улучшить качество своих обучающих данных. В любом случае вы можете использовать модель, которую мы собираемся описать.

Эта модель была создана мной и обучалась с помощью Happy Transformer. Вы можете прочитать полную статью о том, как обучить аналогичную модель, и еще одну статью о том, как опубликовать модель в Hugging Face’s Model Hub.

happy_grammar = HappyTextToText("T5", "vennify/t5-base-grammar-correction") 
text = "I like to walks my dog."
input_text = "grammar: " + text
result = happy_grammar.generate_text(input_text, args=beam_args)
print(result.text)

Результат: я люблю гулять с собакой.

Заключение

Итак, мы только что обсудили три мои самые любимые модели T5. А теперь я призываю вас отладить и выпустить в свет свои собственные модели Transformer. Таким образом, вы действительно поможете сообществу НЛП, одновременно улучшая свои навыки. Еще раз, вот учебник о том, как настроить модель грамматической коррекции, который может вдохновить вас на выпуск вашей собственной подобной модели. Может быть, однажды я напишу статью об одной из ваших моделей и буду всем счастлив!

Код

Вот Google Colab, содержащий весь код, обсуждаемый в этой статье.

Курс

Если вам понравилась эта статья, то, скорее всего, вам понравится один из моих последних курсов, в котором рассказывается, как создать веб-приложение для отображения модели Transformer под названием GPT-Neo со 100% Python. Вот курс с купоном.

Раздор

Присоединяйтесь к серверу Happy Transformer в Discord, чтобы встретить единомышленников-энтузиастов НЛП.

YouTube

Посетите мой канал на YouTube, чтобы узнать больше о НЛП.

Счастливый трансформер

Поддержите Happy Transformer, поставив ему звезду 🌟🌟🌟

Первоначально опубликовано на https://www.vennify.ai 15 сентября 2021 г.