max.sh
3.21K subscribers
105 photos
7 videos
132 links
Карьера, образование и исследования в мире AI через призму собственного опыта.


Канал ведет Макс Шапошников. Сейчас пост трейню Gemini в GDM

Cвязь в тг - @PorcelainFox
Linkedin - https://www.linkedin.com/in/maxshapp
Download Telegram
⚽️ Чемпионат мира по футболу стартанул и это повод сделать еще один небольшой проект.

Так появился GoalStake – площадка, где можно создать турнир, пригласить друзей, выдать всем стартовый капитал игровых монет и соревноваться в прогнозах на исходы матчей, используя реальные вероятности исходов. Весело (потому что играешь с друзьями). Непредсказуемо (потому что чемпионаты всегда такие)

Ссылку на проект публично не шейрю, так как: а) этические соображения b) чтобы все это не развалилось под нагрузкой, так как держится на free tier планах 👀.

Но если хотите поиграть с друзьями или потыкать сами, то напишите в личку( в описании канала есть мой профиль) или в комментах и скину!

❗️Но вообще пост о другом. Насколько в эпоху вайбкодинга стало просто создавать подобные штуки. На весь проект у меня ушло около 4–5 часов работы с разными агентами. И дело не только в том, что сами агенты стали гораздо сильнее. Вокруг сформировалась целая экосистема инструментов, которые позволяют решать нетривиальные задачи в несколько кликов. О них и поговорим.

🔘 Supabase. Почти любой проект требует баз данных, мой не исключение. Заморачиваться с тем, чтобы поднимать свою, особенно на этапе пилота, как-то слишком. supabase берет часть сложностей на себя, от пользователя только требутеся создать все нужные Postgres таблицы.

Кстати, у сервиса кроме облачных БД еще куча развиающихся фишек. Например, прокачанная авторизация (что я тоже попробовал), по почте/телефону/смс - все это можно довольно быстро подключить. Из интересного увидел еще поддержку realtime на базе WebSocket-ов

🔘 Vercel. Тут его и так наверное многие знают. Простой деплой бэкенда/фронтенда.

🔘 Conductor. Теперь о чем-то более агентском. О кондукторе. Ребята делают десктоп приложение, чтобы было удобно оркестрировать работу большого количества агентов. Каждый запускается в своем worktree. Когда я смастерил первую версию с клод кодом, то дальше захотел точечно улучшать определенные куски. Тут кондуктор и пригодился. Я запускал одного агента в задачах на фронтенд, другого на более эффективную работу с БД. А потом ревьюил, что каждый наделал.Так работать было сильно удобнее, чем с кучей терминалов: и распаралелил процесс, и мне ревьюить легче

🔘Agentic Skills. Наконец, мне пригодились подключение скиллов. Я использовал skills.sh, чтобы подключить скиллы для supabase. Свежий Opus 4.8 и так из коробки неплохо работает, но местами использует устаревший API или усложняет подходы. Но зачем все это самоделие, если есть официальные best practises от авторов supabase? Подключил и доволен.

Кстати, вот тут большая подборка скиллов от популярных больших компаний.

—-
UPD 1. Пришло 23 запроса на попробовать, обнаружено 2 не критических бага. Фиксы подъедут когда-то на неделе
Please open Telegram to view this post
VIEW IN TELEGRAM
720🏆8👍5
💼 Career Update. Ухожу из стартапа

Расскажу чем занимался последний год и куда двинулся теперь.

⏹️Чуть больше года назад я присоединился к раннему стартапу Tessl (писал тут). Первая идея компании была сделать движок для Spec Driven Development (SDD) и развить вокруг него экосистему: что-то типа нового Github-а, но для спецификаций. Большой раунд ($125M), опытный фаундер, талантливая команда и идеальное время, чтобы очень быстро вырасти, как Cursor / Lovable.

⏹️Реальность оказалась суровее. все реализации SDD былы неповоротливыми, медленными, дорогими и не приносил видимой пользы поверх обычного вайб-кодинга. На похожие грабли наступили и другие стартапы. Для нас пришло время пивота.

⏹️Cледующая идея закрутилась вокруг eval-ов (что такое читать тут). Прицел был на энтерпрайзы. Они входят в эпоху AI и хотят понимать, как агенты перформят именно в их кодовых базах, где можно использовать модель подешевле, и как поддерживать и обновлять агентский контекст. Конкретно, делали SWE Bench on-prem, эвалы Skill-ов, затачивали оркестрацию контекста под репозитории инженерных команд. Пивот попал в больную точку корпоратов. Они сжигают бюджеты под AI тулы без четкого понимания, был ли в этом хоть какой-то толк. Я во всей этой истории придумвал методологии тех самых эвалов (конструировал реалистичные среды, делал инфру и запускал бенчи, замеряя качество разных моделей), а потом рассказывал prospective customers, как всем этим пользоваться. Питч вида: "смотрите, Opus хорошо решает ваши задачи, но сжигает сумму XXX. А вот если у вас будет набор скиллов и Sonnet с high reasoning effort, то вы сможете урезать расходы вполовину, смотрите, вот скиллы" магически работал на VP и быстро двигал к пилотам.

⏹️Но пилот это часть истории. Далее начинается длинная стадия выстраивания отношений с компанией, постоянное общение на тему, а что мы можем сделать для вас еще? поиск бизнес-кейсов и жесткая борьба с фронтир лабами, которые кардианально улучшают модели каждый месяц.

⏹️И вот эта фундаметнальность, возможность улучшать конкретные модели стала сильно привлекать. По крайней мере, на данном этапе карьеры, когда еще интересно глубоко уйти в технические детали, а не бизнесовые истории. Я начал рассматривать фронтир лабы. В Лондоне они все представлены, но не у всех есть интересные команды с большим импактом на продукт (на данный момент в Европе).

⏹️Привели все эти поиски и общения к тому, что неделю назад завершил свой путь в стартапе и оказался в DeepMind, где буду улучшать Gemini в роли рисерч инженера.

⏹️За последние месяцы в Tessl накопилось несколько интересных тем. О них в ближайших постах. Во-первых, расскажу про небольшой рисерч вокруг эвалов Skill-ов, которым занимался в последний месяц и платформу для code-review. Во-вторых, давно хочется написать серию образовательных материлов про бенчмарки и куда движется мир агентов после SWE Bench-а. Ну и наконец, порекламирую вакансии и возможности в Тессл - если очень нравится активно общаться с клиентами, выступать на митапах и пилить кучу прототипов - точно понравится. У меня от этого опыта только позитивные эмоции. Но сейчас хочется посомтреть как оно там, на фронтире.
Please open Telegram to view this post
VIEW IN TELEGRAM
36125🔥75🎉32🤔4🐳3👍1
Начинаю рассказывать, что интересного получилось поделать в свой финальный отрезок работы в стартапе.

И начну с статьи. Почитать можно тут.

Из приятного, ее недавно приняли на KDD – такая конфа с фокусом на приложения ML в индустрии, датасеты и эвалы. В этом году пройдет в Корее (что-то на азию всех потянуло, сейчас там проходит ICML).


Теперь к сути. К нам часто приходили энтерпрайзы с одними и теми же вопросами: вот есть у меня набор агентских скиллов, а как мне понять, что он вообще что-то делает? насколько он полезный? и что будет, если я заменю одну модель на другую, а скилл оставлю?

Мы соорудили многоступенчатый пайплайн генерации эвалов, чтобы отвечать на такие вопросы. Бенчмаркали все компоненты на опенсоурсных скиллах. Так и появилась статья.

А именно: берем реальный скилл, генеирурем на основе него реалистичную задачу + набор рубрик, заточенных под Instruction Following (IF). Потом решаем эту задачу целевой моделью + выбранным агентским харнессом в изолированной среде. Дальше измеряем качество решения с помощью рубрик, используя логи агента + решение задачи. Логи в данном случае очень важная штука, так как позволяют ловить какие промежуточные шаги делает агент и делает ли что-то такое, что прямо противоречит скиллу.

Померили такой пайплайн на качественных скиллах от больших вендоров (11labs, hugging face, ...) для большого количество моделей, открытх и закрытых + различных размеров.

Ключевой результат на картинке к посту.

Из основного:

• размер модели решает: чем она больше, тем как правило лучше, хорошо видно на семействе всех фронтир лаб
• новизна модели тоже решает; более свежая Gemini Flash 3.5 на уровне старой Pro 3.1
• опенсоурс отстает, но местами может быть очень компетитив, взять GLM - по результатам на уровне Сонета (тестил эту модельку в кодинге сам и впечатления очень хорошие; в отличие от Kimi - но кими и на нашем бенче проседает сильно)
• Прогнав агента с скиллом и без него можно измерить насколько скилл вообще важен (или модель и без скилла уже действовала как ожидается)

