Как Яндекс научил нейросеть пересказывать статьи и видео

НачалоКак оценивали пересказыКак обучали модельСложности пересказа видеоЧто дальше

В этом году Яндекс запустил пересказ статей и видео. Теперь, чтобы узнать самое важное из лонгрида или многочасовой лекции, можно не тратить кучу времени, а почитать короткий текст с основными тезисами. Функция доступна в Яндекс Браузере и сервисе 300.

Руководитель ML-проектов в Яндекс Браузере Сергей Юдин рассказал, как они оценивали качество пересказа и обучали модель.

С технической точки зрения есть много типов задач суммаризации данных, но мы решали ту, которая называется Single Document Abstractive Text Summarization. Она основана на одном документе, в нашем случае это текст или видео, а в процессе можно перефразировать предложения и генерировать новые.

Есть два подхода к суммаризации:

  • Extractive Summarizes — простой вариант, когда из документа выбирают главные предложения без изменений. Похоже на то, когда маркером в тексте выделяют основные мысли.
  • Abstractive Summarizes — более сложный вариант, когда главные тезисы из текста пересказывают новыми словами и предложениями.

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

Ещё одна важная часть работы с нашей моделью — понять, как оценивать суммаризацию. Мы пробовали классические метрики Bleu и Rouge и более современные Seahorse. Первые две не подошли, потому что требуют эталонной суммаризации и не совсем правильно работают, когда в одном документе есть переформулировки, синонимы и другие сложные моменты.
Методику Seahorse разработали в Google, она учитывает шесть критериев: понятность, повторы, грамматику, подтверждённость, основные идеи, краткость. Каждый из этих пунктов хорошо подходит для оценки пересказов, поэтому мы выбрали их для нашей задачи.

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

Недочёты снижают балл, а за криты любой результат получал единицу 

В результате мы обнаружили, что метрики Seahorse коррелируют с нашим средним скором. Так мы получили инструмент для оценки модели, чтобы брать в работу только лучшие параметры.

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

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

По этому формату пересказа собирали датасет на основе потока популярных статей и видео из интернета. В процессе часть данных отправили в отложенную корзинку для подсчёта метрик на следующих этапах.

Следующий этап — подготовка обучающей выборки. Мы собрали разные модели семейства YandexGPT и проверяли, какая из них лучше справляется с пересказом статей и видео на разных датасетах. В процессе подбирали оптимальные параметры методами Fine-tuning, P-tuning и их комбинациями.

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

С датасетом помогали асессоры и AI-тренеры. Они написали множество пересказов, а мы проверяли на них модель с помощью Fine-tuning и экспериментировали. Когда получили модель хорошего качества, запустили её для эксперимента на пользователей.

Немного статистики: для моделей краткого пересказа статей мы собрали 50 000 пересказов. Обучили и разметили 23 модели, прежде чем выбрать окончательный вариант. А для видео подготовили 7 500 пересказов (примерно 2 000 часов) и обучили 27 моделей.

Для пересказа из видео нужно сначала получить аудиодорожку и субтитры, а потом перевести их в текст, который подойдёт для входа в модель. Здесь возникает целый ряд нюансов, которые нам пришлось учитывать при подборе и настройке моделей:

  • Модели различаются по длине контекста — от этого сильно зависит качество пересказа. Для этого важно правильно разделить видео на отдельные части. Мы использовали технологию, которая замечала смену интонации, паузы в речи, затемнение в кадрах и другие признаки того, что в ролике одна тема меняется на другую.
  • Субтитры могут быть низкого качества. Для этого мы дополнительно подключили лёгкие модели, которые делят текст на части, восстанавливают пунктуацию и чистят предложения от лишнего. Это помогает модели для пересказа давать лучший результат.
  • Нужны большие мощности. Чтобы запускать модель по несколько раз на одном и том же видео, мы кешируем результаты сразу на нескольких этапах. Так удалось в разы ускорить работу над моделью.

В первую очередь работаем над тем, чтобы модель лучше справлялась с разными форматами статей и видео — как по содержанию, так и по длине. Простой пример: для суммаризации эфира футбольного матча не нужно разбивать пересказ на главы, полезнее выделить итоговый счёт и перечислить, кто и в какое время забивал голы.

Ещё мы хотим, чтобы в будущем модель сама справлялась с выбором формата. У нас уже есть наработки для пересказа интервью: модель может указать не только содержание беседы, но и информацию о спикерах.

Поделитесь увиденным

Скопировать ссылку
ТелеграмВКонтакте