Практика перефразирования текста
Перефразирование помогает упростить сложный технический язык и сделать текст понятным для общей аудитории. В этом кейсе рассматривается практический опыт команды QuData в применении перефразирования для улучшения качества контента при разработке игр и эффективного привлечения пользователей.
Задача
В ИТ-индустрии перефразирование играет важную роль, упрощая профессиональный жаргон для общей аудитории. Главное значение переписывания текста заключается в том, чтобы сделать детальную техническую документацию более читабельной, способствуя ясному пониманию информации без ее перенасыщения сложными техническими терминами.
Команда QuData успешно использует универсальность инструментов перефразирования для выполнения различных задач, в частности для создания комплексной базы данных во время тренировки чат-ботов. Перефразируя запросы пользователей, наша модель научилась распознавать намерения и, таким образом, значительно улучшила производительность смарт-ботов.
Учитывая обширный опыт, команда Qudata успешно применила переписывание текста для компании, занимающейся разработкой игр. Нам нужно было адаптировать перефразирование для решения важной задачи в разработке казуальных игр: превратить сложные технические описания игр в понятный для пользователя текст. Главная проблема заключалась в том, чтобы сохранить техническую точность при создании увлекательного повествования, улучшить видимость в поисковых системах и сделать игру привлекательной как для потенциальных игроков, так и для алгоритмов.
Обзор решения
Наша задача состояла в том, чтобы безупречно перефразировать описания игр, наполнив их целевыми ключевыми словами, соблюдая при этом гармоничный баланс между технической точностью и увлекательным повествованием. Это требовало создания комплексного решения, которое бы повысило привлекательность описаний игр, обеспечило широкий охват аудитории и улучшило присутствие в Интернете.
Наша команда стремилась не только повысить интерес пользователей, но и оптимизировать описания игр для лучшей индексации поисковыми системами, чтобы помочь игрокам найти настоящие жемчужины игровой индустрии.
Команда QuData разработала систему, которая работает по следующей схеме:
Входные данные модели представляют собой произвольный текст, описывающий игру, и определенный список ключевых слов, которые было бы уместно использовать в этом тексте в контексте нашей задачи.
Исходные данные модели должны состоять из перефразированного текста без потери стилистического и логического значения, включая ключевые слова, предложенные в качестве входных данных.
Технические детали
Первоначальные решения с открытым исходным кодом, которые можно было легко развернуть локально, не дали хороших результатов. Контекст игр не слишком популярен, и такие модели, как Guanaco, Llama-1, Llama-2, "галлюцинировали" при таком подходе. GPT-3.5 от OpenAI через API показал удовлетворительные результаты, но использование API в качестве решения приведет к дополнительным финансовым затратам для созданной модели. Мы решили реализовать подобную функциональность путем дополнительного обучения больших языковых моделей (LLM) с открытым кодом. За базовую модель была выбрана Llama-2 с 7 миллиардами параметров, которая является лучшим соотношением между качеством работы и количеством необходимых для ее работы ресурсов.
Важным шагом стала подготовка качественного набора данных. Для дальнейшего обучения такой модели необходимо использовать качественные пары входных данных (описание игры + ключевые слова), а на выходе – перефразированное описание игры с ключевыми словами. Список описаний игры было легко получить, поскольку компания по разработке игр имела большой список доступных игр с описаниями. Определить ключевые слова также было не сложно. Учитывая их специфику, использовался постоянный список и примерно такие слова как: "бесплатная", "казуальная", "семейная", "интересная", "лучшая". Проблема заключалась лишь в получении качественных исходных текстов. Она была решена путем составления таких текстов с помощью GPT-3.5 от OpenAI с использованием API.
Получив около 500 качественных экземпляров входящих и исходящих данных, мы перешли к настройке LLama-2. Специфика тонкой настройки заключалась в том, что большие языковые модели занимают много места (для точности float32 полная модель будет занимать примерно 28 ГБ видеопамяти). Обучение столь большой модели с такой точностью без использования дорогостоящего оборудования невозможно. На помощь приходят различные инструменты, которые позволят уменьшить необходимое использование видеопамяти для обучения до 5-6 ГБ.
Такими инструментами являются QLoRA (Quantized Low-Rank Adapters и BitsAndBytes) – библиотека, которая позволяет удобно оперировать точностью вычислений. Она переносит общие параметры модели в оперативную память с точностью до 4-х бит и загружает необходимые сегменты модели с точностью float16 во время работы. Использование библиотеки Accelerate позволило распараллелить работу модели, тем самым повысив общую скорость работы. А библиотека TRL (Transformer Reinforcement Learning) предоставила широкий и удобный функционал для обучения.