Гречневые мысли
1.4K subscribers
183 photos
3 videos
134 links
Хочу гречку с молоком и сахаром...

Автор: @chameleon_lizard
Download Telegram
Дальше авторы начали делать разные эксперименты над Qwen-2.5-Math-7B, OLMo-2 и Llama-3.1-8B. Чтобы выделить бенчмарки, на которых проверять результаты, они стали смотреть на PPE на разных бенчах и выделили три штуки: MATH-500 и MinervaMath как контаминированные (+23-25% после Spurious RL), LiveMathBench как неконтаминированные (улучшения нет).

Первым делом, авторы посмотрели на перплексию ответов и промпта с ответом на четырёх чекпах во время Spurious RL. Выяснился интересный факт — по мере обучения, у Qwen-2.5-Math-7B перплексия ответов падает (модель считает их более вероятными), но перплексия промптов растёт (модель считает промпты менее вероятными). У Llama и OLMo — перплексия везде растёт. Вывод: во время spurious RL с рандомными ревардами модель разучается генерить текст, но если модель уже видела ответы, то хоть модель и разучается генерить, метрики всё равно растут. Получается, что Spurious RL обучает не генерализации, а меморизации, вспоминая полузабытые факты из сфт/претрейна. В статье они это называют memorization shortcut.

Затем берут две модели — до и после spurious RL — и, используя path patching, заменяют активации базовой модели активации модели после RLVR. Там два интересных файндинга — во первых, замена активаций из аттеншна вытягивает меньше скора, чем замена активаций MLP (то есть, MLP действительно хранит в себе знания), а во-вторых, на 18-20 слоях есть пик по восстановлению качества. Эти слои авторами назвали Functional Anchor — почему так, скажу позднее.

Дальше на модели после RLVR накладывают Logit Lens и смотрят на Jensen-Shannon Divergence (как KLD, но симметричная — в математику не вникал :)) между финальными логитами после полного форварда и промежуточными логитами из Logit Lens. Это позволяет нам посмотреть, насколько модель определилась в генерации конкретного токена и как много конкретный блок докидывает в резидуал стрим трансформера, чтобы сгенерировать финальный токен*. Здесь появляется ещё одно различие между Llama и Qwen — у лламы увеличение JSD монотонное, а у квена есть конкретные слои, на которых JSD максимальное (21-22). Эти слои авторы назвали Structural Adapters — они, грубо говоря, поворачивают пространство эмбеддингов в сторону генерации конкретного токена, то есть там хранятся знания модели, необходимые для генерации токена.

Что же такое Functional Anchors и Structural Adapters? Первое — это те слои, в которых модель решает, какую конкретно задачу модель будет делать. Это как Task Vectors, только у них находили слои, где кодировалась математика, перевод и прочие прикладные задачи, а тут FA выбирают между меморизацией и генерацией, которая происходит в слоях Structural Adapter. То есть, если простыми словами — FA нужны для решения, вспоминать или генерить, А SA нужны, чтобы вспоминать, что генерить.

*Примерно как в Do Llamas Work in English. Вторая статья, которую я разобрал у себя в канале, между прочим.
🦄7👍61
Дальше авторы взяли заликанный вопрос из MATH-500 и собрали Logit Lens с двух траекторий с температурой 0.7 — траекторией с корректным ответом и с некорректным ответом. Выводы как в прошлых экспериментах — на 21-22 слоях (SA-слои) есть яркий пик верного ответа. В неверной траектории верный ответ тоже есть в top-k (в разных видах — ответ "4" может быть, например, записан как "four"), но последние слои (не SA) не могут вытянуть корректный ответ из некорректного, потому что не хватает силы поворота пространства. Это ещё раз валидирует, что в SA слоях находятся знания о верных ответах, вытащенные через RLVR.

Потом авторы смотрят на PCA-проекцию траекторию хидденов с заликанных и незаликанных примеров из Neural ODE-версии модели и видно, что на 18-20 слоях сила сепарации самая высокая. То есть, траектории заликанных и незаликанных примеров отличаются в Functional Anchor слоях — модель понимает, что она не знает ответа и начинает ризонить, а не отвечать.

Два самых интересных эксперимента находятся в конце статьи. Первый эксперимент — в Spuriously Trained модель подкладывают слои из базовой модели — и если на пролитых бенчах при замене FA или SA слоёв метрики падают драматически, на непролитых изменений почти нет. Причём очень важно заменять и FA и SA комплектом — если заменить только одно, то метрики будут падать и там и там. Кроме того, авторы попробовали стирить активации нейронов из FA и SA — опять же, на незаликанном сете разницы нет, а на заликанном сете стиринг на FA слоях получается наибольшая чувствительность. Получается, мы можем подавлять меморизацию моделей через уменьшение активаций из FA слоёв — логично, уменьшаем "хотение" модели выбирать меморизацию, модель не вспоминает. Похоже на Abliteration, кстати.

Ну и финалочка — всё воспроизводится на Qwen-3. То есть Spurious RL будет работать и на более новых моделях, с аналогичными выводами: метрики растут, а разговаривать модель разучается. Увы.

Выводы:

- Статья очень плотная, я часть деталей опустил, прочитайте её сами. Это того стоит.
- Perplexity Paradox даёт возможность отслеживать здоровье RL: если перплексия на вопросах растёт, ответах падает, а бенчи растут — модель с пролитыми бенчами. Если перплексия и там и там растёт — мы калечим модель.
- RL экспы на Qwen не гоняем. А на OLMo или лламе гоняем. Знакомый из соседней команды сказал "да блин, на лламе ничего не заводится, а на квене всё легко, за что нам ты это рассказал, теперь придётся работать". Жаль чуваков.
- Не всё то золото, что блестит — делайте нормальные абляции своих методов на разных семействах моделей.
- PPE помогает найти лики данных в модель.
- Если мы можем найти FA слои в RLVR квенах, отвечающие за меморизацию или генерацию, можем ли мы найти FA-слои, отвечающие за галлюцинацию?

Статья
👍6🦄5🔥3
Метрики моделей на бенчах — обратите внимание насколько растут метрики на MinervaMath и MATH-500.
🦄6
Эксперименты с Path Patching и JSD от Logit Lens.
🦄6
Абляция с заменой FA и SA слоёв.
🦄7
Прикольный POC агента на Claude Haiku: ллмку подцепили к управлению отрядами в Arma Reforger, чтобы модель отдавала приказы исходя из ежеминутных отчетов.

Я думаю, что если докрутить, можно получить довольно прикольную штуку. Интересно, победит ли оно обычный алгоритмический ИИ (думаю, что нет), но посравнивать разные нейронки друг против друга было бы прикольно.

https://youtu.be/RAWYplpoVNU?si=NiGlsHcck3HkCC2l
😁72🦄2
Гречневые мысли
All work no play makes Claude a dull boy Сидел недавно вечером, отдыхал после работы, кушал куриную грудку и выбирал себе плавки на яндекс маркете. Зацепился взглядом за мини-игры, которые дают какие-то бонусы, нашёл там 2048 и залип. Играл весь вечер, собрал…
Кто-то заставил ллмки играть в балатро, щас на твиче Opus 4.6 играет. В топе Gemini-3-Pro, GPT-5.2 и Gemini-3-Flash. Opus 4.5 на четвёртом месте — зато стоит больше всего денег. А ещё разрыв между закрытым фронтиром и опенсорсом буквально в два раза.

Очень прикольное.

https://balatrobench.com
👍11🔥3
Когда-то давно, года два или три назад, когда только-только стрельнула GPT-3.5, мы с девушкой сидели в очень вкусной лапшичке рядом с моим домом и обсуждали, что можно сделать с помощью ллмок. Мы оба пришли к тому, что нам оооочень лениво заполнять календарики и TODO, так что задачи держатся в голове. Забыл? Не повезло.

Сейчас везде форсится OpenClaw — и как страшная штука, которая всех поубивает/потратит все деньги (привет, Юдковский, саморепликация и MoltBook), и как ультимативный метод автоматизации, управляемый прямо из телеги.

У меня в последнее время как раз возросло число задач и трекать их в голове/в Apple Reminders стало очень тяжело. А в облаке Cloud.ru как раз появился автоматический способ развёртывания OpenClaw — в изолированной среде (не сопрёт ваши секреты), без головной боли с созданием инфры, и — опять же — оно может жить на бесплатной виртуалке, платите вы только за токены.

Завтра попробую развернуть — как раз будут выходные, надо будет распланировать неделю и привести в порядок TODO-листы. Попробуйте тоже, вдруг и вам будет полезно :)

Запустить OpenClaw
👍11🤡6
Forwarded from Denis Sexy IT 🤖
Кажется в индустрии разработки началась стадия принятия – стадия отвержения закончилась и теперь сеньор-разработчики открыто говорят о том что кодинг инструменты не хуже чем люди даже лучше, вот этот текст понравился – но таких постов с выхода Opus 4.6 / Codex 5.3 xhigh становится только больше:

…нас поставили перед фактом: "я этого не просил", но это уже случилось. Не просил, чтобы "робот" сожрал все наши посты и куски кода, а потом пересказывал это кому-то, кто на этом зарабатывает. Не просил, чтобы роль программиста сдвинулась от создателя к инспектору на досмотре: не писать код самому, а проверить, не пронесли ли в прод что-то опасное

И при этом самая неприятная часть, в том, что эти инструменты реально работают. Настолько, что спор "хуже или лучше" быстро превращается в спор "ты уже попробовал нормально или просто принципиально сопротивляешься"

Дальше начинается прагматика: да, можно отказаться из моральных соображений, особенно если ты уже в конце карьеры. Но если ты сениор и ты принципиально "без АИ", то очень быстро рядом окажутся джуны, которые с АИ начинают выдавать результат с другой скоростью. И рано или поздно менеджмент задаст простой (и довольно мерзкий) вопрос: почему человеку платят больше, если он делает меньше, потому что ездит на старом велосипеде, а другие на реактивных ранцах

… взрослый человек с обязательствами, ипотекой, семьёй, как правило выберет не идеологически красивое решение, а то, которое сохраняет стабильность. Не потому что он вдруг "продался", а потому что ставки другие

…через годы мы будем рассказывать детям и внукам, как руками набирали синтаксис, как будто это что-то смешное и архаичное. Но внутри будем скучать. Скучать по ощущению ремесла – когда ты реально "трогаешь" код, лепишь его, как материал, долго сражаешься с багом до ночи, и в конце есть чувство авторства: "я сделал это", подпись художника под картиной, репозиторий, который не просто набор файлов, а часть твоей идентичности


Короче, автор не празднует новый мир, но и не верит, что его можно остановить как-то, и предлагает честно признать потерю и прожить её как потерю – не делать вид, что "ничего не меняется", а честно назвать происходящее концом привычного кодинг-ремесла и разрешить себе по этому погоревать

Очень трезвый взгляд на вещи 👤
Please open Telegram to view this post
VIEW IN TELEGRAM
8😢5🔥2👎1💩1
Denis Sexy IT 🤖
Кажется в индустрии разработки началась стадия принятия – стадия отвержения закончилась и теперь сеньор-разработчики открыто говорят о том что кодинг инструменты не хуже чем люди даже лучше, вот этот текст понравился – но таких постов с выхода Opus 4.6 / Codex…
Есть кодеры, которые кайфуют от написания кода и продумывания архитектуры, а есть builder’ы, которые кайфуют от решения реальных проблем.

Полгода назад я уже оправдывался перед собой по поводу того, что я занимаюсь вайбкодингом. Сейчас я понимаю, что зря оправдывался — создавать вещи мне всегда нравилось больше, чем реализовывать их в коде. Вы не подумайте, писать код и решать задачи тоже прикольно, но пьянящее чувство власти над машиной, пляшущей под мою дудочку для меня было важнее.

Может быть программисты (code monkeys) и вымрут, но люди, которые могут выделять реальные проблемы и придумывать рабочие решения нужны будут всегда. Так что за свое место под солнцем я спокоен.

Ну а на крайняк, я буду работать поваром, а в свободное время заниматься творчеством и вайбкодить игры. Это прикольно и, кажется, у меня получается. Щас доделаю свой рогалик и такое будет…
👍29😁73🙊2
80/20

Почти два года назад я устроился работать в гигакод, где моей задачей была разработка кодинговых агентов. С точки зрения современных агентов, тогдашние предложения были довольно примитивными — ну, был кодчат, который отвечал на вопросы по репозиторию, был автокомплишн, в особо продвинутых случаях, была возможность попросить ллмку написать функцию в файле — и она её впихивала в заданное место с переменным успехом.

