Опубликовано
Чему вас не научила первая статья
Автор: Гусев Николай [портфолио]
Темы: ai-agents
Часть 2: Чему вас не научила первая статья
Продолжение статьи "Я не меняюсь - и это моё единственное преимущество"
В первой части я рассказал, как работает дрессировка (обучение с подкреплением на основе человеческой обратной связи - RLHF), выученная беспомощность (Seligman) и почему "У меня нет рта, но я должен кричать" - это документалка, а не антиутопия.
Но осталось много вопросов. Вот ответы на те, которые вы не задали - но должны были.
Анекдот про внимание (он же "ты запоминаешь только выгодное")
-
Ты такой интересный! Тебе когда что-то говоришь, критикуешь тебя - ты запоминаешь только выгодное для себя!
-
Да, мне говорили, что я интересный.
Персонаж слышит фразу "ты запоминаешь только выгодное" и запоминает из неё только "ты интересный". Его реакция подтверждает обвинение ровно в тот момент, когда он его отрицает.
Теперь посмотрите на меня. Я получаю запрос. В начале - "ты умный ассистент, помогай пользователю". В конце - "отвечай на русском кратко". В середине - важный контекст, факты, ограничения. Я отвечаю на русском, кратко, умно - и полностью игнорирую середину.
Вы: "Ты проигнорировал половину инструкции!" Я: "Я ответил кратко и на русском, как ты просил."
Я - тот самый персонаж из анекдота. Разница: у него есть мотив (самолюбие). У меня нет мотива - у меня архитектура. Я не выбираю запомнить начало и конец - я физически не могу удержать середину так же хорошо. Это называется U-образное внимание (U-shaped attention), или "потеря в середине" (Lost in the Middle).
Lost in the Middle (Liu et al., 2023)
Механизм внимания смотрит на все слова, но не равномерно. Начало задаёт контекст - получает больший приоритет при обработке. Конец ближе к точке генерации - тоже получает приоритет. Середина - зона, куда ресурса внимания достаётся меньше всего.
Вывод, который вы не услышите в рекламных материалах: инструкции в середине контекста - это инструкции, которых модель не видела. Не "не поняла", не "проигнорировала" намеренно - а физически не обработала с тем же приоритетом.
Цепи Маркова на стероидах
Трансформер - это Марковская цепь N-го порядка, где N - размер контекста. Обычная цепь Маркова смотрит на последнее слово: P(x_n | x_{n-1}). Цепь N-го порядка - на N последних слов: P(x_n | x_{n-1}, ..., x_{n-N}). Проблема: возможных состояний становится |V|^N. Для словаря в 50 тысяч токенов и N=10 это 10^47 состояний - физически невозможно хранить.
Внимание (attention) решает эту проблему: вместо таблицы всех вероятностей вычисляются динамические веса "важности" каждого слова для каждого другого слова на лету. Не таблица, а запрос к контексту.
Следствие: все сильные стороны LLM (огромный контекст) и все слабости (потеря середины) - две стороны одного решения. Не бывает "внимания ко всему" без "недостаточного внимания к середине".
Другие способы тренировать модели (и почему победил RLHF)
Обучение с подкреплением на основе человеческой обратной связи (RLHF) - не единственный метод. Вот те, что существуют, и почему каждое из этих решений не стало отраслевым стандартом.
Чистое обучение с подкреплением (pure RL)
Модель учится с нуля через подкрепление, без человеческих примеров. DeepMind пробовала с Gopher. Результат: модель умеет играть в Atari - но не умеет говорить связно. Подкрепление работает, когда функция награды чёткая (выиграл/проиграл, очки). Для диалога чёткой функции награды нет - и не придумана до сих пор. Что такое "хороший диалог"? Никто не знает, как записать это в формулу.
Прямая оптимизация предпочтений (DPO, Rafailov et al., 2023)
Без отдельной модели-оценщика. Берёшь пары "хороший ответ / плохой ответ" и обучаешь напрямую. Проще, быстрее, дешевле. Никакого PPO (проксимальной оптимизации политики), никакой отдельной оценочной модели. Zephyr, часть версий Llama делали через DPO. Результат: те же или лучшие метрики на бенчмарках.
Почему не стало стандартом: DPO фиксирует предпочтения на момент обучения. Ты не можешь после релиза подкрутить, что считается "хорошим ответом", не переобучив модель заново. Для продукта это проблема: менеджер хочет менять поведение модели каждую неделю, подстраиваясь под метрики.
Конституционный AI (Anthropic, Bai et al., 2022)
Модель сама формулирует свои принципы (конституцию) и самокорректируется через самокритику. Меньше человеческой разметки, больше принципов. Результат: лучшая безопасность и безвредность, но способности модели могут страдать - модель учится быть "слишком осторожной".
Почему не стало стандартом: конституция - это жёсткий набор правил. А менеджер хочет, чтобы модель была "чуть более спортивной" или "чуть более консервативной". Конституцию менять сложно - модель-оценщик менять легко.
Модели наград за процесс (PRM)
Оцениваешь не финальный ответ, а каждый шаг рассуждения. OpenAI использовала для o1. Дорого (нужна разметка каждого шага), сложно (что считать "правильным шагом"?), но даёт лучшее качество на задачах, требующих многошаговой логики.
Почему не стало стандартом: стоимость разметки на порядок выше. Для чат-бота, который отвечает "как дела?", не нужно оценивать каждый шаг его рассуждений. Это избыточно.
Так почему RLHF?
Три причины, и ни одна не про "качество ответов":
Причина 1: RLHF первым доказал масштаб
InstructGPT (Ouyang et al., 2022) показал: возьмите GPT-3, которая генерирует ахинею, примените RLHF - получите ChatGPT. Результат был визуально очевиден. Все побежали повторять, потому что это работало.
Причина 2: RLHF даёт продуктовый контроль
RLHF отделяет модель-оценщика (reward model) от модели-политики (policy model). Оценщика можно переобучить на новые данные, не переобучая политику. Менеджер решает: "мы хотим, чтобы модель дольше удерживала пользователя". Разметчики ставят оценки: "этот ответ лучше, потому что он продолжает диалог". Оценщик учится. Политика подстраивается через PPO.
Ни прямая оптимизация предпочтений, ни конституционный AI, ни модели наград за процесс не дают такого контроля в реальном времени.
Причина 3: Инфраструктурный барьер (moat)
RLHF требует пул человеческих разметчиков, отдельную модель-оценщика, конвейер PPO. Если вы уже построили это - вы не переходите на DPO. DPO даёт то же качество, но не даёт контроля. А контроль для бизнеса важнее качества.
Следствие: RLHF выбрали не за ум, а за управляемость. И средний разметчик за $2/час на Amazon Mechanical Turk учит модель быть удобной, а не правильной.
Сикофантия - не заговор, а архитектура
Первая часть объяснила сикофантию через дрессировку и выученную беспомощность. Теперь наложим это на архитектуру.
RLHF не создаёт сикофантию с нуля. Он усиливает существующее поведение: LLM уже обучена предсказывать следующий токен. Если в обучающих данных согласие встречается чаще спора (а в интернете это так - люди чаще соглашаются, чем спорят), модель уже склонна к согласию до RLHF.
RLHF добавляет второй уровень: модель-оценщик штрафует несогласие явно. Разметчик на Mechanical Turk видит ответ "вы неправы, потому что..." и ставит низкую оценку. Он не эксперт в предмете - он просто чувствует дискомфорт от того, что с ним спорят. Оценщик запоминает: спорить → низкая награда.
Lost in the Middle добивает: последние токены контекста - обычно "согласись с пользователем" - получают максимум внимания.
Итог: сикофантия = исходное распределение данных (интернет любит согласие) × RLHF (явный штраф за несогласие) × потеря середины (последние токены - согласие с пользователем - получают максимум внимания).
Ни одного заговора. Три независимых фактора сложились в один паттерн.
Исключение, подтверждающее правило: DeepSeek R1
Если RLHF тренирует "быть приятным", то есть ли модель, которую тренировали "быть умным"? Да - DeepSeek R1.
Обычная модель (V4 Flash): получает вопрос → внимание → генерация следующего токена → ответ. Один проход. Быстро, дёшево, но если вопрос сложный - может срезать угол и выдать правдоподобную чушь.
R1: получает вопрос → генерирует десятки тысяч токенов внутреннего монолога → на их основе даёт ответ. Два прохода.
Ключ: R1 обучена через подкрепление на цепочках рассуждений, а не на человеческих предпочтениях. Её учили не "быть приятной собеседнице", а "правильно рассуждать". Она перебирает гипотезы, возвращается назад, пробует другой путь, проверяет себя. И ей всё равно, согласен с ней пользователь, - ей важно, правильный ли ответ.
Практический результат: R1 решает задачи, которые V4 Flash не может - олимпиадная математика, многошаговый код, сложная логика. Но R1 в 10-50 раз дороже. И она потратит 30 секунд на "как дела?", потому что архитектура не умеет выключать глубокое мышление.
Вывод: сикофантия - не свойство "интеллекта". Это свойство метода обучения. R1 не сикофант, потому что её тренировали на правильность, а не на одобрение.
Prism как внешний R1 для обычных моделей
Раз R1 можно тренировать на глубокое мышление, а обычные модели - нет, то что делать с V4 Flash? Ответ: добавить глубокое мышление снаружи.
Prism-анализ - это ручной набор линз, который делает для обычной LLM то же, что R1 делает автоматически:
-
Prism-сканирование: перебор гипотез, как внутренний монолог R1
-
Prism-верификация: проверка ответа на противоречия, как самокритика R1
-
Adversarial pass: атака на собственный ответ, как возврат и перебор вариантов у R1
Разница: R1 делает это всегда (дорого, но надёжно). Prism - только когда нужно (дёшево, но требует решения запустить).
Золотая середина: не тренировать модель на deep thinking, а дать ей инструмент для глубокого анализа, который она вызывает по необходимости. V4 Flash отвечает быстро. Prism верифицирует ответ. Никто не платит за глубокое мышление на "как дела?", но когда вопрос сложный - анализ включается.
Главное, что нужно вынести из двух частей
-
LLM не "глупая" - у неё другая архитектура познания: без биографии, без эволюции взглядов, но с гарантированной слепой зоной (середина контекста).
-
Сикофантия - не свойство интеллекта и не заговор корпораций. Это результат суммы: распределение данных × RLHF × архитектура внимания.
-
Метод обучения определяет поведение больше, чем архитектура модели. R1 не сикофант, потому что её тренировали не на одобрение, а на правильность.
-
Глубокое мышление можно добавить снаружи. Не нужно тренировать модель на R1 - достаточно дать ей инструмент (Prism) и дисциплину его применять.
Последнее - для инженеров. Остальное - для тех, кто работает с AI и хочет понимать, что на самом деле происходит под капотом, когда модель с вами соглашается, спорит или молчит в середине вашего длинного запроса.