Во многом работа с языковыми моделями заключается в том, чтобы управлять их непредсказуемостью. Нам нужно ограничивать её, направлять в нужное русло и использовать так, чтобы она приносила пользу.
Что это значит? Дело в том, что модели всегда имеют определённую долю случайности и могут генерировать новые и разные идеи при каждом запросе. Иногда это бывает полезно – например, при создании художественных текстов, когда нужны различные сюжетные линии, персонажи и неожиданные повороты. Каждый раз, запрашивая новый текст, мы получаем уникальный результат – и это замечательно.
Но если мы используем языковую модель для логических рассуждений или анализа данных, то нам может не подойти слишком высокая вариативность ответов. Представьте, что вам нужен однозначный ответ «да» или «нет». Мы не хотим, чтобы модель иногда говорила «да», иногда «нет», а в другой раз начинала длинное рассуждение о том, почему этот вопрос сложен и нельзя дать точный ответ. Иногда нам нужен конкретный и лаконичный ответ, а добиться этого не всегда просто.
Демонстрация случайности в ответах
Чтобы показать, что один и тот же ввод не обязательно приводит к одинаковому выводу, давайте посмотрим на пример.
Я задал языковой модели вопрос:
Что я сейчас держу в руке?
Первый ответ был таким:
К сожалению, я не могу видеть или ощущать физические объекты, поэтому не знаю, что вы держите в руке.
Затем последовало уточнение:
Возможно, это телефон, чашка или ручка – наиболее частые предметы, которые люди держат в руках.
При повторном запросе модель ответила иначе:
У меня нет визуального восприятия, но, возможно, вы держите ключи, бумагу или какой-то гаджет.
А в следующий раз модель предложила:
Это может быть всё, что угодно – от еды до пульта управления. Если вы подскажете больше контекста, я постараюсь угадать точнее.
Хотя общий смысл этих ответов совпадает – «я не могу знать наверняка» – сами формулировки различаются. Именно в этом и проявляется случайность, заложенная в работу модели.
Итог
Когда мы создаём запросы (промты), нам нужно учитывать вариативность ответов. Иногда это полезно, например, в творческих задачах. Но если нам нужен предсказуемый результат, необходимо разрабатывать промты так, чтобы минимизировать случайные отклонения.
Например, если нам нужен конкретный числовой ответ, обычный запрос типа: