# Vibecoding vs pycocotools часть II: Cursor
Недавно я проверил, может ли Claude Code Agent написать для нас небольшую Python библиотеку: pycocotools здорового человека. Он не смог.
Сегодня я проверил может ли Cursor. Задача была ослаблена до того, может ли Cursor в неавтономном режиме (на агентов пока надежды нет) помочь мне написать библиотеку быстрее, чем я написал бы её сам.
Я записал час вайбкодинга на видео (сам вайбкодинг начинается с 20 минуты).
Как и в прошлый раз посмотреть как и куда я пришел можно в этом репозитории (только не забудьте смотреть в ветку `cursor`):
https://github.com/btseytlin/sane-coco/tree/cursor
Ниже опишу свои выводы
Недавно я проверил, может ли Claude Code Agent написать для нас небольшую Python библиотеку: pycocotools здорового человека. Он не смог.
Сегодня я проверил может ли Cursor. Задача была ослаблена до того, может ли Cursor в неавтономном режиме (на агентов пока надежды нет) помочь мне написать библиотеку быстрее, чем я написал бы её сам.
Я записал час вайбкодинга на видео (сам вайбкодинг начинается с 20 минуты).
Как и в прошлый раз посмотреть как и куда я пришел можно в этом репозитории (только не забудьте смотреть в ветку `cursor`):
https://github.com/btseytlin/sane-coco/tree/cursor
Ниже опишу свои выводы
Media is too big
VIEW IN TELEGRAM
❤15👍7
В целом опыт на три с плюсом, почти четыре.
Сначала про плюсы. Очень приятный интерфейс. Cursor конечно монстр UI/UX. Очень простое погружение и онбординг. Самое главное: это работало. Если claude code agent за два часа работы не приблизил меня к желаемому результату, то здесь наблюдается прогресс. То, что осталось после часа работы, гораздо лучше, чем ничего. Cursor гораздо лучше понимал целевой вайб. В целом прикольно.
Однако мне кажется, что без курсора я бы продвинулся примерно так же. Было слишком много случаев когда агент шел не в нужную сторону, но это не было сразу очевидно, чтобы просто откатиться. Поэтому позже приходилось разбираться. В итоге процесс работы прерывается и приходится выходить из режиме решения задачи и переходить в режим "разбираемся в коде незнакомого интерна."
Самый неприятный момент (начинается около 57 минуты) был когда ассистент написал вызов трех методов:
1. Распарсить категории.
2. Распарсить изображения.
3. Распарсить аннотации.
Странность там была уже в том, что первые два метода, как и ожидается, парсили дикты и возвращали питон объекты. А третий почему-то ничего не возвращал, а делал что-то внутри себя. Это очень нечеловеческий и неинтуитивный способ написать кусок кода: две вещи работают так, а третья, функционально такая же, в другой парадигме. Закопавшись внутрь я понял, что ассистент написал третью функцию с сайд эффектом. То есть она не возвращала то, что распарсила, а сразу куда-то записывала. Это снова проблема непослушания: я прописал в правилах, что ожидаю функции и методы которые делают одну вещь без сайд эффектов, но модель решила подзабить на это.
Ничего, поправили. После шага парсинга аннотаций добавился шаг связи аннотаций и изображений (в COCO формате их надо сопоставить друг-другу). Потом ассистент пошел прогонять тесты, начал их править, внес множество изменений. И удалил шаг связи, который только что добавлял. Но вдруг тесты проходят!
Я смотрю в код и не понимаю как так может быть. То есть аннотации парсятся, результат записывается в переменную, а потом она нигде не используется. Её даже VSCode подсвечивает: смотри, этот кусок кода не нужен.
Получается мы распарсили аннотации, потом просто выбросили их, а тесты всё равно проходят. Не должно работать, но работает – очень плохая ситуация. Значит или тесты неправильные, или код работает не так, как мне кажется. Оказалось второе. На самом деле вторая функция, которая парсила изображения, уже записывала всё куда нужно. То есть она выглядела будто там нет сторонних эффектов, будто это правильная "делаю одну вещь" функция, а на самом деле это была подстава👀 .
И это боль. Прям правда боль. Нормально если ассистент пишет не такой код как мне нужно. Но действительно больно когда он пишет код который выглядит как то, что надо, а на практике работает вообще по-другому. В результате я не могу доверять инструменту, значит мне надо перепроверять. Проще ли это, чем написать самому? Не факт.
Дело так же в качестве. Я поймал эту проблему только потому, что у меня очень четкое представление о том, что я хочу получить. И то она вскрылась случайно. Как много программистов заботятся о том, чтобы каждая функция делала одну вещь? Может процентов десять. Как много не-программистов/вайбкодеров? Ноль. Значит 90% программистам и 100% вайбкодерам Cursor поможет написать код со скрытым приколом🙄 . В общем готовьтесь через пару лет поддерживать чье-то курсорное легаси где возможно всё и в любом куске кода может обнаружиться пасхалка.
В общем смешанные ощущения. Но скорее положительные. Однако точно не идет речи ни о каком "В 100Х РАЗ ЛУЧШЕ ПРОГРАММИСТЫ НЕ НУЖНЫ!1!11" Я напоминаю, что мы тут всё ещё пытаемся прочитать JSON с диска.
Сначала про плюсы. Очень приятный интерфейс. Cursor конечно монстр UI/UX. Очень простое погружение и онбординг. Самое главное: это работало. Если claude code agent за два часа работы не приблизил меня к желаемому результату, то здесь наблюдается прогресс. То, что осталось после часа работы, гораздо лучше, чем ничего. Cursor гораздо лучше понимал целевой вайб. В целом прикольно.
Однако мне кажется, что без курсора я бы продвинулся примерно так же. Было слишком много случаев когда агент шел не в нужную сторону, но это не было сразу очевидно, чтобы просто откатиться. Поэтому позже приходилось разбираться. В итоге процесс работы прерывается и приходится выходить из режиме решения задачи и переходить в режим "разбираемся в коде незнакомого интерна."
Самый неприятный момент (начинается около 57 минуты) был когда ассистент написал вызов трех методов:
1. Распарсить категории.
2. Распарсить изображения.
3. Распарсить аннотации.
Странность там была уже в том, что первые два метода, как и ожидается, парсили дикты и возвращали питон объекты. А третий почему-то ничего не возвращал, а делал что-то внутри себя. Это очень нечеловеческий и неинтуитивный способ написать кусок кода: две вещи работают так, а третья, функционально такая же, в другой парадигме. Закопавшись внутрь я понял, что ассистент написал третью функцию с сайд эффектом. То есть она не возвращала то, что распарсила, а сразу куда-то записывала. Это снова проблема непослушания: я прописал в правилах, что ожидаю функции и методы которые делают одну вещь без сайд эффектов, но модель решила подзабить на это.
Ничего, поправили. После шага парсинга аннотаций добавился шаг связи аннотаций и изображений (в COCO формате их надо сопоставить друг-другу). Потом ассистент пошел прогонять тесты, начал их править, внес множество изменений. И удалил шаг связи, который только что добавлял. Но вдруг тесты проходят!
Я смотрю в код и не понимаю как так может быть. То есть аннотации парсятся, результат записывается в переменную, а потом она нигде не используется. Её даже VSCode подсвечивает: смотри, этот кусок кода не нужен.
Получается мы распарсили аннотации, потом просто выбросили их, а тесты всё равно проходят. Не должно работать, но работает – очень плохая ситуация. Значит или тесты неправильные, или код работает не так, как мне кажется. Оказалось второе. На самом деле вторая функция, которая парсила изображения, уже записывала всё куда нужно. То есть она выглядела будто там нет сторонних эффектов, будто это правильная "делаю одну вещь" функция, а на самом деле это была подстава
И это боль. Прям правда боль. Нормально если ассистент пишет не такой код как мне нужно. Но действительно больно когда он пишет код который выглядит как то, что надо, а на практике работает вообще по-другому. В результате я не могу доверять инструменту, значит мне надо перепроверять. Проще ли это, чем написать самому? Не факт.
Дело так же в качестве. Я поймал эту проблему только потому, что у меня очень четкое представление о том, что я хочу получить. И то она вскрылась случайно. Как много программистов заботятся о том, чтобы каждая функция делала одну вещь? Может процентов десять. Как много не-программистов/вайбкодеров? Ноль. Значит 90% программистам и 100% вайбкодерам Cursor поможет написать код со скрытым приколом
В общем смешанные ощущения. Но скорее положительные. Однако точно не идет речи ни о каком "В 100Х РАЗ ЛУЧШЕ ПРОГРАММИСТЫ НЕ НУЖНЫ!1!11" Я напоминаю, что мы тут всё ещё пытаемся прочитать JSON с диска.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Так же Cursor практически не помогает думать. Я прошу написать тесты: он пишет тесты, где проверяет, что всё работает. Но пока не попросишь он не напишет негативные тесты. То есть он не будет без твоего пинка проверять, что то, что не должно работать, действительно не работает. И не скажет о том, что так нужно делать.
Так что программистский навык не обесценивается. Возможно, наоборот, теперь нужно два навыка:
1. Умение делать хорошо.
2. Умение распознать где LLM может тебя обмануть.
Так что программистский навык не обесценивается. Возможно, наоборот, теперь нужно два навыка:
1. Умение делать хорошо.
2. Умение распознать где LLM может тебя обмануть.
❤73👍25 9👎2
Forwarded from epsilon correct
Gemma 3
Выкатили семейство очень добротных моделек, нацеленных на локальных юзеров. Размеры 1, 4, 12, 27B, но зато 4-27B модельки со зрением и 128к контекста! По MMMU обогнали Gemini 1.5 Flash и вплотную подобрались ко второму флешу.
По бенчмаркам не так сильно обогнали Gemma 2, но моделька сильно лучше разбирается в социальных науках, бизнесе, психологии. Особенно хороший прирост на европейских языках, но под шумок я долил и русского.👉
Блогпост
Tech report
HuggingFace
Потыкать модель можно тут
Выкатили семейство очень добротных моделек, нацеленных на локальных юзеров. Размеры 1, 4, 12, 27B, но зато 4-27B модельки со зрением и 128к контекста! По MMMU обогнали Gemini 1.5 Flash и вплотную подобрались ко второму флешу.
По бенчмаркам не так сильно обогнали Gemma 2, но моделька сильно лучше разбирается в социальных науках, бизнесе, психологии. Особенно хороший прирост на европейских языках, но под шумок я долил и русского.
Блогпост
Tech report
HuggingFace
Потыкать модель можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38❤5👍4
https://x.com/emollick/status/1901431681279475808
🔹LLMs produce funnier memes than the average human, as judged by humans.
🔹Humans working with AI get no boost.
🔶The best human memers still beat AI, however. 💪💪💪
Лучшие хьюман мемеры, вся надежда на вас🫡
🔹LLMs produce funnier memes than the average human, as judged by humans.
🔹Humans working with AI get no boost.
🔶The best human memers still beat AI, however. 💪💪💪
Лучшие хьюман мемеры, вся надежда на вас
Please open Telegram to view this post
VIEW IN TELEGRAM
X (formerly Twitter)
Ethan Mollick (@emollick) on X
I regret to announce that the meme Turing Test has been passed.
LLMs produce funnier memes than the average human, as judged by humans. Humans working with AI get no boost (a finding that is coming up often in AI-creativity work) The best human memers still…
LLMs produce funnier memes than the average human, as judged by humans. Humans working with AI get no boost (a finding that is coming up often in AI-creativity work) The best human memers still…
https://mistral.ai/news/mistral-small-3-1
Внезапно мистраль выложил 24B мультимодальную модель Mistral Small 3.1, которая бьет GPT-4o Mini, Claude-3.5 Haiku и недавно вышедшие Gemma 3 (27B) и Cohere Aya Vision (32B).
Конечно подождем результатов на арене, но если подтвердиться, то считайте можно запускать бесплатную и улучшенную GPT-4o Mini на своём макбуке
Внезапно мистраль выложил 24B мультимодальную модель Mistral Small 3.1, которая бьет GPT-4o Mini, Claude-3.5 Haiku и недавно вышедшие Gemma 3 (27B) и Cohere Aya Vision (32B).
Конечно подождем результатов на арене, но если подтвердиться, то считайте можно запускать бесплатную и улучшенную GPT-4o Mini на своём макбуке
mistral.ai
Mistral Small 3.1 | Mistral AI
SOTA. Multimodal. Multilingual. Apache 2.0
🔥54👍6❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
💅 Уход за кожей в машинном обучении
О, ты МОП, закончил ШАД, написал три статьи по Байесовскому DL? Поздравляю вставай в эту очередь опоздавших на пять лет.
Этим сейчас никого не удивишь, но многие упускают необходимую базу для работы с нейросетями: гладкую кожу. Поэтому это дешевое преимущество если вы готовы инвестировать усилия в свою карьеру.
Когда вы сидите на фит интервью с бимбо-эйчаркой она должна видеть, что ваша кожа сияет. Причем больше, чем у неё самой. Тогда она чувствует, что перед ней доминантная особь, и пропускает вас дальше. Так же и на следующих этапах. Литкод больше не работает, поэтому отсев идет только по мягкости кожи.
Чтобы ваша кожа была гладкой как лосс функция MSE, делюсь гайдом.
1. Очищение: Гидрофильное масло → pH-сбалансированный пенящийся очиститель (5.5-6.0) → мицеллярная вода для остатков.
2. Тонизация: Безспиртовой тоник с ниацинамидом (3-5%), глицерином, гиалуроновой кислотой, нанесение методом "7 skin".
3. Активы: Утро - антиоксиданты (L-аскорбиновая кислота 15-20%), вечер - ретиноиды/AHA/BHA (чередовать).
4. Ретинол: Начать с 0.01-0.03%, постепенно повышая до 0.25-1.0%. Буферизировать сэндвич-методом. Внедрять по схеме 1-2-3 (1 раз в неделю, затем 2, затем 3). Обязательная фаза ретинизации 4-12 недель. Альтернативы: ретинальдегид (в 11 раз сильнее), HPR (менее раздражающий), бакучиол (фитоальтернатива).
5. Увлажнение: Многослойное нанесение - пептиды, керамиды, сквалан, пантенол.
6. Защита: SPF 50+ PA++++ с фильтрами нового поколения, ребазировать каждые 2 часа.
7. Еженедельно: Энзимный пилинг, неабразивная эксфолиация, окклюзионная маска для трансэпидермальной регидратации.
8. Коррекция по фототипу Фитцпатрика и барьерной функции.
Это МИНИМУМ для работы с нейросетями в 2025
О, ты МОП, закончил ШАД, написал три статьи по Байесовскому DL? Поздравляю вставай в эту очередь опоздавших на пять лет.
Этим сейчас никого не удивишь, но многие упускают необходимую базу для работы с нейросетями: гладкую кожу. Поэтому это дешевое преимущество если вы готовы инвестировать усилия в свою карьеру.
Когда вы сидите на фит интервью с бимбо-эйчаркой она должна видеть, что ваша кожа сияет. Причем больше, чем у неё самой. Тогда она чувствует, что перед ней доминантная особь, и пропускает вас дальше. Так же и на следующих этапах. Литкод больше не работает, поэтому отсев идет только по мягкости кожи.
Чтобы ваша кожа была гладкой как лосс функция MSE, делюсь гайдом.
1. Очищение: Гидрофильное масло → pH-сбалансированный пенящийся очиститель (5.5-6.0) → мицеллярная вода для остатков.
2. Тонизация: Безспиртовой тоник с ниацинамидом (3-5%), глицерином, гиалуроновой кислотой, нанесение методом "7 skin".
3. Активы: Утро - антиоксиданты (L-аскорбиновая кислота 15-20%), вечер - ретиноиды/AHA/BHA (чередовать).
4. Ретинол: Начать с 0.01-0.03%, постепенно повышая до 0.25-1.0%. Буферизировать сэндвич-методом. Внедрять по схеме 1-2-3 (1 раз в неделю, затем 2, затем 3). Обязательная фаза ретинизации 4-12 недель. Альтернативы: ретинальдегид (в 11 раз сильнее), HPR (менее раздражающий), бакучиол (фитоальтернатива).
5. Увлажнение: Многослойное нанесение - пептиды, керамиды, сквалан, пантенол.
6. Защита: SPF 50+ PA++++ с фильтрами нового поколения, ребазировать каждые 2 часа.
7. Еженедельно: Энзимный пилинг, неабразивная эксфолиация, окклюзионная маска для трансэпидермальной регидратации.
8. Коррекция по фототипу Фитцпатрика и барьерной функции.
Это МИНИМУМ для работы с нейросетями в 2025
1 142❤96🤔14🔥8👍7🤬3👎2
This media is not supported in your browser
VIEW IN TELEGRAM
https://huggingface.co/manycore-research/SpatialLM-Llama-1B
https://manycore-research.github.io/SpatialLM/
Я стараюсь не приносить сюда посты вида "вышла очередная модель". Но тут 1B LLAMA для облаков точек, выглядит просто убойно, не могу не поделиться. Посмотрите сайт, там другие примеры очень интересные.
Украл у @lovedeathtransformers
https://manycore-research.github.io/SpatialLM/
Я стараюсь не приносить сюда посты вида "вышла очередная модель". Но тут 1B LLAMA для облаков точек, выглядит просто убойно, не могу не поделиться. Посмотрите сайт, там другие примеры очень интересные.
Украл у @lovedeathtransformers
❤54🔥30🤔2
Forwarded from AbstractDL
M-Attack: как обмануть GPT-4.5 и Gemini
Все привыкли, что атаковать современные мультимодальные модели (типа GPT-4o, Claude, Gemini и т.п.) крайне сложно — особенно, если это black-box модели, где нет доступа к градиентам и архитектуре. Стандартные подходы атак типа "выдать одну картинку за другую" часто генерируют какие-то невнятные шумы, которые либо игнорируются моделью, либо приводят к абстрактным ответам типа "размытое изображение".
Но оказалось, что проблема была не в самих моделях, а в подходе к генерации возмущений. В свежей статье предложили очень простой, но мощный подход — M-Attack:
1. Берём исходную и целевую картинки.
2. На каждом шаге рандомно crop'аем кусок исходного изображения (50-100% площади) и затем ресайзим обратно до исходного размера.
3. Заставляем эмбеддинги этого кусочка максимально приблизиться к эмбеддингам целевого изображения оптимизируясь в white-box режиме по ансамблю открытых визуальных моделей (например, CLIP, ViT и тп).
И всё! После нескольких итераций в центральной области картинки "проявляется" целевая семантика, при этом возмущения выглядят крайне незаметно и аккуратно (в отличие от других подходов).
Авторы добились совершенно впечатляющих результатов: успех атаки (ASR) превышает 90% (!) для GPT-4.5, GPT-4o и даже для o1 и Gemini. Код и датасет из 100 атакованных картинок выложили в открытый доступ.
Статья, GitHub, dataset
Все привыкли, что атаковать современные мультимодальные модели (типа GPT-4o, Claude, Gemini и т.п.) крайне сложно — особенно, если это black-box модели, где нет доступа к градиентам и архитектуре. Стандартные подходы атак типа "выдать одну картинку за другую" часто генерируют какие-то невнятные шумы, которые либо игнорируются моделью, либо приводят к абстрактным ответам типа "размытое изображение".
Но оказалось, что проблема была не в самих моделях, а в подходе к генерации возмущений. В свежей статье предложили очень простой, но мощный подход — M-Attack:
1. Берём исходную и целевую картинки.
2. На каждом шаге рандомно crop'аем кусок исходного изображения (50-100% площади) и затем ресайзим обратно до исходного размера.
3. Заставляем эмбеддинги этого кусочка максимально приблизиться к эмбеддингам целевого изображения оптимизируясь в white-box режиме по ансамблю открытых визуальных моделей (например, CLIP, ViT и тп).
И всё! После нескольких итераций в центральной области картинки "проявляется" целевая семантика, при этом возмущения выглядят крайне незаметно и аккуратно (в отличие от других подходов).
Авторы добились совершенно впечатляющих результатов: успех атаки (ASR) превышает 90% (!) для GPT-4.5, GPT-4o и даже для o1 и Gemini. Код и датасет из 100 атакованных картинок выложили в открытый доступ.
Статья, GitHub, dataset
👍47🔥15 11❤5😢4
Программисты: я изобрел новый фреймворк для оркестрации роевого интеллекта из тысяч LLM агентов!!!
Тем временем что действительно нужно бизнесу:
https://www.youtube.com/watch?v=OkGKJwmqZ8A
Тем временем что действительно нужно бизнесу:
https://www.youtube.com/watch?v=OkGKJwmqZ8A
YouTube
1С и нейросети
В этом видео я рассмотрю пример решения задачи из области естественного языка (NLP). В качестве примера я буду автоматически определять настроение покупателя по тексту его отзыва или обращения. На практике это можно применять для быстрого автоматического…
Forwarded from КПД
Scale-wise Distillation of Diffusion Models
[Статья] [Демка] [Код soon]
Введение
Диффузионные модели на протяжении последних несколько лет удерживают пальму первенства среди семейств генеративных моделей во многих приложениях. Однако их фундаментальным ограничением является многошаговое сэмплирование, из-за чего генерация занимает много времени.
Научное сообщество предложило вагон и маленькую тележку различных процедур дистилляции многошаговых моделей в малошаговые. Но при приближении количества шагов к 1-му качество неизбежно просаживается даже для самых продвинутых подходов.
Отсюда мысль 🤔 - а что если ускорить генерацию за счет удешевления шагов сэмплирования?
Мы с коллегами из Yandex Research предложили метод дистилляции в несколько-шаговую генерацию, где разрешение изображения увеличивается постепенно, на каждом шаге генерации (SwD). За счет этого удается достичь более чем 2х кратного ускорения по сравнению с эквивалентной дистилляцией в фиксированном разрешении.
[Статья] [Демка] [Код soon]
Введение
Диффузионные модели на протяжении последних несколько лет удерживают пальму первенства среди семейств генеративных моделей во многих приложениях. Однако их фундаментальным ограничением является многошаговое сэмплирование, из-за чего генерация занимает много времени.
Научное сообщество предложило вагон и маленькую тележку различных процедур дистилляции многошаговых моделей в малошаговые. Но при приближении количества шагов к 1-му качество неизбежно просаживается даже для самых продвинутых подходов.
Отсюда мысль 🤔 - а что если ускорить генерацию за счет удешевления шагов сэмплирования?
Мы с коллегами из Yandex Research предложили метод дистилляции в несколько-шаговую генерацию, где разрешение изображения увеличивается постепенно, на каждом шаге генерации (SwD). За счет этого удается достичь более чем 2х кратного ускорения по сравнению с эквивалентной дистилляцией в фиксированном разрешении.
👍20❤9🔥6👎1