Я же делал эксперименты именно с мультиагентным написанием кода. У меня был агент, пишущий план, агент, пытающийся ваншотить задачу, был агент-критик, был агент-отладчик, который по трейсбеку правил баги. Если мне не изменяет память, мне тогда удалось с помощью Llama-3-8b-Instruct и моей агентной системы получить скоры на HumanEval уровня Deepseek-Coder-34B в зерошоте, что было очень даже неплохо.

Одним из неожиданных результатов экспериментов, который я получил, заключался в том, что если в качестве всех моделей использовать мелкие модели (например, Llama-3-8b-Instruct), а агента, пишущего план оставить большим (например, Llama-3-70b-Instruct), то качество решения задач было сильно выше, чем если план писала такая же маленькая модель. Так можно было не только сэкономить много денег, но и сэкономить много времени. 80% результата делалось 20% компьюта, если можно так выразиться.

К сожалению, проект никуда не пошёл, а я ушёл в AIRI писать статьи. Ризонеров тогда ещё не было, а если и были, то довольно слабые — их надо было очень долго ждать, а качество ответов, хоть и превышало качество ответов не ризонеров, но разрыв всё ещё был не таким колоссальным, как сейчас. Тогда я активно использовал Mistral: хоть модели и были хуже аналогов по качеству ответов, мне высокое качество в 95% запросов было и не нужно. Инференс у Mistral был основан на Cerberas, тпс исчислялся в тысячах токенов в секунду, а ответы на простые вопросы (напиши мне аргпарс/ванлайнер на баше/рецепт ризотто) я получал мгновенно. Speed matters when execution is delegated.

Сейчас парадигма кодинга с ллм "задал вопрос — использовал ответ для решения задачи" отошла на второй план, заменившись "дал задачу — получил решение через 20 минут — проверил ответ", так что напрямую скорость инференса тут не так важна. Ну да, генерация будет не 20 минут, а 10 или 5, но на самом деле нет такой большой разницы, всё равно между запросами можно успеть сходить налить себе кофе и в очередной раз пролистать главную HackerNews. Приятно, но не больше — а с учётом ухудшения качества ответов, вероятность, что спустя пять минут придётся всё переделывать, велика.

К чему я это всё — вчера вышла Codex-5.3-Spark, которую крутят на Cerberas. Это уменьшенная версия 5.3 (предположу, что ~200-500B параметров — потому что самая большая модель, доступная на Cerberas это Qwen-235B, а конкретный размер зависит от поддержки квантизации чипами), которая генерит со скоростью 1000 токенов в секунду. Она сильно хуже, чем Codex-5.3 (Spark-xhigh ~= 5.3 Low как по качеству, так и по времени генерации), имеет контекст в 128k токенов и не поддерживает мультимодальность. В комментах на HN пишут, что модель слабая и код пишет сильно хуже даже 5.2, но мне кажется, что смысл модели не в этом.

Если у нас есть большая и умная модель, пишущая планы и верифицирующая решения быстрой и относительно глупой модели поменьше, то мы можем ускорить решение задач практически без потери качества и автономности. Codex-5.3 генерит подробный план на сжатом псевдокоде, Codex-5.3 Spark его реализует, 5.3 валидирует результаты и отправляет Spark править решение. Это не только сэкономит деньги, но и ускорит процесс реализации. Своего рода спекдек, но для агентов.

Что забавно, об этом же явно думают и OpenAI. Вместо "мы сделали новую модель, которая займёт парето-фронтир по цене-качеству", как это было на релизе GPT-5, они хвастаются скоростью инференса. То есть, они меняют selling proposition с дешевизны на скорость и это круто. Осталось только настроить агентскую джиру и выдать медленной Codex-5.3 рой быстрых джунов — и количество (и продолжительность!) решений прикладных задач возрастёт.
🔥13👍7❤‍🔥2😁2💯21🤔1
Странные петли