Последний пункт особенно полезен на практике. Конкретный пример. HF относительно недавно меняли свой cli - заменив его с huggingface-cli на просто hf. Первый депрекейтят и четко пишут не использовать. Но без скилла модель зачастую упорно выбирает старый вариант.


Будете делать какой-то рисерч про скиллы, буду благодарен, если поцитируете. Если есть ресурсы (токены и люди) вести рисерч в области кодинг агентов и бенчей, буду рад поколабить тоже, напишите в лс)

Статья была побочной активностью, как это и бывает в прикладных командах. Но все равно приятно, что наконец-то что-то докатилось до публикации. За последние 4 года 2 мои статьи эпохи работы в Амазоне попали под эмбарго и уже никогда не увидят свет
6🔥32123👍3🆒2👏1
Еще одна идея над которой успел поработать перед уходом из стартапа – это AI код ревьюеры.

В какой-то момент, как и многие стартапы, мы стали строить свою Software Factory (воркшоп от Курсора, если интересуетесь) с идей того, чтобы 0) cтать настоящей AI Native Dev компанией 1) еще быстрее шипить новый софт 2) продавать это другим.

Агентские код ревьюеры – это один из блоков такой фабрики, я и исследовал, какие существуют опции. Полигон для тестов – мои коллеги и их отзывы, исторические PR-ы с ревизиями, чтобы делать офлайн эвалы.

Начал я с коробчных решений. На слуху был Code Rabbit, шустрый грейдер, хорошо советовал на уровне файлов, отлавливая очевидный слоп. Но в общем-то на этом и все. Более сложные архитектурные вопросы он полностью игнорировал. Еще одна подобная штука - это Qodo, у них была интеграция с разными агентскими файлами (cursor rules, agents.md), но завести адекватно так и не смог

Другое коробочное решение – это Code Review от Claude Code. Вот это было прям хорошо: обшираная кастомизация (REVIEW.md для своих пожеланий, настраиваемые проверки для конкретного репозитория, калибровка severity). Работало правда как будто не обоснованно медленно, иногда ревьюер уходил в долгое изучения репозитория; крошечные изменения могли занимать 30 минут. В итоге очень большой расход токенов + лок ин на модели антропика. Запустить Claude Code + свои скиллы для ревью тоже пробовал, но получалось заметно хуже.

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

Но писать c нуля для пилота мне не пришлось. Арсений, автор @partially_unsupervised в марте выложил в опенсоурс nitpicker, и быстро довел его до крайне полезной штуки. Большая мобильность, можно запускать не только на PR, но и просто на репе + интересующих файлах, чтобы мониторить состояние кодовой базы. Быстро я приблизился к качеству ревью от антропиков за счет запусков нескольких nitpicker-ов под разные цели, сделав при этом заметно быстрее.

По итогу всех экспериментов на живых PR-ах получилась система с высокой полнотой. Ревьюер регулярно предлагал правки, которые разработчики считали полезными. Но на одно хорошее срабатывание приходилось много ложных, такой шум регулярно раздражал кожаных ревьюеров.

Что из моих поделок доехало до продукта уже не знаю, но Tessl недавно выпустил Tessl Agent, первая версия фабрики.

В мире Loop Engineering-а, где агент сам занимается эволюцией кодовой базы human review уже не имеет значения. А вот возможны ли такие фабрики в принципе – вопрос открытый. Среди стартаперов уже есть хайповые скептики. Посмотрите свежий доклад Harness Engineering is not Enough: Why Software Factories Fail если интересно.
8🔥30👍864🎉3🆒1
Это я интересно на новое место вышел.

Только пришел и сразу переезд в новый офис.

Сочный вид на город и центральный вокзал с террасы на крыше.

Еще и набор лего подарили. Воспроизведение культовой партии AlphaGo против Lee Sedol, где машина сделала тот самый ход 37.

Если кто не смотрел документальный фильм про альфа го, то к просмотру обязательно. Драма уровня праймового Нолана.

Некоторые место работы выбирают под впечатлением от увиденного.
1065🔥35👍94👏1🆒1
Небольшой анекдот-история, чтобы задать правильный ритм на неделю. А кому и настроение поднять

Наблюдал я как-то следующую ситуацию. Была у компании умная модель. И ее через кастомизированные харнессы (system prompts + тулы + конеткст) адаптировали к разным прикладным доменам.

Одна из задач была помочь оптмизировать работу фиансовых аналитиков. Техническая команда быстро собрала агентскую обвязку и добавила разных профильных тулов. Среди прочих были и более классические: bash с файловой системой и web_search

