Нейросеть, способная объяснить себе задачу: P-tuning для YaLM

Блог компании Яндекс. Автор: @roman-gorb. Мы уже рассказывали о том, как применили семейство генеративных нейросетей YaLM для подготовки ответов в Поиске, Алисе или даже в Балабобеhttps://yandex.ru/lab/yalm. Главная особенность наших моделей — метод few-shot learning, который позволяет без дополнительного обучения решать большинство задач в области обработки естественного языка. Достаточно лишь подготовить подводку на человеческом языке — и модель сгенерирует текст. Но что, если это не самый оптимальный путь?

Сегодня я расскажу читателям про апгрейд этого метода под названием P-tuning. Вы узнаете про недостатки оригинального метода few-shot и преимущества нового подхода. Покажу, где он уже применяется на примере покемонов. Добро пожаловать под кат.

Какую задачу мы решаем?

В прошлойhttps://habr.com/ru/company/yandex/blog/561924/ статье мы приводили пример задачи, который будет отчасти релевантен и здесь. Есть текстовая подводка, например:

ТНТ — российский федеральный телеканал. По данным на 2019 год занимает седьмое место по популярности среди телеканалов России. Целевая аудитория телеканала — телезрители от 14 до 44 лет, ядро составляет молодёжь — зрители 18–30 лет. И есть краткое продолжение:

Короче, ТНТ — это телеканал.

Если передать во few-shot-модель несколько таких пар (подводка + продолжение) про разные сущности, а затем загрузить, скажем, описание сайта Booking.com и попросить модель составить продолжение («Короче, Booking.com — это…»), она ответит: «…сайт бронирования отелей». Так работает few-shot — учится составлять тексты по заданному нами принципу.

А что не так с few-shot?

Использование few-shot обычно означает, что для решения задачи имеется совсем немного вручную размеченных данных. Также нет готового решения, с которым можно сравниться, и часто недоступны метрики оценки качества. А даже если они есть, то данных настолько мало, что сигнал получается очень шумным.

Есть и другая проблема: на практике мы столкнулись с множеством артефактов в результатах, которые выдаёт модель. Она может начать придумывать куски информации, которые не имеют никакого отношения к изначальному тексту (но содержатся в значительной части примеров из подводки).

Например, такую подводку…

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

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

Или другой пример работы few-shot — здесь текст продолжает бесконтрольно генерироваться, возникает множество повторов, противоречащие друг другу фразы и прочая бессмыслица:

neyroset.png

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

Поэтому прототипирование с few-shot оказывается довольно трудоёмким и долгим. А самое главное, что этот процесс не даёт гарантии, что мы сможем найти подводку, которая подтолкнёт модель к наиболее качественному решению. А даже если найдём, то почти наверняка составленный нами текст будет не самым оптимальным. С перечисленными проблемами хочется бороться.

Как работает P-tuning?

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

Подробнее
Пожалуйста, оцените статью:
Пока нет голосов
Источник(и):

Хабр