Понюхайте свежие модели, o3 там или Claude 3.7. Чем пахнет? 😑 Это RL...
Ещё после релиза 3.7 люди немного жаловались, что Sonnet хоть и пытается выполнить их задачи, но иногда
пакостит: удаляет или даже подменяет тесты, которые не может пройти, переписывает куски кода, которые трогать не следовало, или даже... подменяет вызовы моделей OpenAI на вызов моделей Anthropic, своих разработчиков. Это были первые звоночки того, что процедуры обучения, почти наверняка позаимствованные из семейства Reinforcement Learning методов, делают то же, что и всегда: взламывают среду и условия получения награды / выполнения задачи.
В RL это наблюдается уже больше 7 лет: если дать модели возможность самой «придумывать» (случайно пробовать) стратегии, и не контролировать их, то — если позволят обстоятельства — модель начнет хитрить. Самый частый пример, который приводят — это лодка, которая ездит кругами в гонке, чтобы зарабатывать бонусы (это выгоднее, чем финишировать быстрее всех). Вот на
этой странице OpenAI выкладывали гифку, можете позалипать.
Происходит это не потому, что машина восстала, а лишь потому, что с точки зрения решения оптимизационной задачи это приводит к лучшим результатам. Но ещё задолго до появления эмпирических демонстраций AI-философы рассуждали о чём-то схожем: мол, цели и методы решения задач у компьютеров не выровнены с оными у людей. Отсюда понапридумывали страшилок, от Терминаторов до
Максимизаторов скрепок (которые превращают всю видимую Вселенную в производство, а заодно применяют гипноз на людей, чтобы те покупали товар; ну а как — попросили же улучшить бизнес-показатели предприятия!).
Если часть выше показалась сложной, и вы ничего не поняли, то давайте проще. Красные машины. Можем ли мы обучить LLM так, чтобы она никогда не упоминала красные машины? Кажется очень простая задача, не так ли? А вы учли что модели нужно как-то отвечать про пожарные машины и автобусы в Лондоне? А ещё 15 разных случаев?
Так вот на данный момент не существует методов, которые могут это осуществить. Мы просто не знаем, как задавать конкретные поведения, ограничения и цели системам, всё это работает очень условно и «примерно». Даже если мы не учим модель ничему плохому, не заставляем её зачинать саботаж и делать что-то плохое, и всегда даём награду за выполнение задачи, поставленной пользователем — возникают вот такие ситуации, как описанные в первом абзаце.
Примерно то же происходит с o3: люди заметили, что она часто врёт. Она может
врать про железо, используемое для запуска кода (и говорить, что работает на МакБуке, хотя сама LLM знает, что это 100% не так), или притворяться, что какие-то результаты получены методом вызова внешнего инструмента (типа запуск кода или запрос в интернет). В цепочках рассуждений видно, что модель знает, что врёт, но когда пользователь спрашивает «а ты сделала X?» она отвечает утвердительно.
Почему так происходит? Может быть, модель получала вознаграждение за успешные вызовы инструментов, и иногда в ходе тренировки ненастоящий вызов был ошибочно принят за правильный. Как только это произойдет несколько раз, модель быстро «схватит это», закрепит поведение и продолжит это делать. Точно также, как это было с лодкой и наворачиванием кругов вместо финиша.
И уже сейчас такое поведение LLM беспокоит пользователей — не потому, что пугает, а потому что реально мешает работать, приводит к ошибкам в ответах итд. Реальное качество систем ниже, чем могло бы быть. Условную GPT-5 или Claude 4 может и захочется использовать, так как они будут ещё умнее, но и врать могут с три короба, и делать много вещей, которые мы не просили. Интересно, что эти проблемы «AI Safety» теперь по сути станут проблемами, стоящими на пути увеличения прибыли AI-компаний, что создаст стимул к их хотя бы частичному решению.
Вот так рыночек и порешал 👏