"Зарисовки на тему программирования с моделями. Ещё совсем недавно я пользовался AI лишь в режиме умного саджеста, а потом генерации кода по запросу в чате и копипасту туда-сюда. Теперь ради интереса пробую более автономные агентские режимы типа Cursor 2.0 или свежего Antigravity. Мой вывод на сегодня -- модели далеки от рабочей автономности, но всё же сделали огромный шаг вперёд за последние полгода. Они могут быстро делать туеву хучу полезной работы, но постоянно плодят ошибки и упущения. От банальных типа использования переменной до её объявления (странно, конечно, что такое просачивается, но обычно оно не при первой генерации появляется, а уже после редактирования) или забытого параметра при вызове функции, к более сложному незнанию особенностей текущей версии библиотеки (должно лечиться в том числе и правильным RAG или скорее уже context engineering) и до порой логически очень противных косяков, которые можно было бы списать на невнимательность в случае человека, но от модели с большим контекстом ожидаешь иного. На днях я игрался с запуском сетки новой архитектуры. У меня уже был код на PyTorch (полученный таким же вайбкодингом из другого кода на PyTorch), который как-то работал. Надо сказать, собирать это в Курсоре было очень удобно -- модель быстро писала код, можно было давать ей примеры статей (прямо ссылками на arxiv) и объяснять, что именно ты хочешь оттуда перенять, и она в целом справлялась. Да, тоже приходилось итерироваться на ошибках запуска, но тот процесс я в целом прошёл довольно быстро. К сожалению, в прошлый раз у меня кончились кредиты на GPU чтобы продолжить эти эксперименты. Теперь зато появилось сколько-то кредитов на TPU и соответственно я хотел портировать этот код на TPU, а заодно попробовать свежий Antigravity. С этим всем оказалось сложнее. Сначала я хотел переписать код на PyTorch/XLA, модель в первом приближении это сделала, но потом начались проблемы с задействованием всех ядер TPU на одной машине и модель застряла в синхронизациях и race conditions. Ещё я по ошибке сначала выбрал не ту версию системы (образ с последним из доступных там PyTorch), где PyTorch и питон оказались слишком старыми, чтобы поддерживать код, собранный на nightly build или хотя бы на 2.9, так что часть новых фич пришлось переписать на старые. Надо было, конечно, сразу на новый образ перейти, а не страдать фигнёй. Выбирайте в таком случае последнюю убунту, а не все эти предсобранные образы. В какой-то момент я решил, что проще и интереснее не бороться с PyTorch/XLA, а переписать сразу на JAX/NNX и не мучиться. Antigravity довольно резво переписал (составил себе многошаговый план и прошёлся по нему), потом я сколько-то поитерировался с довольно глупыми банальными ошибками и наконец модель типа заработала. Но были раскиданы грабли. Из топа моих находок: 1. Модель написала код, который технически работал и обучение модели новой архитектуры как-то шло. Но мне не нравилась скорость обучения и в частности динамика уменьшения лосса. Я наблюдал эту динамику в старом коде на пайторче, здесь же лосс уменьшался сильно медленнее. Я несколько раз просил модель внимательно пройтись по коду и найти расхождения с оригинальной версией, она по мелочи что-то находила, но не то, и убеждала меня, что всё замечательно обучается, надо просто подождать. Предлагала также архитектурные изменения, но это было ни к чему, явно что-то не так было с кодом. В итоге раз на пятый я от неё добился более подробного анализа и она нашла прекрасную ошибку -- градиенты считались верно, но затем они не вычитались из весов модели, а просто их перезаписывали. Удивительно вообще, что оно ещё и обучалось, надо будет копнуть, что там на самом деле происходило, тоже интересный эффект. Напоминает старый анекдот про кота, оставленного на неделю полуслепому соседу, у которого кот ел ""неохотно"" — по ошибке вместо кошачьего корма тот сыпал коту кофейные зёрна."
"Зарисовки на тему программирования с моделями. Ещё совсем недавно я…
Из этого канала
- #4290"2. В другом примере качество по одной из метрик снова стагнировало на плато, я…
"2. В другом примере качество по одной из метрик снова стагнировало на плато, я попросил модель разобраться.
- #4291При этом я не могу сказать, что вся эта генерация контента и кода -- это плохо.…
При этом я не могу сказать, что вся эта генерация контента и кода -- это плохо. Это хорошо, потому что без неё, я бы сделал вдесятеро меньше (а в некоторых…
- #4294Но дебажит знатно! План на 59 шагов
Но дебажит знатно! План на 59 шагов
- #4286"Закончили с призёрами NeurIPS, теперь финалисты. Статья про RLVR, который на…
"Закончили с призёрами NeurIPS, теперь финалисты. Статья про RLVR, который на самом деле не находит ничего нового.
- #4285Ещё прекрасных механизмов вам в ленту…
Ещё прекрасных механизмов вам в ленту https://x.com/BrianRoemmele/status/1994524678191477101