Обучение ИИ с использованием обратной связи от человека

Сейчас расскажу вам про одну штуку, которая здорово улучшила качество работы ИИ. Это обучение с подкреплением на основе обратной связи от человека (Reinforcement Learning from Human Feedback). То есть, вы поправляете ИИ, и он запоминает, где и как вы его поправили, чтобы реже делать такие ошибки в будущем. Или вы хвалите ИИ, и он запоминает, что вам понравилось, чтобы в будущем это воспроизвести. Так работают GPT, Claude и некоторые другие большие модели.
Поговорим о том, что за механизм лежит внутри.

Статья, с которой все началось

Честно говоря, такую статью оказалось не так просто найти. Популяризовала подход публикация «Deep Reinforcement Learning from Human Preferences» («Глубокое обучение с подкреплением на основе человеческих предпочтений») 2017 года, однако есть и более ранние статьи на ту же тему.
Возьмем за точку отсчета статью «TAMER: Training an Agent Manually via Evaluative Reinforcement» («TAMER: обучение агента в ручном режиме с оценочным подкреплением»). Идея у авторов была простая и логичная в высшей степени: есть задачи, которые ИИ решает лучше, чем люди, а есть задачи, которые ИИ решает плохо или не умеет решать совсем, а люди умеют. Возьмем ИИ, людей, и пусть люди ему расскажут, что он не так делает.

<i>(Схема процесса обучения)</i>
(Схема процесса обучения)

ИИ-агент в этой схеме совершает некоторые действия, пытаясь предсказать, за что он получит наибольшее вознаграждение (Reward Model). Действия (Action) приводят к последствиям (State). Эти последствия человек наблюдает с помощью интерфейса (Sensory Display) и дает свою оценку в человекочитаемом формате. Это может быть число или, например, слово «верно» / «неверно» или нажатие кнопки – что-то, что потом преобразуется в численный формат и возвращается агенту. В самом простом варианте человек может возвращать, например, число 1, если агент совершил правильное действие, и -1, если неправильное – это и есть «вознаграждение». Задача агента сделать так, чтобы вознаграждение было как можно больше. Если оно будет уменьшаться (человек вернул «-1»), агент скорректирует свои действия, таким образом «запоминая», как вести себя правильно. После нескольких циклов обучения человека можно исключить из цепочки, и далее агент сможет действовать самостоятельно, опираясь на предшествующий опыт.
В обучении с подкреплением в целом процесс вознаграждения может быть описан достаточно сложной функцией и происходить без участия человека, но это тема другого разговора. Процесс вознаграждения можно «взломать», если ИИ найдет какой-то способ получать большее вознаграждение, не улучшая свои результаты. У меня в плане на конец декабря стоит пост про эту проблему (он будет в телеграме). Здесь мы сосредоточимся именно на взаимодействии с человеком.
Тестировали новый подход на игре «Тетрис», только в немного измененном варианте: агент не перемещает фрагменты головоломки, а выбирает место его размещения из предложенного списка. При этом фрагменты выбираются каждый раз случайным образом, и агент не может знать, какой фрагмент будет следующим.

Люди оценивали, правильно ли размещен фрагмент (то есть, насколько оно приближает заполнение целого ряда, чтобы этот ряд пропал с поля).

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

Популяризация обучения с обратной связью от человека

Как мы уже сказали, такой подход к обучению стал набирать обороты после публикации «Deep Reinforcement Learning from Human Preferences» 2017 года. Так что про нее тоже нужно написать пару слов. Там ИИ тоже учили играть в игры, а еще учили управлять роботом (в симуляции).
Проблема, которую поднимают авторы этой статьи, заключается в том, что многие задачи слишком сложны, чтобы правильно прописать функцию вознаграждения. Например, вам нужно научить робота взбивать яйцо – это задача, в которой очень много переменных (не тетрис). Нужно учитывать скорость движений робота, силу сжатия венчика, текстуру яйца и много чего еще, а потом создать такую функцию, которая будет увеличивать вознаграждение, если действия совершены верно, и уменьшать, если яйцо разлетелось во все стороны. Гораздо быстрее (и проще) в этом случае будет наблюдать за роботом и сообщать ему обратную связь.
Можно, конечно, показать процесс взбивания яйца и дать агенту научиться на примере, но не всё можно продемонстрировать (например, если надо не взбивать яйцо, а переместить очень тяжелый и хрупкий груз, который один человек не поднимет). Кроме того, если робот морфологически не похож на человека (например, у него не две руки, а один манипулятор), тут тоже будут сложности.
Как и в предыдущей статье, обучение ИИ-агента таким образом не требует специальных навыков и может осуществляться человеком без технического образования. Это хорошо не только для пользователя, который не должен изучать детали процесса обучения ИИ, но и для развития технологии, потому что оно таким образом будет здорово ускорено.
Людям предложили попарно сравнить короткие видеозаписи, на которых агент выполняет определенные действия, и выбрать ту из них, на которой он справляется лучше (или сказать, что записи одинаковые или несравнимые, тогда они исключались из процесса обучения).
Для экспериментов авторы использовали MuJoCo – инструмент для моделирования физических процессов (бесплатный, кстати, и с открытым исходным кодом). MuJoCo используется в робототехнике (и не только) для отработки поведения робота в сложной среде. Вторым инструментом был Gym от OpenAI. Сейчас Gym уже не поддерживается, его заменили на Gymnasium. Это инструмент, с помощью которого можно обучать ИИ-агентов играть в компьютерные игры (такие как у Atari) и тоже симулировать физические процессы в сложной среде.

К статье прилагаются видеоматериалы, например, на этом видео ИИ-агент играет в Enduro (это гонка, цель которой – каждый день обгонять определенное количество соперников, ни с кем не столкнувшись).
В результате получилось, что обратная связь от человека работает в самом деле хорошо и помогает агентам решать достаточно сложные задачи, которые плохо описываются формулами (то, о чем мы говорили ранее: в видеоигре, например, очень много переменных, и для нее сложно написать хорошую функцию вознаграждения).

Заключение

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

11
1 комментарий

Так интересно разбираться в теме ИИ! 🤖

Ответить