Читать нас в Telegram
Иллюстратор: Женя Родикова

Знакомая ситуация

Наверняка вы часто замечали за собой, что быстро отвечая на, казалось бы, простые вопросы, часто ошибаетесь? Этот феномен можно объяснить моделью человеческой психики, предложенной психологом Даниэлом Канеманом, автором книги «Думай медленно… решай быстро».

Согласно этой модели психика человека содержит в себе две системы мышления – Систему 1 и Систему 2. Система 1 срабатывает автоматически, практически мгновенно, требует мало усилий и не дает ощущения контроля. Эта система включается в ситуациях, которые вписываются в привычную картину мира человека. В незнакомых ситуациях Система 1 не способна дать ответ, как реагировать, и в этот момент включается Система 2. Система 2, в свою очередь, требует внимание, которое необходимо для сознательных умственных усилий. Систему 1 можно воспринимать как интуицию, а Систему 2 – как рассуждение и логику. Поскольку человеческий организм стремится минимизировать затраты энергии, Система 1 в нужный момент зачастую не отдает контроль Системе 2, что в итоге приводит к неправильному ответу.

Оказалось, что подобный механизм «размышлений» можно наблюдать и в работе больших языковых моделей. Можно «заставить» языковую модель включить Систему 2 и тем самым повысить качество решения задачи, не используя дополнительные обучающие данные.

Языковые модели умеют не только моделировать язык

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

За счет использования разнообразных данных языковые модели способны решать задачи, которые не подразумевались во время обучения нейросети. Чтобы решить конкретную задачу, модели нужно всего лишь дать подходящий запрос. Например, обученному BERT можно подать строку «СССР распался в ??? году», и модель предскажет, что на месте пропуска («???» обозначает пропуск) должно стоять «1991». Ответ на вопрос, поставленный в запросе, модель, скорее всего, видела в статье Википедии, которая использовались во время обучения нейросети.

Помимо фактологических вопросов модели можно подавать запросы на перевод: «Кошка на французском будет ???», или даже математические/логические задачи: «Жонглер может жонглировать 16 мячами. Половина мячей — мячи для гольфа, а половина мячей для гольфа — синие. Сколько синих мячей для гольфа есть? Ответ (в виде одного числа): ???».

Однако даже огромная языковая модель, к сожалению, не всегда способна качественно решать новые для нее задачи. Качество решения сильно зависит в том числе и от конкретной формулировки запроса. Например, запросы «Кошка на французском будет ???» и «Слово кошка на французском языке переводится как ???» дадут разные результаты, несмотря на то, что семантически они идентичны.

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

Модели можно помочь, добавив в запрос несколько обучающих примеров. Так запрос «Cобака на французском будет chien, птица – oiseau, кошка – ???» содержит в себе примеры того, что требуется от модели.

Показано, что почти всегда добавление хотя бы одного обучающего примера в запрос повышает качество решения задач. Постановка, при которой модель решает задачу без использования обучающих примеров, называется Zero-Shot Learning. Если же задействуется небольшое количество обучающих примеров, то говорят о Few-Shot Learning.

Языковые модели могут помочь сами себе

При Zero-Shot Learning модель, по сути, «использует» Систему 1: она видит запрос из набора слов, которые с большой вероятностью встречались ей при обучении, и «сразу же» выдает ответ. Подобно человеку, который не дал себе время поразмышлять перед ответом, модель ошибается. Авторы статьи Large Language Models are Zero-Shot Reasoners [1] предполагают, что у языковых моделей «присутствует» также Система 2, и показывают, как «заставить» модель задействовать ее. Если раньше решение задачи состояло из одного шага, а именно подачи запроса с условием задачи и пропуском, который модель должна заполнить ответом, то теперь решение разбивается на два шага. 

Первый шаг заключается в активизации у модели Системы 2. На этом шаге к условию задачи добавляется фраза «Давай думать шаг за шагом. ???», в ответ на такой запрос модель возвращает промежуточные рассуждения, необходимые для решения задачи. На втором шаге к условию задачи добавляются рассуждения, сгенерированные на первом шаге, и пропуск, который модель должна заполнить финальным ответом. 

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

Предложенный алгоритм использования рассуждений дает существенный прирост в качестве решения многих задач:

Сравнение обычного zero-short learning и zero-short learning с использованием промежуточных рассуждений (обозначено как zero-shot-cot) в разных задачах.
Числа слева – значения метрик качества при использовании специальных запросов для извлечения финального ответа, числа справа – значения метрик, полученные с помощью запроса «Ответ: ???». Жирным выделены более высокие показатели.

Интересно отметить, что алгоритм работает с многими языковыми моделями –  авторы протестировали его на нескольких вариациях GPT-3, а также на PaLM.

Горе от ума

Помимо удачных примеров, когда дополнительные рассуждения помогают повысить качество решения, авторы демонстрируют случаи, когда модель выдает правильные, логичные доводы, которые сбивают модель с толку на втором шаге:

Целая наука

Качество решений задач в постановках Zero- и Few- Short Learning, как говорилось выше, в значительной степени зависит от конкретной формулировки запроса. В предложенном методе используются два запроса: первый активизирует Систему 2, второй извлекает финальный ответ. Формулировки обоих запросов влияют на качество:

Сравнение разных запросов для активации рассуждений в контексте арифметических задачах

На данный момент в NLP выделилась целая область исследований Prompt Engineering, которая изучает зависимость между формулировкой запросов и ответами модели. 

Источники

[1] Kojima, T., Gu, S. S., Reid, M., Matsuo, Y., & Iwasawa, Y. (2022). Large Language Models are Zero-Shot Reasoners. arXiv preprint arXiv:2205.11916.