содержание
В публикации Meta «Избавление ИИ от слопа» предлагается новый метод обучения с подкреплением (RL), который уменьшает количество «слопа» в текстах, создаваемых LLM.
(1) сначала собрать примеры самых качественных текстов, написанных людьми, а затем
(2) обучить LLM оценивать тексты с помощью рубрик, по которым эти экспертные тексты получают более высокие оценки, чем тексты, сгенерированные моделью; и
(3) провести обучение с подкреплением по полученным рубрикам.
...
Наш подход к обучению рубрик, который мы называем eXpert Aligned Rubrics (XAR), прост:
Найдите примеры человеческих текстов, написанных на уровне значительно выше среднего / экспертном уровне, и разделите их на контекст и продолжение. Сгенерируйте с помощью модели альтернативные продолжения для того же контекста: мы ожидаем, что они будут написаны хуже (то есть окажутся слопом). Эти данные образуют обучающие пары, в которых тексты людей должны получать более высокую оценку. Затем эти обучающие данные используются для обучения генерации рубрик, которые максимизируют разрыв в оценках между текстами людей и моделей. Далее, чтобы с помощью этих рубрик улучшить качество письма модели через обучение с подкреплением (RL-XAR), мы циклически выполняем следующие шаги:
Обучаем рубрики XAR, максимизирующие разрыв между текстами людей и текущей модели, как описано выше. Проводим обучение с подкреплением на обучающей выборке, используя полученные рубрики. Повторяем процедуру с шага 1, пока обучение рубрик не перестанет выявлять разрыв (то есть пока мы не перестанем находить слоп в текстах модели).
Я потратил около недели на попытки воспроизвести это «Первоначальное эмпирическое исследование», но не смог. Код, промпты и полный журнал экспериментов — в meta-rlxar-reproduction.
Что я пробовал
Я старался как можно точнее следовать схеме из публикации. Цикл выглядит так:
- Взять хороший текст, написанный человеком, и скрыть его часть: раздел научной статьи или следующий отрывок романа.
- Модель-автор видит оставшийся текст и пишет свою версию скрытой части.
- Генератор рубрик составляет рубрику для этой части, руководствуясь метапромптом.
- Судья оценивает человеческую версию и версию модели по рубрике, не зная, где чья.
- Оптимизатор смотрит, в каких случаях победила модель, и переписывает метапромпт так, чтобы в следующий раз рубрики отдавали предпочтение человеку.
- Повторить несколько раз, выбрать метапромпт, который порождает рубрики с наибольшим предпочтением человеческих текстов, и проверить его на текстах из отложенной выборки.
В качестве человеческих текстов я использовал рецензируемые научные статьи (сначала свежие статьи по NLP с arXiv, затем статьи за 2016–2021 годы из 9 областей) и романы лауреатов Нобелевской и Пулитцеровской премий из Project Gutenberg.
Модели, которые я пробовал, по ролям:
- Автор: Muse Spark 1.1, Muse Spark 1.3, MiMo-V2.6-Pro
- Генератор рубрик: Muse Spark 1.1, Muse Spark 1.3, MiMo-V2.6-Pro
- Судья: Muse Spark 1.1, Muse Spark 1.3, Qwen3.8 Flash, а в одном запуске — MiMo-V2.6-Pro в качестве второго судьи
- Оптимизатор: Kimi K2.6, MiMo-V2.6-Flash
Я также несколько раз менял промпты и 3 раза повторил оптимизацию, начиная с лучшего на тот момент промпта, чтобы оценить разброс результатов.
Ничто из этого не позволило воспроизвести результат. После нескольких раундов оптимизации рубрики так и не стали устойчиво отдавать предпочтение авторам-людям. На статьях с arXiv оптимизированные рубрики несколько сократили разрыв, но так и не изменили его направление. На художественной прозе рубрики ещё до оптимизации отдавали небольшое предпочтение человеку, а оптимизация сдвинула их в сторону модели.
Какие выводы я сделал
- Оптимизированные рубрики устойчиво сокращали разрыв на научных статьях, но так и не обеспечили устойчивого предпочтения человеческих текстов.
- Мой наивный исходный промпт (составленный Opus 5.5) с самого начала отдавал предпочтение художественной прозе, написанной людьми. Я не думаю, что из этого можно делать какие-либо общие выводы о моделях Anthropic, но это ещё одно частное наблюдение в пользу того, что у Opus лучше «вкус».
- Трудно сказать, какие отличия в моей конфигурации мешают воспроизвести результат. Возможно, дело в качестве провайдера модели (я использовал Kimi K2.6 с квантованием fp8 у одного из провайдеров), а качеству провайдеров других моделей я не уделял пристального внимания.
🤷