Практика перефразування тексту

Перефразування допомагає спростити складну технічну мову та зробити текст зрозумілим для загальної аудиторії. У цьому кейсі розглядається практичний досвід команди 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) надала широкий і зручний функціонал для навчання.

Стек технологій

GPT

GPT

Llama 2

Llama 2