Чтобы померить качество своего агента, команда взяля набор открытых публичных бенчмарков, которые пересекались с реальными приложениями хотя бы на уровне инструментов.

Сделали прогоны. На каждый бенчмарк по 5 попыток решить задачу - все честно и с стат значимостью. Бэйзлайны других агентов/моделей гонять не стали – взяли открытые цифры. Получалась SOTA! На каждом бенчмарке! Где-то 15%, где-то и все 30%. Кто следит за лабами, тот знает всю эту кухню бенчмаксинга.

Большие цифры никого не смущали. Был проделан быстрый human expert анализ траекторий агентов на небольшом подмножестве сэмплов из каждого бенчмарка. Все клеилось. Агент просто хорош.

Стали готовить презентации, рисовать те самые заветные bar charts, показывая в каком далеком космосе новый агент.

Но все-таки бывалых инженеров что-то насторожило. Проделали еще один инженерный анализ. Выяснилось, что один из инструментов, web_search, так мощно работал, что когда агент решал его использовать, то в выдаче регулярно оказывались ссылки на...исходники бенчмарков! либо на гитхаб репозиторий, либо на hugging face, либо куда-то еще. Бенчи то опенсоурсные и все ответы лежат в открытом доступе! Стоит добавить, что не каждый поисковый движок такой сильный, чтобы глубоко индексировать интернет

Обнаружить такое было и правда не тривиально (без некоторых проверок на уровне эвала), потому что модель по-умному читерила. Понимала, что нашла ответ, но якобы проверяла себя, сначала «честно» пытаясь решить задачу, используя все валидные инструменты, а при не удаче, просто копируя ответ. Так траектории получались достаточно реалистичными.

Презентации свернули. Продакты краснели от негодования. Молодые рисерчеры краснели еще сильнее. Бывалые соколы оправдывали свое призвание бывалых.

Баги устранили, определенные веб домены были добавлены в исключения, агенту в системном пропмтпе запретели лазить по некоторым сайтам, а в рубрики валидаторов добавили проверку на рассуждения. Эксперимент был перезапущен.

Цифры стали скромнее. SOTA испарилась. Но на некоторых бенчах результаты все равно радовали глаз.

Проверйте результаты, вставляйте все возможные проверки, чтобы отловить читерство.
👍43😁1088🤣6🆒2👏1
🏎 Пост для для любителей контестов.

Цель конкурса: разработать систему, которая передает поток данных от одного источника нескольким получателям с минимальной задержкой. Добиться низкой задержки в среднем или на медиане можно достаточно стандартными приемами. А вот хардовая часть – сделать так, чтобы на высоких квантилях и под нагрузкой задержка ухудшалась минимально, даже когда растут объем передаваемых данных и количество получателей. В общем оптимизировать P99 (по своему опыту работы с low latency аудио моделями знаю как это тяжело).

Конкурс проводит Spectral::Technologies - команда занимается высокочастотным трейдингом (HFT), торгует на рынках по всему миру своими стратегиями. Чтобы чуть лучше дать понять, чем занимаются их инженеры – открыли одну из задач, которую решали сами, в формате соревнования.

Из прикольного. Вместе с участниками задачу будет решать и Claude Code. Его решение будет находиться в публичном доступе. Можно использовать как бэйзлайн и источник для вдохновения. Recursive Self-Improvement тема горячая, поэтому хорошая площадка для экспериментов по дизайну таких агентов. Экспертиза по распределенным сетям и прокачанный C++ тоже явно не помешают.

Оценивать будут распределение задержки, масштабируемость, корректность и воспроизводимость решения.

🏆 Бонусом хорошие призовые (участие индивидуально):
1 место – 6 000 USD gross
2 место – 3 600 USD gross
3 место – 2 400 USD gross

Авторам лучших работ – и не только участникам из топ-3 – предложат сокращенный трек найма на позиции C++ Software Engineer или AI Software Engineer. Платят ребята очень хорошо, вилки публичные (ссылка на блог на codeforces)

Дедлайн конкурса – 30 августа, 23:59 GMT+3
Регистрация и доступ к задаче через бота компании – @spectral_challenge_bot
9🔥11🏆73🍓2🌭1💋1
К слову о конкурсах. И почему в них круто участвовать.

Расскажу свою историю.

В 2018 году я учился на третьем курсе универа по компьютерной специальности. Мне точно нравилась идея карьеры в it, но чем именно я буду заниматься, толком не знал. К продакшн разработке c c# / java душа точно не лежала.

В свободное время я заглядывался на машинное обучение. К тому моменту уже прошел легендарный курс от ODS (Юра, привет!) и посматривал лекции на Coursera в специализации от МФТИ (какие же были времена!)

Очень нравилось как математические концепты трансформируются в какие-то обучающие алгоритмы, fit, predict, вжух вжух и можно предсказывать рейтинг фильма!

Тогда я точно решил, что буду стремиться попасть на какую-нибудь работу, где можно будет пощупать этот ML вживую и понять, мое или нет. Нужна была хоть какая-то практика, чтобы создать видимость опыта. И я стал смотреть на конкурсы. Но начать участвовать вот так с ходу было тяжело: ничего непонятно и страшно.

Мне очень повезло, что в этом же году проходил курс DMIA – бесплатной онлайн программы по анализу данных от Виктора Кантора. Я выбрал трек "Соревнования по Машинному Обучению", лекции вел Дмитрий Гущин (Дима, привет!), рассказывая разные трюки построения сильных ансамблей. А домашками были реальные конкурсы! Тот факт, что участвуешь не один, есть чат, где можно позадавать вопросы или почитать идей очень помогал побороть страх первого сабмита.

Одним из конкурсов было соревнование от Яндекса на их платформе для контестов. Если память не изменяет, то задача была от команды Алисы на ранжирование ответов модели (да, да, тогда до генеративного ИИ было еще далеко!). В моем арсенале навыков были только линейные модели на tf-idf, деревья решений, а также слабенький ноут. Нейронные сети, word2vec и нечто из обсуждений под названием DSSM были темным лесом. Поэтому, естественно, до высоких мест мне было далеко.

Я приземлился в районе 60 места. Это было немного, но это была честная работа. Я пыхтел над своими решениями и вкладывал весь скилл в подбор параметров на кросс-валидации. И всем кто финишировал в диапазоне выше определенного места дарили памятные сувениры. В том году это было поло с красивой эмблемой Контеста! В каком же восторге я был, что получилось что-то выиграть! Потом довольный ходил еще несколько лет в этом поло пока оно не стало совсем мало.

После конкурса меня прям потянуло в NLP и я стал еще активнее смотреть курсы, читать теорию и интересоваться темой. А первые стажировки оказалось найти не так уж и сложно. Той самой истории про мое решение с конкурса + что бы я сейчас сделал по-другому слихвой хватилона собеседованиях в тот же яндекс в том же самом году. Правда там я так и не поработал, выбрав тем летом стажировку в СКБ Контуре, где уже познакомился с кластеризациями и потрогал RNN-ы.
39🆒9👍72🔥2🥴1🤝1
По этикету, уходя из хорошего места - найди хорошую замену.
Поэтому пост с вакансией

Компания: Tessl, ранний стартап, подняли $125M
Роль: Research Engineer, ищут middle+ / senior / senior+
Компенсация: £150K-£230K base salary, сверху много опционов, тут уже как получится договориться
Локация: Лондон, спонсируют рабочую визу.

Чем предстоит заниматься: компания только ищет свой market fit, так что предстоит примерить много ролей: и кучу пилотов делать, и на созвоны с клиентами ходить, и выступать на разных ивентах по всему миру, рассказывая про всякие интересные результаты. Примеры того, чем я занимался: 1) писал статью про то, как делать эвалы agentic skills (приняли на KDD 2026) 2) пилил автономных код ревьюеров 3) ходил на подскаты рассказывать про бенчмарки. Сейчас команда сильно инвестирует в software dark factories и в инструменты для их создания

Кто подойдет: Сильные ML-щики, AI инженеры, Data-инженеры / SWE инженеры с сильным ML бэкграундом (понимать как устроен цикл разработки моделей, эвалов, деплоя агентов).

Процесс интервью: 1) Скрин с hr-ом на мотивацию 2) take home на 3-5 часов - дают кредитов на любимого агента и ждут, что все решение сделает агент (под вашим руководством) 3) он-сайт с live coding-ом (агенты разрешены), секция на ML Design 4) бихейвы с лидершипом и фаундером
Важно: По предыдущему опыту, команда любит проводить он-сайт именно вживую, с ремоут кандидатами часто были проблемы. Очень желательно иметь возможность приехать в лондон для собеса. Если большая звезда, то не будет проблем и онлайн думаю.

⏹️Как податсья: На сайте с вакансиями. Либо написать мне в личку (контакт в профиле канала) - тогда порекомендую команде напрямую (у меня осталось много опционов, поэтому замотивирован найти сильных ребят 😎)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1862💅2