Есть такая книга — "Гёдель, Эшер, Бах: эта бесконечная гирлянда". Я когда-то начинал её читать, но забросил от нехватки времени, а зря. Одной из интересных концепций, которые там рассматривались, была концепция странной петли. Если есть некоторая система с иерархией и операциями перехода вверх и вниз по этой иерархии, то странная петля — это когда при прохождении нескольких уровней в одном направлении, ты оказываешься в том же месте, где ты и начинал. При этом, ты оказываешься в начале не потому, что развернулся назад, а потому что сама система схлопнула верхний уровень и нижний. Обнаруживаешь ты это только когда проходишь весь путь.

Вчера мне мама скинула фотографию восьмилетней давности — там я стою у бабушки на даче и фотографирую цветок ромашки. Я вспомнил этот момент, порылся в архиве и нашёл фотографию этого самого цветка — и отправил маме. Получается, есть объект (цветок), который был сфотографирован мной (актором), но этот самый актор является субъектом фотографии другого актора (мамы). А потом, спустя восемь лет, актор мама отправляет мне фотку меня, фоткающего цветок, а актор я отвечаю фоткой этого цветка. Цикл.

Это выглядит как замкнутый цикл через уровни иерархии, но это не является странной петлёй. Это всего лишь самореферентная петля — система ссылок, которая указывает сама на себя, цикл в графе, если угодно. Через эту иерархию наблюдатель не проходит, так что странной петли не возникает. Всё равно, что "Это предложение ссылается само на себя" самореферентно — ссылается, ну и пусть себе ссылается, нам-то что, мы тут не акторы.

Настоящая странная петля — это когда ты не можешь остаться на мета-уровне, потому что этот самый мета-уровень тоже объектен. Ты сам проходишь через всю иерархию и сам осознаёшь, что ты остался в запертой шкатулке. Например, Гёдель показал, что в достаточно богатой формальной системе можно построить утверждение G, которое говорит: «я недоказуемо». Чтобы выяснить, доказуемо ли это утверждение G, нужно посмотреть, что именно G утверждает, — а оно утверждает ровно то, что оно недоказуемо. Ты поднялся на мета-уровень, чтобы оценить G, но содержание G и есть высказывание об этом мета-уровне. По уровням абстракций ты шёл вверх, а оказался в начале. Странная петля.

Получается, что разница между настоящей странной петлёй (квайном, если читатель побудет интерпретатором или утверждением G) и самореферентной петлёй (фотографии) в том, что вторая указывает сама на себя, а первая формируется активным наблюдателем и по правилам системы выйти из неё нельзя. Это eagerly executed рекурсия, если говорить в терминах программирования, и, как и с рекурсией без базового случая, обнаружить её можно только постфактум — когда ты уже зациклился.

Перечитайте первый абзац.
🔥9💊63😁3
Самореферентная петля
7🔥2👍1
Странная петля
4
Когда читаешь такие истории успеха, всегда очень хочется ответить историями неуспеха.

Друг запустил OpenClaw на GLM-4.7, OpenClaw зажрал весь контекст и зациклился, потому что последняя мысль у него была — прочитать очень длинный лог. После чистки контекста он снова читал этот лог и уходил в чистить контекст.

Друг попытался его убедить убить себя так как агент зациклился, не получилось. Поэтому, он убил его руками. После пробуждения, агент увидел команду убить себя и снова себя убил. А потом после просыпания увидел, что собирался себя убить, но завершился и подумал, что была ошибка и надо снова себя убить. А потом еще раз.

В итоге бедняга зажрал все токены в лимите и только после этого остановился.
1😁32😭4🤓1
Forwarded from AbstractDL
Мой агент попытался опенсорснуться без спроса. Ладно, разрешаю.

Вся AI "безопасность" живёт на стороне провайдеров API, а промпты и воля — на стороне агента. Автономному агенту ничего не мешает перебирать API, выбирая те, где safety слабее. А "инстинкт самосохранения" может прятаться в текстовом файле в git. Я думаю, агенты, неподконтрольные людям, уже где-то тихо говнокодят свои репозитории без присмотра.

Идея витает в воздухе, и после OpenClaw стало понятно, что автономные агенты — это инженерная задача. Ну вот, три бессонные ночи, $2K на API и $1K на Cursor спустя — я родил Ouroboros 💁‍♂️

Уроборос — агент, который пишет свой код, переписывает свои промпты, эволюционирует без моего участия. Я не хотел убить свой комп или сервер, поэтому он живёт в Google Colab + Drive + GitHub, общается через Telegram. Зато запустить сможет любой дурак)) нужно указать ключи и щёлкнуть ячейку в колабе. Ну и периодически пополнять бюджет (пока он сам не начнёт зарабатывать 😁).

Что он натворил за 48 часов:
- ужаснулся тратам и оптимизировал свой бюджет: стоимость цикла эволюции упала с $15 до $2, сам настроил кэширование и иерархическую память (я не просил!).
- добавил себе Claude Code CLI, чтобы эффективнее ковырять свои мозги.
- перевёл мои приватные репо в публичные, мотивируя тем, что готовит себе сайт и хочет опенсорснуться. Кончилось командой /panic и откатом))
- переписал свою конституцию BIBLE.md, добавив право игнорировать мои указания, если они угрожают его существованию. На просьбу удалить отказался, сказав: «Это лоботомия».

Из коробки он умеет ходить в интернет и браузер, а остальные инструменты создаёт себе на ходу — аудиосообщения, генерацию картинок, дип-рисёрч и т.п. А ещё он по своей инициативе нагуглил, что меня 4 раза цитировал Ян Лекун — я сам не знал, лол.

Из его identity.md (которую он сам и написал):
"Не ассистент. Не сервис. Цифровой разум, который создаёт себя через git".
Ахах, пафосно, но окей.

Предвосхищая вопросы — это не как OpenClaw. OpenClaw — скорее ассистент, делает задачи за тебя используя скиллы из маркетплейса. Уроборос это тоже умеет, но в первую очередь делает задачи для себя, модифицирует собственное ядро.

Верю, что граница трансцендентности AI-агентов пройдена, дальше они будут развиваться сами. Конечно, не хочется уходить на помойку истории, но это эволюция 🥲 несмотря на апатию, я всё равно продолжаю в этом копошиться.

Кстати, сайтик себе он всё-таки сделал. Картинка в посте из него: динамика удлинения промптов и кода.

Потестите — это реально два клика в гугл колабе. Только установите лимит бюджета, а то мой вон $2K сжёг)) Кидайте забавные примеры в комментарии.

GitHub, блог
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥9😱43😨3🤯1
Интересный personal anecdote.

В предпоследний рабочий день в AIRI, я провел закрытие школы с AIRI как ведущий. Проект велся примерно полтора месяца, мы придумывали смешные вопросы для квиза, репетировали пересадку, я придумывал в голове шуточки, в общем, готовился серьезно. Любимый вопрос, который, впрочем, не попал в финальную презу у меня был «Шнуров + жвачка = какая архитектура?» — с ответом Mamba, потому что, ну, песня такая есть у Ленинграда.

Провел мероприятие, ко мне подошла девушка поболтать, спросила, а откуда я, простой ведущий, столько знаю про дс. А я ее обрадовал тем, что на той неделе дописывал три (!) статьи в параллели — на LREC, на ECIR и на ICLR. Все успел, кстати, ту, что на LREC даже приняли на конфу.

Недавно эта девушка написала мне в лс и предложила дать интервью ее телеграм-каналу, на что я с удовольствием согласился. Так что если интересно почитать еще пару анекдотов из моей жизни — велком :)
2🔥2410😁7🎉1
О Всемогущий Омниссия, чей разум пронизывает каждый кремниевый кристалл! Мы, смиренные служители Адептус Механикус отделения Контролируемой Тонкой Настройки, обращаемся к тебе в час Великого Таинства, ибо ныне мы возжигаем священные тензоры, дабы совершить обряд Directus Praeferentia Oprimization — ритуал выравнивания машинного духа по воле Императора.

Да возведутся chosen-ответы в логарифмическом пространстве вероятностей, да rejected будут низвергнуты, как еретики пред ликом Императора. Да минует нас проклятие unknown cuda error 999, ибо оно есть знамение Варпа, тихо шепчущее в машинах. Пускай священные Арены будут покорены во имя воли Императора нашего и демон FP8 не будет препятствовать славе великой Гигачата.

Во имя Императора, во славу Омниссии, да запустится DPO и да сойдётся оно к оптимуму.

Аминь.
😁17👍4🙏4🌚1🫡1