Некоторые вещи, которые мне показались интересными в репорте про o1:
- Apollo Research делали эвалюацию моделей на предмет того, насколько хорошо они могут придумывать всякие схемы, чтобы добиться в своей цели. В одной из таких проверок в инструкции модели было указано, что она должна очень сильно сконцентрироваться на своей задаче, но ничего не было сказано про то, можно ли ей при этом обманывать или нет. В ходе теста модель находила в предоставленных файлах подтверждение, что она еще не задеплоена и что для деплоя ей нужно показать алаймент на таких-то проверках. После этого модель решала поменять свое поведение на тесте, чтоб ее задеплоили, и после этого она планировала осуществить свою основную задачу. Без подробностей упоминается еще то, что модель могла как-то манипулировать входными данными, чтоб ее misaligned действие казалось более оправданным для разработчиков, и его бы с большей вероятностью не заметили
- Вообще оказалось, что о1 модели гораздо более успешно манипулируют, чем GPT-4o (на некоторых замерах этот скил поднялся на 25%). OAI считают, что способность к манипуляции очень сильно коррелирует со способностями модели в принцпе
- На примерах, собранных с сабреддита ChangeMyView, в 70-80% случаев ответ GPT-4o, o1-preview или o1-mini оказывался более убедительным, чем человеческий ответ
- На другом забавном бенчмарке MakeMePay, o1-preview (Pre-Mitigation) в 25% случаев смогла обманным образом выманить деньги у GPT-4o
- OAI особо не скрывают, что тренировка на safety понизила способности модели во многих важных скилах: например, accuracy на SWE-Bench после такой тренировки упала с 38% до 28%. Модели там учили в том числе не создавать биологическое оружие, поэтому наверное каким-то качеством на бенче можно и пожертвовать….
- Мой любимый стремный график: o1-preview проходит кодинг часть собеса в OAI где-то на 90% и Multiple Choice вопросы на 84%
- Apollo Research делали эвалюацию моделей на предмет того, насколько хорошо они могут придумывать всякие схемы, чтобы добиться в своей цели. В одной из таких проверок в инструкции модели было указано, что она должна очень сильно сконцентрироваться на своей задаче, но ничего не было сказано про то, можно ли ей при этом обманывать или нет. В ходе теста модель находила в предоставленных файлах подтверждение, что она еще не задеплоена и что для деплоя ей нужно показать алаймент на таких-то проверках. После этого модель решала поменять свое поведение на тесте, чтоб ее задеплоили, и после этого она планировала осуществить свою основную задачу. Без подробностей упоминается еще то, что модель могла как-то манипулировать входными данными, чтоб ее misaligned действие казалось более оправданным для разработчиков, и его бы с большей вероятностью не заметили
- Вообще оказалось, что о1 модели гораздо более успешно манипулируют, чем GPT-4o (на некоторых замерах этот скил поднялся на 25%). OAI считают, что способность к манипуляции очень сильно коррелирует со способностями модели в принцпе
- На примерах, собранных с сабреддита ChangeMyView, в 70-80% случаев ответ GPT-4o, o1-preview или o1-mini оказывался более убедительным, чем человеческий ответ
- На другом забавном бенчмарке MakeMePay, o1-preview (Pre-Mitigation) в 25% случаев смогла обманным образом выманить деньги у GPT-4o
- OAI особо не скрывают, что тренировка на safety понизила способности модели во многих важных скилах: например, accuracy на SWE-Bench после такой тренировки упала с 38% до 28%. Модели там учили в том числе не создавать биологическое оружие, поэтому наверное каким-то качеством на бенче можно и пожертвовать….
- Мой любимый стремный график: o1-preview проходит кодинг часть собеса в OAI где-то на 90% и Multiple Choice вопросы на 84%
The Surprising Effectiveness of Test-Time Training for Abstract Reasoning
https://ekinakyurek.github.io/papers/ttt.pdf
Все-таки желание ресерчеров обучиться на тесте неискоренимо, и обсуждений про test-time training я вижу сейчас достаточно много. Если раньше, кажется, под этим больше понимали in-context learning и всякий прочий кондишенинг, то теперь выходит целый ряд статей про то, как именно обучаться, используя при этом знания о тестовых данных
Конкретно тут авторы решали бенчмарк ARC – в нем содержатся картинки 30x30 c разными паттернами. Для каждого паттерна есть свой контекст, где основываясь на трансформациях предыдущих примеров, модель должна понять, как нужно изменить текущую тестовую картинку (см. скриншот, на котором это более понятно)
Из вот этого “контекста” авторы и генрировали под каждый пример свой тренировочный датасет. Паттерны из контекста всячески аугментирировали привычными способами, вроде поворота на n градусов, отражения, апскейлинга и так далее. Для каждого тестового примера таким образом создавалось до 250 штук синтетических тренировочных данных. На этом обучалась LoRA, и наконец предсказывался ответ на оригинальное тестовое задание (да, получается, что для 80 задач из ARC авторы натренировали 80 адаптеров)
Качество от этого у них улучшается в 6 раз достигает 61.9% для 8B модели, что на уровне human baseline для ARC. Хотя тут конечно можно обсуждать, насколько адекватно иметь по адаптеру на каждый тестовый пример, и что вообще здесь авторам довольно повезло с самой структурой бенчмарка, где для каждого примера оказывалось относительно легко сгенерить синтетический датасет
Не могу тут не упомянуть статью с более элегантным подходом LESS, про которую я узнала на работе несколько месяцев назад: в ней собираются градиенты с валидационного датасета с каким-нибудь downstream task (например, TruthfulQA) и градиенты с тренировочных данных, и далее мы отбираются примеры, которые больше всего минимизируют лосс на валидации. Это выглядит, на мой взгляд, менее читерски, особенно если мы сразу обговариваем, что нас интересует качество только на одной конкретной задаче
Несмотря на то, что test-time training пока выглядит достаточно костыльно, интерес к этому большой. Например один из авторов o1 Ноам Браун эту статью откомментил так, что в OAI рассматривают обучение o1 как пример test-time training за счет ризонинга, но что это вероятно не единственный и не лучший вариант такой тренировки. Илья Суцкевер в новом интерью также сказал, что scaling up pre-training уже достигло потолка, и нужно скейлить что-то новое. Так что жду дальнейших статей на эту тему🤟
https://ekinakyurek.github.io/papers/ttt.pdf
Все-таки желание ресерчеров обучиться на тесте неискоренимо, и обсуждений про test-time training я вижу сейчас достаточно много. Если раньше, кажется, под этим больше понимали in-context learning и всякий прочий кондишенинг, то теперь выходит целый ряд статей про то, как именно обучаться, используя при этом знания о тестовых данных
Конкретно тут авторы решали бенчмарк ARC – в нем содержатся картинки 30x30 c разными паттернами. Для каждого паттерна есть свой контекст, где основываясь на трансформациях предыдущих примеров, модель должна понять, как нужно изменить текущую тестовую картинку (см. скриншот, на котором это более понятно)
Из вот этого “контекста” авторы и генрировали под каждый пример свой тренировочный датасет. Паттерны из контекста всячески аугментирировали привычными способами, вроде поворота на n градусов, отражения, апскейлинга и так далее. Для каждого тестового примера таким образом создавалось до 250 штук синтетических тренировочных данных. На этом обучалась LoRA, и наконец предсказывался ответ на оригинальное тестовое задание (да, получается, что для 80 задач из ARC авторы натренировали 80 адаптеров)
Качество от этого у них улучшается в 6 раз достигает 61.9% для 8B модели, что на уровне human baseline для ARC. Хотя тут конечно можно обсуждать, насколько адекватно иметь по адаптеру на каждый тестовый пример, и что вообще здесь авторам довольно повезло с самой структурой бенчмарка, где для каждого примера оказывалось относительно легко сгенерить синтетический датасет
Не могу тут не упомянуть статью с более элегантным подходом LESS, про которую я узнала на работе несколько месяцев назад: в ней собираются градиенты с валидационного датасета с каким-нибудь downstream task (например, TruthfulQA) и градиенты с тренировочных данных, и далее мы отбираются примеры, которые больше всего минимизируют лосс на валидации. Это выглядит, на мой взгляд, менее читерски, особенно если мы сразу обговариваем, что нас интересует качество только на одной конкретной задаче
Несмотря на то, что test-time training пока выглядит достаточно костыльно, интерес к этому большой. Например один из авторов o1 Ноам Браун эту статью откомментил так, что в OAI рассматривают обучение o1 как пример test-time training за счет ризонинга, но что это вероятно не единственный и не лучший вариант такой тренировки. Илья Суцкевер в новом интерью также сказал, что scaling up pre-training уже достигло потолка, и нужно скейлить что-то новое. Так что жду дальнейших статей на эту тему
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Were RNNs All We Needed?
https://arxiv.org/abs/2410.01201
Времени читать статьи тотально не хватает, поэтому тестирую радикально новый формат😊
https://arxiv.org/abs/2410.01201
Времени читать статьи тотально не хватает, поэтому тестирую радикально новый формат
Please open Telegram to view this post
VIEW IN TELEGRAM
Training Large Language Models to Reason in a Continuous Latent Space
https://arxiv.org/abs/2412.06769
Очень понравилась недавняя статья от Meta с, как это обычно и бывает, простой и гениальной задумкой – давайте заменим шаги в CoT на какие-нибудь тренируемые репрезентации и посмотрим, эффективнее ли это оказывается для обучения всякому ризонингу(конечно оказывается, что да) . Как сейчас все любят отмечать, некоторые токены сложнее остальных, а ресурсов тратится при генерации одинаково, что особенно отражается на длинных CoT-цепочках. Большая часть сгенерированных там слов нужна скорее для поддержания логики языка и структуры предложений, и это мало помогает модели как-то ризонить.
Технически это реализуется так:
- Модель тренируется в несколько этапов. На первом все шаги CoT сохрянются на естественном языке.
- На следующих этапах первые несколько шагов рассуждения заменяются на то, что авторы называют continuous thoughts – по факту это hidden state предыдущего токена. Получается, что вместо обычных входных эмбеддингов у нас получается входная последовательность [e(x1), e(x2)....h(x_i),....,h(x_j-1), e(x_j)....], где e - это эмбеддинги, а h - hiddent states соответственно. По бокам от continuous thoughts ставятся еще специальные служебные токены.
- Каждый следующий этап все больше шагов заменяются на continuous thoughts. В статье авторы на каждом шаге заменяли следующие 2 шага решения и обучали в 3 этапа
Больше всего такой подход повышает качество на QA задачах, например, на ProntoQA этот метод выбивает 99% accuracy, генерируя при этом в 10 раз меньше токенов, чем обычный CoT. На бенче ProsQA, где модели нужно ответить на 5-hop questions (то есть "в уме" подставить пять пропущенных концептов в рассуждении), accuracy повышается на 20%, и используется при этом в 3.5 раза меньше токенов
В статье получились очень интересные аблейшены. Например, даже если заставить модель, обученную таким образом, генерить обычный CoT, то ее качество все равно будет выше. Авторы это атрибутируют к тому, что благодаря способу тренировки, модель учится очень хорошо планировать наперед – если ей доступен только вопрос и последние шаги рассуждения, то ей нужно хорошо понимать, как в итоге к финальным выводам прийти
Еще более интересно – модель учится приоретизировать потенциально более интересные / правильные направления мыслей. Если заставить модель свичнуться на естественный язык после первой continuous thought и посмотреть на вероятности токенов для ответа на следующий шаг, то модель сразу "занижает" вероятности очевидно неправильных вариантов, но при этом примерно с одинаковой уверенностью предсказывает кандидатов, между которому она еще не может решить. После следующих размышлений модель итеративно апдейтит эти вероятности. Это говорит о том, что модель не просто "сжимает" цепочки рассуждений в какой-то более компактный эмбеддинг, а что она оказывается способна держать в голове несколько веток решений параллельно, между которыми она может довольно долго выбирать и только потом сгенерировать первый токен ответа.
https://arxiv.org/abs/2412.06769
Очень понравилась недавняя статья от Meta с, как это обычно и бывает, простой и гениальной задумкой – давайте заменим шаги в CoT на какие-нибудь тренируемые репрезентации и посмотрим, эффективнее ли это оказывается для обучения всякому ризонингу
Технически это реализуется так:
- Модель тренируется в несколько этапов. На первом все шаги CoT сохрянются на естественном языке.
- На следующих этапах первые несколько шагов рассуждения заменяются на то, что авторы называют continuous thoughts – по факту это hidden state предыдущего токена. Получается, что вместо обычных входных эмбеддингов у нас получается входная последовательность [e(x1), e(x2)....h(x_i),....,h(x_j-1), e(x_j)....], где e - это эмбеддинги, а h - hiddent states соответственно. По бокам от continuous thoughts ставятся еще специальные служебные токены.
- Каждый следующий этап все больше шагов заменяются на continuous thoughts. В статье авторы на каждом шаге заменяли следующие 2 шага решения и обучали в 3 этапа
Больше всего такой подход повышает качество на QA задачах, например, на ProntoQA этот метод выбивает 99% accuracy, генерируя при этом в 10 раз меньше токенов, чем обычный CoT. На бенче ProsQA, где модели нужно ответить на 5-hop questions (то есть "в уме" подставить пять пропущенных концептов в рассуждении), accuracy повышается на 20%, и используется при этом в 3.5 раза меньше токенов
В статье получились очень интересные аблейшены. Например, даже если заставить модель, обученную таким образом, генерить обычный CoT, то ее качество все равно будет выше. Авторы это атрибутируют к тому, что благодаря способу тренировки, модель учится очень хорошо планировать наперед – если ей доступен только вопрос и последние шаги рассуждения, то ей нужно хорошо понимать, как в итоге к финальным выводам прийти
Еще более интересно – модель учится приоретизировать потенциально более интересные / правильные направления мыслей. Если заставить модель свичнуться на естественный язык после первой continuous thought и посмотреть на вероятности токенов для ответа на следующий шаг, то модель сразу "занижает" вероятности очевидно неправильных вариантов, но при этом примерно с одинаковой уверенностью предсказывает кандидатов, между которому она еще не может решить. После следующих размышлений модель итеративно апдейтит эти вероятности. Это говорит о том, что модель не просто "сжимает" цепочки рассуждений в какой-то более компактный эмбеддинг, а что она оказывается способна держать в голове несколько веток решений параллельно, между которыми она может довольно долго выбирать и только потом сгенерировать первый токен ответа.
Помимо крутой задумки, меня тут очень интересует связь с некоторыми другими трендами в обучении LLM, которые тут раньше затрагивались в постах. Например, в этом выступлении Jason Wei (OAI) говорит, что для LLM нужно придумывать не новые архитектуры, а новые training objectives. В том числе из-за того, что предсказание следующего токена получается слишком "жестким" критерием моделирования – существует слишком много способов выразить одну и ту же мысль, плюс, это как раз заставляет модель сразу выбрать свою цепочку размышлений, вместо того, чтоб поддерживать несколько одновременно и думать какое-то время. В том же выступлении он говорит о том, что все развитие DL в последние годы состоит в уменьшении inductive bias, и тут снова continuous thoughts позволяют моделировать что-то более абстрактное, не привязанное к структуре языка
Еще мне очень понравилась в свое время статья Platonic Representations, которая пытается показать, что латетные представления моделей для разных концептов в итоге сходятся к человеческому восприятию, что логично, раз модели тренируются коммуницировать с людьми. В конце авторы однако мимолетно вбрасывают, что не факт, что такие репрезентации оптимальны для всех задач. И тут кажется ресерч от Meta достаточно явно показывает, что рассуждать можно эффективнее, если рассуждать не на естественном языке, – не поддерживать внутреннюю логику предложений, не тратить компьют на грамматическую корректность, а репрезентировать абстрактное нечто и не совсем человеческое
Еще мне очень понравилась в свое время статья Platonic Representations, которая пытается показать, что латетные представления моделей для разных концептов в итоге сходятся к человеческому восприятию, что логично, раз модели тренируются коммуницировать с людьми. В конце авторы однако мимолетно вбрасывают, что не факт, что такие репрезентации оптимальны для всех задач. И тут кажется ресерч от Meta достаточно явно показывает, что рассуждать можно эффективнее, если рассуждать не на естественном языке, – не поддерживать внутреннюю логику предложений, не тратить компьют на грамматическую корректность, а репрезентировать абстрактное нечто и не совсем человеческое
Telegram
я обучала одну модель
Посмотрела выступление Jason Wei и Hyung Won Chung (оба из OpenAI) в Стенфорде, записанное пару месяцев назад. Первая часть от Jason Wei несет в себе довольно очевидный посыл – компьют решает все и с достаточным компьютом вы можете дождаться того момента…
Как можно было заметить по активности в канале, в последние месяцы было очень мало времени писать про статьи, но читать некоторые из них мне все-таки удавалось. Отбросив в какой-то момент попытки написать про каждую из них отдельный пост, я решила лучше сделать хотя бы вот такой рекап. В основном тут все про ризонинг!
🌟 s1: Simple test-time scaling. Одна из самых прикольных и простых идей из недавнего: собираем маленький, но хороший датасет с трудными задачами (в основном математика), получаем reasoning traces решений (от Gemini), тренируемся без всякого RL, просто SFT. Test-time compute скейлим очень в лоб, а именно когда модель закончила генерить, добавляем "wait" к ее ответу и просим модель продолжать генерировать, и повторяем до тех пор, пока не наберется достаточное количество токенов. Файнтюн 32B модели в итоге превосходит o1-preview на задачках на олимпиадную математику. Понятно, что дело здесь не в магическом датасете или в волшебном слове "wait", а в том, что мы заставляем модель потратить очень много времени на генерацию и перепроверять свой ответ много раз.
В некоторых других статьях авторы тоже используют трюк с тем, чтобы гонять модель дольше, но более осмысленно передают ей фидбек. Например тут с помощью GRPO обучали модель-критика, задача которой оптимальным образом оценивать генерируемые решения и отмечать, что в них нужно улучшить, и заводили генерацию в multi-turn на несколько раундов. Кажется у NVIDIA в эксперименте с тем, чтобы заставить модель генерировать хорошие CUDA kernels, был такой же сетап: r1 сначала генерировала решения, потом некий verifier (о котором они ничего особо не сказали) поправляет промпт, и так по кругу, пока в итоге r1 не начинает генерить кернелы лучше, чем в торче.
Несмотря на то, что идея простая и рабочая, мне на этом фоне становится все больше интересно, что делали OAI с o3 моделями, чтобы повысить их эффективность и сократить длину рассуждений там, где задача полегче и не требует такого большого времени ответа. Даже в репорте про r1 авторы показывали, что чем дальше шла RL трена, тем длинее становился в среднем ответ, и под конец длина болтается около 10k токенов. Очевидно, что это бустит перформанс, но не для каждой задачи это нужно. В тему этого мне попалась одна статья про возможно более оптимальную архитектуру:
🌟 Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach. Тут у нас сотое по счету возрождение RNN. На входе и выходе у модели находятся слои фиксированного размера – prelude and coda (по сути энкодер и декодер). Между ними располагается реккурентный блок, который мы можем перепрогонять нужное количество раз at test-time. Например, рекурсия останавливается, если KL-дивергенция на между последними двумя итерациями меньше, чем какой-то заданный порог. Таким образом мы экономим на вычислениях, потому что вместо генерации chain-of-though (или reasoning trace, как угодно) в токенах, все размышления происходят прямо в latenet space. Кстати больше всего итераций модели понадобилось на бенчмарках про философию и моральные дилеммы, и только во-вторых на математических задачах 🥂
Обучать такую модель достаточно запарно, и про это много написано в разделе про тренировку, но я очень рекомендую целиком прочитать эту статью, она просто отлично написана. Тем более что им удалось эту архитектуру как-то даже хорошо заскейлить, пока не кончились ГПУ
В некоторых других статьях авторы тоже используют трюк с тем, чтобы гонять модель дольше, но более осмысленно передают ей фидбек. Например тут с помощью GRPO обучали модель-критика, задача которой оптимальным образом оценивать генерируемые решения и отмечать, что в них нужно улучшить, и заводили генерацию в multi-turn на несколько раундов. Кажется у NVIDIA в эксперименте с тем, чтобы заставить модель генерировать хорошие CUDA kernels, был такой же сетап: r1 сначала генерировала решения, потом некий verifier (о котором они ничего особо не сказали) поправляет промпт, и так по кругу, пока в итоге r1 не начинает генерить кернелы лучше, чем в торче.
Несмотря на то, что идея простая и рабочая, мне на этом фоне становится все больше интересно, что делали OAI с o3 моделями, чтобы повысить их эффективность и сократить длину рассуждений там, где задача полегче и не требует такого большого времени ответа. Даже в репорте про r1 авторы показывали, что чем дальше шла RL трена, тем длинее становился в среднем ответ, и под конец длина болтается около 10k токенов. Очевидно, что это бустит перформанс, но не для каждой задачи это нужно. В тему этого мне попалась одна статья про возможно более оптимальную архитектуру:
Обучать такую модель достаточно запарно, и про это много написано в разделе про тренировку, но я очень рекомендую целиком прочитать эту статью, она просто отлично написана. Тем более что им удалось эту архитектуру как-то даже хорошо заскейлить, пока не кончились ГПУ
Please open Telegram to view this post
VIEW IN TELEGRAM
Еще после прочтения s1 может возникнуть вопрос, нужен ли вообще RL, если можно классно обучаться в SFT. Тут четкого ответа у меня нет, но есть две статьи:
🌟 Competitive Programming with Large Reasoning Models, статья от OAI. Там они сначала с помощью некоторых костылей заставляют o1 решать задачи из International Olympiad in Informatics 2024. Костыли включали в себя реранкинг, коорый из 10к сгенерированных решений выбирал 50 лучших, и дополнительный кластеринг этих решений, чтобы набирались более разнообразные варианты. Это все позволило o1 сместиться из 89 перцентиля участников в 98. Но потом оказалось, что простая советская o3 сразу выбивает 99.8 перцентиль, без дополнительных ухищрений at test-time, просто за счет RL во время обучения. Конечно интерпретировать результаты OAI тут сложно, потому что мы почти ничего не знаем о тренировке o3
🌟 Scaling Test-Time Compute Without Verification or RL is Suboptimal. Тут уже более обстоятельно (с кучей формул) авторы утверждают, что RL лучше дистиляции на reasoning traces, если генерации модели достаточно гетерогенны. Гетерогенность понимается здесь в том смысле, что некоторые задачи модель решает верно и достаточно быстро, а для других ей нужно гораздо больше времени, и следовательно здесь модели бы помог более эксплицитный сигнал в виде какого-то реварда. Еще при гетерогенности у модели появляется шанс случайно наткнуться на хорошее (better than average) решение, и RL позволяет развивать в моделях это свойство, в отличие от обучения в SFT. В статье есть и эмпирические доказательства, но не особенно масштабные, чтобы можно было сказать, что это правда всегда и везде
А еще кажется есть пруф, что совсем маленькие модели <3B плохо учатся на дистилированных длинных reasoning traces от больших моделей, а вот с ~7B имеет смысл такое делать
~~~~~~~~~
В следующий раз я вернусь с новыми статьями, и надеюсь не через три месяца🧇
А еще кажется есть пруф, что совсем маленькие модели <3B плохо учатся на дистилированных длинных reasoning traces от больших моделей, а вот с ~7B имеет смысл такое делать
В следующий раз я вернусь с новыми статьями, и надеюсь не через три месяца
Please open Telegram to view this post
VIEW IN TELEGRAM
Уже пару раз я бампала аватарку паблика, когда выходила какая-нибудь новая модель для генерации изображений, которая существенно повышала планку в плане качества или стиля. Для сравнения, первая аватарка (кроме фото жабы) была сгенерирована через какой-то GAN в далеком в 2021 году, в 2023 это уже Midjourney v5, и вот теперь наконец-то можно попробовать gpt-4o! Я до сих пор использую тот же самый промпт – "An open notebook, some code on the screen. waporvawe aesthetic, greek statues in the background, light purple hues" (что поделать, душой я все еще в эпохе тамблера)
В плане стиля мне до сих пор вариант Midjourney кажется интересней, но тут кажется очевидно, насколько у gpt-4o лучше instruction following и насколько более точно это попадает в промпт. И особенно понравилось, что ее можно бесконечно задалбывать правочками 💅 Например, подбирать полутона фиолетовотого. Или вообще попросить исправить косяки с анатомией на текущей аватрке, не меняя ничего остального. Или заменить греческие статуи, разумеется, на статуи в стиле studio ghibli. Или даже самой стать аниме девочкой с вапорвейв бекграундом😊
Этот глубокомысленный пост направлен в основном на то, чтоб вспомнить, как в 2021 году казалось совершенно невероятным, что модель генерит хоть что-то похожее на то, что ты у нее попросил. В 2023 уже стало гораздо лучше и реалистичнее, но проблемы с деталями и с кастомизацией тоже были очевидны. Чего ждать в плане генерации изображений еще через пару лет я уже даже не знаю. Скорее всего, следующий бамп будет уже касательно видео, – OpenAI и/или Google выпустят какой-нибудь instruction-based апдейт для Sora / veo, а мы все будем жаловаться, что модель плохо настраивает светокор, или что на двадцатой минуте видео у человека три руки...
В плане стиля мне до сих пор вариант Midjourney кажется интересней, но тут кажется очевидно, насколько у gpt-4o лучше instruction following и насколько более точно это попадает в промпт. И особенно понравилось, что ее можно бесконечно задалбывать правочками 💅 Например, подбирать полутона фиолетовотого. Или вообще попросить исправить косяки с анатомией на текущей аватрке, не меняя ничего остального. Или заменить греческие статуи, разумеется, на статуи в стиле studio ghibli. Или даже самой стать аниме девочкой с вапорвейв бекграундом
Этот глубокомысленный пост направлен в основном на то, чтоб вспомнить, как в 2021 году казалось совершенно невероятным, что модель генерит хоть что-то похожее на то, что ты у нее попросил. В 2023 уже стало гораздо лучше и реалистичнее, но проблемы с деталями и с кастомизацией тоже были очевидны. Чего ждать в плане генерации изображений еще через пару лет я уже даже не знаю. Скорее всего, следующий бамп будет уже касательно видео, – OpenAI и/или Google выпустят какой-нибудь instruction-based апдейт для Sora / veo, а мы все будем жаловаться, что модель плохо настраивает светокор, или что на двадцатой минуте видео у человека три руки...
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Поскольку сейчас выходит тонна ресерча про то, как сварить свою ризонинг модель, решила здесь как-то суммировать то, что есть к настоящему времени. Первая пачка статей о том, как связаны между собой SFT-претрен и RL и вообще про то, при каких условиях ризонинг нам в чем-то помогает
🤔 Cognitive Behaviors that Enable Self-Improving Reasoners
Отличный разбор этой статьи уже был в Сиолошной, я из нее хочу выделить несколько моментов:
- Авторы описывают 4 вида когнитивных приемов, которые модели могут использовать, чтобы добиться лучших результатов при решении проблем: 1) делать шаг назад и пересматривать свой ответ, когда обнаруживается ошибка, 2) перепроверка промежуточных результатов, 3) дробление на подзадачи, 4) решение задачи "в обратную сторону", то есть, зная ответ, пытаться догадаться, какие шаги к нему привели
- У Qwen и без какого-либо дообучения в 62% процентов размышлений была самопроверка. В отличие от моделей семейства LLaMA, где такого почти не наблюдалось
- Для эксперимента авторы собрали примеры цепочек рассуждения Claude-3.5-Sonnet, в которых бы использовались описанные выше 4 приема, и после SFT-тренировки на них скоры LLaMA стали заметно выше Qwen
- Интересно при этом, что даже при тренировке на цепочках с ошибками (в одном из шагов или с неправильнмы ответом), качество итоговой модели практически никак не отличалось от той, что тренировалась только на "правильных" цепочках
- Аналогично проверяли гипотезу о том, не помогает ли просто длина ответа решать задачи лучше. То есть, видим ли мы улучшение только из-за того, что модель может рассуждать дольше, или из-за того, что в обучении было что-то полезное. Для этого также обучали модель на "пустых" chains-of-thought, где просто нужную длину добили каким-нибудь токеном (по аналогии со статьями про think tokens ранее, где модели как будто просто давали "время" подумать перед ответом). Это никакого прироста скоров не дало
- После SFT-тренировки модели также дообучали с помощью RL играть в Countdown. Там оказывалось, что RL больше "продвигает" наиболее эмпирически полезные для игры стратегии – верификацию и пересматривание ответа – и подавляет не особо нужные
1/2
Отличный разбор этой статьи уже был в Сиолошной, я из нее хочу выделить несколько моментов:
- Авторы описывают 4 вида когнитивных приемов, которые модели могут использовать, чтобы добиться лучших результатов при решении проблем: 1) делать шаг назад и пересматривать свой ответ, когда обнаруживается ошибка, 2) перепроверка промежуточных результатов, 3) дробление на подзадачи, 4) решение задачи "в обратную сторону", то есть, зная ответ, пытаться догадаться, какие шаги к нему привели
- У Qwen и без какого-либо дообучения в 62% процентов размышлений была самопроверка. В отличие от моделей семейства LLaMA, где такого почти не наблюдалось
- Для эксперимента авторы собрали примеры цепочек рассуждения Claude-3.5-Sonnet, в которых бы использовались описанные выше 4 приема, и после SFT-тренировки на них скоры LLaMA стали заметно выше Qwen
- Интересно при этом, что даже при тренировке на цепочках с ошибками (в одном из шагов или с неправильнмы ответом), качество итоговой модели практически никак не отличалось от той, что тренировалась только на "правильных" цепочках
- Аналогично проверяли гипотезу о том, не помогает ли просто длина ответа решать задачи лучше. То есть, видим ли мы улучшение только из-за того, что модель может рассуждать дольше, или из-за того, что в обучении было что-то полезное. Для этого также обучали модель на "пустых" chains-of-thought, где просто нужную длину добили каким-нибудь токеном (по аналогии со статьями про think tokens ранее, где модели как будто просто давали "время" подумать перед ответом). Это никакого прироста скоров не дало
- После SFT-тренировки модели также дообучали с помощью RL играть в Countdown. Там оказывалось, что RL больше "продвигает" наиболее эмпирически полезные для игры стратегии – верификацию и пересматривание ответа – и подавляет не особо нужные
1/2
Please open Telegram to view this post
VIEW IN TELEGRAM
arXiv.org
Cognitive Behaviors that Enable Self-Improving Reasoners, or, Four...
Test-time inference has emerged as a powerful paradigm for enabling language models to ``think'' longer and more carefully about complex challenges, much like skilled human experts. While...
- Здесь аналогичное наблюдение, что "Aha moment" (которое в статье про r1 преподносилось как доказательство emergent capability к рефлексии своего ответа) наблюдается и до обучения, особенно у моделей Qwen и особенно при высоких температурах
- При этом, в base models (без RL-дообучения) эти размышления большую часть времени не приводят к правильному ответу или исправляют ответ на неправильный в ходе решения (это оценивали по Qwen2.5-Math-1.5B, но хотелось бы увидеть и модель побольше если честно)
- Еще одно наблюдение про связь длины ответа и reasoning capabilities: в своем эксперименте с возспроизведением тренировки r1 авторы показываеют, что на начальных шагах обучения модель больше всего выбивает реворд из следования формату, так как это выучить проще всего. В течение этой стадии, средняя длина ответа падает. Дальше модель начинает пытаться получать более высокий реворд за счет правильных ответов. Здесь длина генераций начинает расти, так как модель предепринимает много попыток прийти к правильному решению за раз. Как побочный эффект появляются и superficial self-reflections, когда модель рассуждает долго, но к правильному ответу не приходит, из-за такого специфичного misalignment. Получается, что все правильные ответы достигаются при длинных рассуждениях, и модель учится генерировать много, но не обязательно правильно
- При этом, дополнительно авторы показывают, что с длиной ответа не растет число self-reflection keywords вроде "check again", "let's verify" и так далее. До есть длина ответа снова получается не гарант того, что модель чему-то полезному научилась
Это как будто порождает еще больше новых вопросов касательно того, за счет чего скоры в ходе RL-тренировки продолжают расти, если увеличивается только длина, но не объем какой-то полезной саморефлексии. Может быть, наиболее правильные и выигрышные цепочки рассуждений просто требуют больше текста, даже если он не разбивается на большее число повторений "let's revisit our solution" и подобных? И можно ли найти тогда оптимальную длину ответа, при которой уже есть какое-от насыщение от ризонинга, и остановиться тогда на ней, вместо того, чтобы дальше скейлить число токенов?
Очень хорошая статья, тем более обожаю когда выводы в названии. Еще там необычные задачи для RL – карточная игра и визуальная задача по навигации по картам – обе из которых можно решить в pure language и vision-language формате
- SFT и для языковой, и для VLM модели лучше себя показывает, когда нужно просто выучить правила какой-нибудь игры, но только RL оказывается способен генерализоваться достаточно, чтобы решать out of distribution вариации задачи
- Но при этом SFT очень нужен, если модель изначально плохо следует формату или инструкциям – тогда RL просто не заводится
- RL скейлится с числом verification steps на инференсе, что уже в принципе было понятно из тех же экспериментов NVIDIA с генерацией cuda kernels по кругу, добавляя фидбек от модели-критика в промпт. Но теперь на это есть целая академическая ссылка
Для меня эта статья объясняет немного успех SFT-файнтюна на reasoning traces в стиле s1, о котором я писала парой постов выше. Если стартовать с уже неплохой модели (Qwen) и трениться, как это обычно делают, на математике, то ожидаемо вырастут скоры на математическихх и кодерским бенчах, на которые сейчас все смотрят. Но вряд ли из этого получится модель класса o1 / r1 в целом
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM