life = curiosity + irreducible noise Whois: https://t.me/boris_again/1652 Лс: @btseytlin
В общем, в какой-то момент я сдался. Финальное состояние вы можете видеть в репозитории:
https://github.com/btseytlin/sane-coco/tree/main
Получился какой-то неконсистентный код, с которым непонятно, что делать. Вроде бы что-то есть, но улучшения относительно pycocotools не чувствуется.
Если при обычном кодинге ты начинаешь с чего-то и постепенно приближаешься к желаемому, то здесь такого ощущения прогресса не было. Один шаг вперед, два назад. Или скорее, в непонятную сторону. Не покидало ощущение, что проще стереть и начать с нуля.
Возможно было бы лучше, если бы я сам сначала продумал интерфейсы, написал тесты, а затем дал бы агенту в один проход всё реализовать и отдебажить. Так же явно можно применять какие-то трюки. Например, помогло в какой-то момент спросить его самому придумать 10 дизайн принципов которым должна удовлетворять библиотека (получилось хорошо), а затем изменить код, чтобы она им соответствовала. Но я, если честно, не хочу этим заниматься. Какие-то костыли и танцы с бубном. На текущем этапе проще написать самому.
Этот бенчмарк оно не проходит, но в целом прикольный опыт. В редкие моменты когда оно будто правильно понимает твой вайб действительно ощущается как магия. Ещё попробую в более узком случае когда есть готовый проект и надо добавить понятную фичу.
Программисты - НЕ ВСЁ, код ассистенты пока что не могут сделать библиотеку из трех Python файлов.
Ещё одна проблема: излишняя инициатива. Модель реализовала и покрыла тестами несколько больших штук, о которых я её не просил и не собирался. Например утилитарные методы для копирования всех сущностей. Или метод .count()
для каждой коллекции, например для изображений и аннотаций. Который вообще непонятно зачем нужен, если есть нативный len()
.
Получается, что с одной стороны модель не делала того, что я хотел, а с другой делала то, что не надо, а потом сама же по моим указаниям это выпиливала.
Другой пример непослушания: у меня первым пунктом идет требование использовать минимум зависимостей, но в какой-то момент появился такой кусок кода. Здесь вообще прекрасно всё.
Читать полностью…Началось неплохо. Очень быстро набрасывает большой объем кода. Буквально за десять минут был готов скелет библиотеки и тесты.
Однако чем дальше, тем больше было ощущение парного программирования с чрезмерно усердным интерном с шизой.
# Vibecoding vs pycocotools
Есть такая Python библиотека, pycocotools. По сути код, чтобы читать датасеты в формате COCO и считать метрики по детекции и сегментации.
Для меня это эталон плохого кода. Библиотека как будто специально сделана неудобной, неинтуитивной и переусложненной. Несмотря на то, что она делает очень простые вещи. Однако это можно понять: релиз был 11 лет назад.
Тем не менее периодически я с ней сталкиваюсь так как когда хочется посчитать какие-то типичные метрики для детекции возникает искушение взять готовую библиотеку, да и COCO формат всё ещё встречается. И каждый раз я страдаю, а потом думаю написать свой pycocotools здорового человека. Но мне лень.
Сегодня меня посетила мысль: может отдать эту задачу LLM? Перекладывать JSON из одного формата в другой, переписать старую библиотеку в удобный вид, четкая задача и надо поменять всего пару файлов: именно такую работу я бы хотел скидывать на AI.
Нельзя сказать, что получилось плохо. Но можно сказать, что не получилось вообще. Сейчас расскажу подробнее.
Тем временем у Yandex Cloud два новых релиза которые могут быть интересны MLE.
Первый про инференс. В Foundation Models (сервис Yandex Cloud, объединяющий инструменты для GenAI моделей) добавили выделенные эндпоинты для инференса LLM моделей по запросу. Причем доступна не только ожидаемая YandexGPT, но и опенсорс (Qwen, Mixtral, DeepSeek, LLaMa).
Главная продающая идея здесь - это возможность делегировать облаку вопросы инфраструктуры и получить инференс и мониторинг из коробки.
Вторая - это LoRA адаптеры для YandexGPT 5 и LLaMa. LoRA - это современный стандарт для создания специализированного решения под свою задачу и данные на основе предобученной модели. Обещают, что для небольших датасетов весь процесс дообучения с помощью LoRA может занять всего 10 минут.
Уже есть кейс, когда компания сделала разметку с помощью YandexGPT Pro версии, затем обучила LoRA адаптер YandexGPT Lite на этих ответах и получила практические такое же качество, но с гораздо большей скоростью и меньшей стоимостью.
По релизу GPT4.5 от OpenAI можно заметить, что новая модель стала намного лучше в задаче разводить людей на деньги (и практически больше ни в чем). Это говорит о взрослении индустрии и переходе OpenAI к действительно прибыльным способам применения ИИ 👀
Читать полностью…https://www.ben-evans.com/benedictevans/2025/2/17/the-deep-research-problem
Читать полностью…Claude Code
Вчера Antropic представили обновлённую модельку Sonnet 3.7 и вместе с ней локального агента Claude Code. Вместе с обновлением, которое значительно подняло метрики по выполнению кода, получилась пушка для как минимум хобби-разработчиков.
Агент работает по API, час работы выходит примерно 10-20$. Агент работает на локальной машине через свой терминал, запуская команды на локальной машине. За полтора часа работы у меня получилось "написать" ~5k строк C++ кода для системы быстрого построения графов при помощи locality-sensitive hashing проекций. Ничего сложного, но время разработки существенно скоратилось, а скаффолдинг можно и поправить.
За весь час я вообще не редактировал код, а давал только общие указания (напиши бенчмарк, напиши тесты). В результате получилась система, которая вроде бы даже работет – агент сам старается всё тестировать и себя проверять. В результате получилось написать то, на что у меня бы ушло недели две работы, да ещё и C++ вышел довольно читаемым.
Будущее, получается, уже совсем рядом – нужно только отстёгивать $20/час за такое удовольствие.
В общем, коротко: SigLIP 2 это лучший на текущий момент CLIP.
К нему приделали все идеи из разных self-supervised методов современного CV и получилось хорошо:
1. Self-distillation при обучении как в DINO/DINOv2. Модель-ученик видит только локальный кроп изображения, модель-учитель (ema от обучаемой модели) глобальный кроп. Так что модель учится по деталям получать те же репрезентации, что и по всей картинке. Это, например, заставляет модель видя нос собаки мысленно "достраивать" всю собаку.
2. Маскировка патчей, что ставит некоторую задачу реконструкции, как в MAE (который Masked Autoencoders от FAIR).
3. Декодер. Прямо при обучении заставляют модель генерировать подписи, ббоксы и подписи к ббоксам. Это, по идее, самое важное: напрямую учат модель связи деталей изображения и текста.
Все это должно полечить вечную проблему клипов, что они хорошо понимают на уровне изображения и плохо понимают детали. Таким образом прошло долгожданное объединение contrastive learning и self supervised подходов.
Ещё подвезли версию устойчивую к разным разрешениям и размерам изображений, а так же мультиязычность.
Это конечно Франкенштейн с несколькими лоссами и стадиями тренировки, так что bitter lesson еще придет, но очень круто.
Короче если нужны какие-то эмбеддинги изображений и текстов берем с полки SigLIP2.
Так же ждем прокачанные энкодеры изображений во всех VLM.
🌸MLGym – открытый фреймворк и бенчмарк для Агентов в автоматизации ML-задач🌸
#nlp #про_nlp #nlp_papers
Сегодня, под конец этой насыщенной недели, мы с коллегами выпускаем новую работу "MLGym: A New Framework and Benchmark for Advancing AI Research Agents".
🟣TL;DR
MLGym – это фреймворк для оценки и развития LLM-агентов.
В нем пока 15 различных ML задач, включая хорошо и не очень определенные: задачи на NLP, CV, RL, теорию игр.
Агенты должны продемонстрировать свою способность понять задачу, запустить бейзлайн, оцени его, и начать итерировать эксперименты и улучшать результат, находясь при этом в заданной среде. В среде есть набор инструментов, которые можно использовать: поиск по файловой системе, поиск по файлам, модуль памяти, просмотр и изменение файлов, и собственно действия запуска скрипта оценки и сабмита решения.
Каждая задача содержит датасет, метрику, бейзлайн, а также свою собственную среду, где есть контролируемые ограничения на вычислительный бюджет и таймауты.
Мы предлагаем иерархическую структуру из 6 уровней для оценки степени автономии и научного вклада агентов:
Уровень 0: воспроизведение – аккуратно повторить чужие эксперименты без ошибок
Уровень 1: Итеративное улучшение бейзлайна – применение лучших практик, перебор гипертапаметров
Уровень 2: Достижение SOTA через итерации от бейзлайна – решение лучше тех, что смогли найти люди
Уровень 3: Новый научный вклад – можно быть принятым на условный NeurIPS
Уровень 4: Научное новаторство, фундаментальный научный вклад – можно получить "лучшую статью" на том же NeurIPS
Уровень 5: Долгосрочная исследовательская программа – test of time awards, научная революция, премия Тьюринга.
🟣Что мы выяснили?
Текущие ИИ системы находятся почти поголовно на уровне 1.
Удобно оценивать все системы относительно дельты, которую они смогли достичь, опираясь на бейзлайн, за заданное количество итераций (за первые 5 шагов у системы Х получили +15% точности, а у системы Y +20%). Если оценивать LLM-агенты так, то увидим, что O1-preview вырывается вперед практически на всех задачах. GPT-4o и LLama 3.1 405B примерно на одном уровне, Claude и Gemini делят обычно 2 и 3 место. Ну а если помимо дельты оценивать еще и стоимость инференса модели, но картина меняется, и лучше по соотношению оказывается Gemini с большим отрывом.
Достаточно интересно посмотреть распределение действий агентов и их ошибок:
— большинство LLM-агентов делают ошибки и из-за этого не доходят до сабмита, тогда как O1 и Gemini гораздо чаще просто не доделывают сабмит до конца.
— все агенты большую часть действий тратят на изменение файлов: редактирование скриптов обучения, а также чтение файлов, запуск обучения и валидацию — соотношение действий примерно у всех одинаковое, хотя некоторым система действий требуется меньше.
— почти все агенты очень мало используют поиск, хотя могли бы.
— минимальное число итераций до первого сабмита — примерно 5. Все системы начинают с чтения файлов, затем запускают валидацию, и дальше планомерно итерируются, изменяя скрипты и запуская обучение.
🟣Что еще есть полезного?
— Классный Web UI визуализатор агентных логов на streamlit
— Есть набор полезных функций и tools, полностью совместимый с SWE-Agent.
— Есть модуль памяти, модуль поиска научной литературы, и еще много разных ништяков, которые можно использовать отдельно от бенчмарка, просто развивая своего агента (свой агент? Это же неодушевленное...).
— Есть большой обзор литературы, охватывающий почти все последние работы в области агентов для SWE, ML, науки, который угадайте кто писал.
Линейку задач можно легко расширять — поэтому мы будем рады идеям и контрибьюшенам, а также любой активности в репозитории.
🟣Arxiv: https://arxiv.org/abs/2502.14499
🟣Github: https://github.com/facebookresearch/MLGym
🟣Лицензия: CC-BY-NC 4.0
🚨 Перенос Open Talks с Борисом Цейтлиным
Друзья, митап откладывается по состоянию здоровья гостя. Бережём Бориса и желаем ему скорейшего восстановления 🙏
Новая дата: 28 февраля 19:00 мск
Все ваши вопросы, отправленные через форму регистрации мы обязательно зададим 28.02. Напоминание о новой дате придёт на почту, указанную при регистрации. Мы также напомним вам о встрече в канале!
Спасибо за понимание и увидимся на Open Talks ❤️
Хочу завести попугая и научить его говорить "pvalue" и "критерий Стьюдента"
Это будет статистический попугай
Наконец, шиза.
Ощущение будто ты сидишь в чате с программистом, но в случайные моменты времени на его место подключается новый человек и видит код впервые. Потому что по факту так и происходит.
Ладно ещё, что куски кода в разных местах получаются в абсолютно разном стиле. Реальные проблемы начинаются когда агент теряет нить того, а что мы вообще тут делаем.
Например, переписывая по моему требованию подсчет метрик на более хороший, агент начал поддерживать обратную совместимость с функциями, которые сам только что написал.
Но вишенка на торте это когда агент начал запускать свои тесты и понял, что регрессионные тесты не проходят. Поэтому он решил их просто стереть и заменить на сообщения "API изменился"! 🧠🧠🧠
Следующая проблема это просто плохой код. Непредсказуемо плохой.
Причем Claude Sonnet 3.7 определенно умеет писать хороший код. Но только если ты явно ему скажешь, что это значит.
Получается, что в этом вайб-кодинге модели нехватает понимания вайба. Если бы я работал с джуном, то мне бы не приходилось объяснять ему, что если я хочу питон классы вместо диктов, то положить дикт внутрь класса и сделать проперти для доступа к ключам дикта это минус вайб. Просто не вписывается в вайбы проекта.
У меня так и не получилось донести до модели нужный вайб. Я старался по мере подобных ситуаций добавлять пояснения в CLAUDE.MD и заставлять его перечитывать этот файл почаще, но это не помогало: результат слишком непредсказуемый. В одном месте оно может код, который попадает в мою идею хорошего, а потом в другом месте вот эти импорты внутри функций, геттеры/сеттеры, переусложнение.
Самая банальная проблема в том, что оно не слушается. Это можно увидеть по моему CLAUDE.MD файлу где я сто раз повторяю не писать комментарии. В какой-то момент модель забывает об этом и о прямых напоминаниях в промпте и всё равно пишет вот такие жизненно необходимые коментарии, одновременно делая код хуже, тратя мои деньги и нагревая планету почем взря.
Но дело не только в комментариях. В целом добиться от модели того, что ты хочешь, достаточно нетривиально и пока нет уверенности, что тебя правильно поняли, и что это понимание не изменится когда контекст чуть сдвинется.
Например, несмотря на указния редактировать только тесты, модель всё равно с шансом 50/50 сразу лезла делать какую-то реализацию.
Claude Code действительно просто и клево использовать. Установил, залогинился и поехали. Пользовательский опыт самого инструмента супер как по мне.
Я решил поступить как умный вайбкодер и не стал просто просить LLM сделать лучше. Я создлал новый проект, положил туда репозиторий pycocotools отдельной папкой и описал свои желания в CLAUDE.MD файл. Включил туда, чем мы тут занимаемся, и каким ключевым принципам должна удовлетворять новая библиотека. Далее я попросил агента сделать файл с регрессионными тестами, где сравнивается вывод старой библиотеки и новой. Причем для новой надо было лишь придумать интерфейс, но не реализовывать. Сначала напишем тесты, определимся с тем, какие классы, функции и методы хотим получить, а затем останется лишь попросить агента реализовать.
Скотт как всегда выдает базу
https://www.astralcodexten.com/p/why-i-am-not-a-conflict-theorist
Напоминаю, что Open Talks с неким Борисом в AI Talent Hub уже сегодня в 19:00 по Москве!
Будет про карьеру MLE от научной роты МЧС до eBay, а так же про ML и книгу. Возможно обсуждение моделей мира и прочие спекуляции.
CoT Claude 3.7 🙄
https://x.com/lefthanddraft/status/1894392127066706128/photo/1
27 февраля в 19:00 ребята из Школы Высшей Математики, которые недавно запускали курс по LLM, проводят вебинар: "Применение ИИ в e-commerce"
Моя тема!
Спикеры:
🔹Артем Бочкарев – Head of Data Science в AliExpress
🔹Александр Лыков – кандидат физико-математических наук, академический руководитель Школы Высшей Математики и ShadHelper.
Что будет:
➖ Сценарии применения ИИ в разрезе типов моделей, трудозатрат и пользы для бизнеса.
➖ LLM - где применяется, где планируется и где не взлетело.
➖ Проблемы до которых пока не дотянулись, но есть потенциал.
Записываться здесь
https://www.anthropic.com/news/claude-3-7-sonnet
Anthropic наконец-то выпустили свою reasoning модель!
Ребята из Google DeepMind выложили SigLIP2, надо обязательно будет глянуть, с учетом того, что первая версия была достаточно успешной.
Из интересного на что сразу упал взгляд:
1. Две версии моделей: обработка изображений фиксированного / динамического разрешений.
2. Мультиязычность.
Статья
HuggingFace
#paper
🌸Акселерация науки — вперед!🌸
#nlp #про_nlp #nlp_papers
Молчать про это невозможно — про автоматизацию и акселерацию науки с помощью ИИ-моделей. На этой неделе происходит сразу несколько интересных релизов:
🟣OpenAI выпустил SWElancer: новый бенчмарк для агентов в привязке к реальным заданиям с биржи фриланса (100 млрд сами себя не заработают). OpenAI продолжает работу по привязыванию оценки работы ИИ к монетарной ценности — в задачах вроде как и сложных, но все-таки не научных, а скорее экономически выгодных.
🟣Google выпустил Co-Scientist: ассистента для ученых на основе последней модели Gemini в применении к 3 биомедицинским задачам: поиск новых применений уже известных препаратов, предложение новых терапевтических подходов к лечению и выяснение механизмов, лежащих в основе устойчивости к противомикробным препаратам.
Как говорится, две большие разницы. Подход Google больше похож на мои тезисы из "как делать AGI аккуратно": методы машинного обучения уже давно проникли в различные научные области, автоматизируя отдельные части процесса. Уже нашлись приложения в таких науках, как физика, биология, химия, лингвистика, экономика, геологическое моделирование, эпидемиологическое моделирование, нейронауки.
ИИ легко применим в любой области науки, где имеется 2 необходимых условия для автоматизации: формальные модели и симуляции.
Вполне логично, что агенты могут успешно автоматизировать генерацию тем, и даже эксперименты, но не могут пока что полноценно генерировать научную новизну.
И если добавить в эту цепочку самого исследователя — то проблему автоматической валидации новизны можно и вовсе обойти!
Но это еще даже не все:
🟣Stanford/Harvard выпустили Popper — агента для автоматического фальсифицирования гипотез в биологии, экономике, социологии. Составные части научной акселерации скоро будут собраны почти все.
Судя по скорости, до конца этой недели.
#моп_поймет
Отклик сюда: https://forms.gle/z45WwdBTRHrd8inM9
Небольшое превью того, что там происходит в книге Бориса (Борис мучает главу про теорвер)
Читать полностью…👉 Скорее всего, ты читаешь его в Tg: регистрируйся на новый Open Talks с @boris_again 🐱
Уже 19 февраля в 19:00
Обсудим:
– Как стать ML-инженером в eBay?
– Модели мира у нейросетей
– Почему ML – это просто?
➡️Эксперт: Борис Цейтлин
Staff ML Engineer в eBay
Автор Telegram-канала «Борис опять»
➡️Ведущий: Роман Одобеску
Талант 2 курса AI Talent Hub
Middle ML Engineer
😾 Не увидел важного вопроса в анонсе?
➡️ Регистрируйся и задай свой вопрос!
Уже был на Open Talks? Приходи на Бориса опять😉
#OpenTalks
#AITalentHub #ITMO #NapoleonIT