Денис Соломатин – Искусственный интеллект от А до Б (страница 37)
Тем не менее, эта более простая задача сравнения двух ответов требует времени. LMSYS (Large Model Systems Organization), открытая исследовательская организация, обнаружила, что ручное сравнение двух ответов занимает в среднем от трех до пяти минут, поскольку этот процесс требует проверки фактов каждого ответа. В беседе с моим сообществом в Discord автор Llama-2 Томас Скиалом поделился, что каждое сравнение обходится им в 3,50 доллара. Это все равно намного дешевле, чем написание ответов, которые стоят 25 долларов каждый.
Маркировщики выставляют конкретные баллы от 1 до 7, а также ранжируют ответы в порядке своих предпочтений, но для обучения модели вознаграждения используется только ранжирование. Их согласие между маркировщиками составляет около 73%, что означает, что, если они попросят 10 человек оценить одни и те же два ответа, примерно 7 из них будут иметь одинаковый рейтинг. Чтобы ускорить процесс маркировки, каждый аннотатор может ранжировать несколько ответов одновременно. Набор из трех ранжированных ответов (A > B > C) даст три ранжированные пары: (A > B), (A > C) и (B > C).
Учитывая только сравнительные данные, как мы обучаем модель давать конкретные оценки? Подобно тому, как вы можете заставить людей делать практически что угодно с правильным стимулом, вы можете получить модель, которая будет делать это при наличии правильной целевой функции. Обычно используемая функция представляет собой разницу в выходных баллах для выигрышного и проигрышного ответа. Цель состоит в том, чтобы максимизировать эту разницу. Для тех, кто интересуется математическими деталями, вот формула, используемая InstructGPT:
rθ: обучаемая модель вознаграждения, параметризованная с помощью θ. Цель тренировочного процесса – найти θ, для которого потери сведены к минимуму.
Формат обучающих данных:
x: подсказка
YW: победный ответ
YL: Потеря реакции
sw = r(x, yw): скалярная оценка модели вознаграждения за победный ответ
sl = r(x, yl): скалярный балл модели вознаграждения за проигравший ответ
σ: сигмовидная функция
Для каждой обучающей выборки (x, yw, yl) величина потерь вычисляется следующим образом:
log (σ(rθ(x, yw) – rθ(x, yl))
Цель: найти θ для минимизации ожидаемых потерь для всех обучающих выборок.
–Ex log (σ(rθ(x, yw) – rθ(x, yl))
Модель вознаграждения может быть обучена с нуля или точно настроена на основе другой модели, например предварительно обученной или SFT-модели. Точная настройка на основе самой прочной модели фундамента, по-видимому, дает наилучшую производительность. Некоторые люди считают, что модель вознаграждения должна быть по крайней мере такой же мощной, как и базовая модель, чтобы иметь возможность оценивать ответы базовой модели. Однако слабая модель может судить о более сильной, поскольку считается, что судить легче, чем генерацию.
С помощью обученного RM мы дополнительно обучаем SFT-модель генерировать выходные ответы, которые максимизируют баллы по модели вознаграждения. Во время этого процесса подсказки выбираются случайным образом из распределения подсказок, таких как существующие пользовательские подсказки. Эти подсказки вводятся в модель, ответы на которую оцениваются моделью вознаграждения. Этот процесс обучения часто выполняется с помощью проксимальной оптимизации политики (PPO) – алгоритма обучения с подкреплением, выпущенного OpenAI в 2017 году.
Эмпирически RLHF и DPO повышают производительность по сравнению только с SFT. Тем не менее, ведутся споры о том, почему они работают. По мере развития этой области тонкая настройка предпочтений значительно изменится в будущем. Если вам интересно узнать больше о RLHF и тонкой настройке предпочтений, ознакомьтесь с репозиторием книги на GitHub.
Как SFT, так и тонкая настройка предпочтений являются шагами, предпринятыми для решения проблемы, вызванной низким качеством данных, используемых для предварительного обучения. Если в один прекрасный день у нас появятся более качественные данные для предварительного обучения или более эффективные способы обучения базовых моделей, нам вообще не понадобятся SFT и предпочтения.
Некоторые компании считают нормальным вообще отказаться от обучения с подкреплением. Например, Stitch Fix и Grab обнаружили, что для их приложений достаточно иметь только модель вознаграждения. Они заставляют свои модели генерировать несколько выходных данных и выбирают те, которые получили высокие баллы в своих моделях вознаграждения. Этот подход, часто называемый стратегией наилучшего из N, использует способ выборки выходных данных модели для повышения ее производительности.
Модель конструирует свои выходные данные с помощью процесса, известного как выборка. В этом разделе обсуждаются различные стратегии выборки и переменные выборки, включая температуру, top-k и top-p. Затем будет изучено, как сделать выборку нескольких выходных данных для повышения производительности модели. Мы также увидим, как можно изменить процесс выборки, чтобы модели генерировали ответы, соответствующие определенным форматам и ограничениям.
Выборка делает результаты ИИ вероятностными. Понимание этой вероятностной природы важно для управления поведением ИИ, таким как непоследовательность и галлюцинации. Этот раздел заканчивается глубоким погружением в то, что означает эта вероятностная природа и как с ней работать.
Получив входные данные, нейронная сеть производит выходные данные, сначала вычисляя вероятности возможных исходов. Для модели классификации возможными результатами являются доступные классы. Например, если модель обучена классифицировать сообщение электронной почты как спам или нет, то возможны только два исхода: спам и не спам. Модель вычисляет вероятность каждого из этих двух исходов, например, вероятность того, что электронное письмо является спамом, составляет 90%, а не спама – 10%. Затем вы можете принимать решения на основе этих выходных вероятностей. Например, если вы решите, что любое письмо с вероятностью спама выше 50% должно быть помечено как спам, то письмо с вероятностью спама 90% будет помечено как спам.
При работе с возможными исходами с разными вероятностями распространенной стратегией является выбор исхода с наибольшей вероятностью. Всегда выбирать наиболее вероятный исход = называется жадной выборкой. Это часто работает для задач классификации. Например, если модель считает, что электронное письмо с большей вероятностью будет спамом, чем не спамом, имеет смысл пометить его как спам. Однако для языковой модели жадная выборка приводит к скучным результатам. Представьте себе модель, которая на любой вопрос, который вы зададите, всегда отвечает самыми распространенными словами.
Вместо того чтобы всегда выбирать следующий наиболее вероятный токен, модель может выбрать следующий токен в соответствии с распределением вероятностей по всем возможным значениям. Учитывая контекст «Мой любимый цвет – это…», если «красный» имеет 30% шанс стать следующей фишкой, а «зеленый» имеет 50% шанс, то «красный» будет выбран в 30% случаев, а «зеленый» – в 50% случаев.
Как модель вычисляет эти вероятности? Получив входные данные, нейронная сеть выводит вектор логит. Каждому логиту соответствует одно возможное значение. В случае языковой модели каждый логит соответствует одному токену в словаре модели. Размер вектора логит – это размер словаря.
В то время как большие логиты соответствуют более высоким вероятностям, логиты не представляют вероятности. Логиты не суммируются с единицей. Логиты могут быть даже отрицательными, в то время как вероятности должны быть неотрицательными. Для преобразования логитов в вероятности часто используется слой softmax. Допустим, модель имеет словарь N и вектор логита равен x1, x2,…, xN. Вероятность для i-го токена, pi, вычисляется следующим образом: pi = softmax(xi) = e^{xi} / ∑_{j} (e^{xj} ).
Правильная стратегия выборки может сделать модель более подходящей для вашего приложения. Например, одна стратегия выборки может заставить модель генерировать больше творческих откликов, в то время как другая стратегия может сделать ее поколения более предсказуемыми. Было введено множество различных примеров стратегий для подталкивания моделей к ответам с определенными атрибутами. Вы также можете разработать собственную стратегию выборки, хотя для этого обычно требуется доступ к логитам модели. Давайте рассмотрим несколько распространенных стратегий выборки, чтобы увидеть, как они работают.
Одна из проблем с выборкой следующей лексемы в соответствии с распределением вероятностей заключается в том, что модель может быть менее креативной. В предыдущем примере общие цвета, такие как «красный», «зеленый», «фиолетовый» и так далее, имеют наибольшие вероятности. Ответ языковой модели в конечном итоге звучит как ответ пятилетнего ребенка: «Мой любимый цвет – зеленый». Модель имеет низкую вероятность создания творческого предложения, например «Мой любимый цвет – это цвет тихого озера весенним утром».
Чтобы перераспределить вероятности возможных значений, можно выполнить выборку с температурой. Интуитивно понятно, что более высокая температура снижает вероятность выпадения обычных жетонов и, как следствие, увеличивает вероятность более редких жетонов. Это позволяет моделям создавать более творческие ответы.