max.sh – Telegram
max.sh
2.34K subscribers
70 photos
6 videos
95 links
Карьера, образование и исследования в мире AI через призму собственного опыта.


Канал ведет Макс Шапошников, ex Applied Scientist в FAANG. Профессионально ловлю CUDA OOM.

Cвязь в тг - @PorcelainFox
Linkedin - https://www.linkedin.com/in/maxshapp
Download Telegram
Сегодня в бразовательном карьерном посте поделюсь каналом faang_me.

Канал ведет Вика Бородина. Рекомендую, потому что сам давно слежу за ее контентом. У Вики довольно большой Ютуб Канал, где она берет интервью у разных интересных людей, работающих над интересными вещами в очень интересных местах. Здесь и истории стаффоф, и принципалов, и сеньоров, и мидлов, и их путь в разных зарубежных компаниях. Когда был студентом второго курса баклавриата, то рассказы ребят из Lyft, Нетфликса, Амазона и других мест хорошо мотивировали. Забавно, что недавно вышло интервью с одним из моих коллег про запуск Alexa+ (удалось поучаствовать в разработке лично, писал здесь)

Сейчас Вика запускает сообщество с общим чатом участников, вебинарами с экспертами, групповыми практиками, English speaking клубом и многими другими активностями, которые могут помочь вырасти в карьере, деньгах, опыте и нетворке IT-специалистам.

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

#карьера #образование
👍96👏2🔥1🤡1
🔊 Chatterbox TTS —Yet Another Opensource TTS SoTA

Компания resemble.ai выложили в опенсоурс Chatterbox TTS. 0.5B модель на основе LLama3 backbone, обучена на 0.5M часов чистых данных. Данные высокого качества и разной природы. Модель поддерживает контроль экспрессивности синтеза через гипер-параметры (выкручивание exaggeration приводит к ускорению речи, понижение — к большей драме).

Репортят latency в 200ms, что делает модель довольно удобной для интерактивных голосовых приложений, real time ассистентов.

Наконец, пишут, что модель - SoTA. За бейзлайн берут решение от 11Labs и сообщают, что в side-by-side Chatterbox TTS strongly preffered. К слову, впервые вижу, что честно выкладывают все детали evaluation репорта и дают на него ссылку. A/B Тест слишком скромный (больше выглядит как черри пик честно), по 8 сэмплов на систему. В тесте просят асессоров оценить zero-shot сэмплы длиной от 7 до 20 секунд на предмет Naturalness и общего качества.

Попробовал в Gradio на HF. Нравится, что хорошо берет дыхание и паузы. Клонирование тембра с дефолтными настройками на моем голосе не очень. Скорее сказал бы, что это плохой voice clone. У Llasa-3B из опенсоурсных гораздо лучше. На реддите пишут, что при некоторых значениях параметров модель сходит с ума.

Cводка:

🔘Лицензия - MIT
🔘GitHub - тут
🔘Веса - тут
🔘Онлайн Демо поиграться самому - тут
🔘Реддит тред с мнениями по модели - тут
🔘Языки - пока только английский, обещают добавить файн-тюн для других языков в скором времени

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥654👏1🤗1
Модель с контекстом 100M токенов от стартапа Magic 🔮

Сегодня новых историй от подписчиков про собесы нет (а форма есть здесь), поэтому рассказываю историю сам.

Речь ппойдет про стартап magic.dev. По описанию стартап занимается:
frontier code models to automate software engineering and research

Cтартапов с таким описанием наберется куча. А вот то, что за вторую половину 2024 года, компания в двадцать с лишним человек подняла примерно полмиллиарда долларов инвестиций (цифры немного разнятся, но источники TechCrunch и блог самой компании) от разных инвесторов и фондов (среди них и Nvidia, и Google) — это интересно.

Наверное, ребята делают что-то большое и прорывное. И судя по блогу компании — это действительно так. В сентябре прошлого года анонсировали, что обучили первую модель с длиной контекста 100M токенов (почитать немного подробностей можно тут, но если коротко то используют reasoning над хэшами).

В демо делают упор на способность модели без дополнительных инструментов, RAG-ов и прочего агентного скаффолдинга (что это, разбираю тут), только за счет того, что в контекст подается весь исходный код GUI фрэймворка, написать интерфейс для... калькулятора.

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

И вот после этого анонса следует новость — magic.dev коллаборируется с Google Cloud, чтобы построить мегакластер на кучу тысяч H100 GPU, чтобы обучать вторую итерацию моделей.

Дальше новостей вроде как нет. Тишина.

Но на самом деле они очень активно нанимают. Недавно со мной связывался рекрутер. Предлагают разнообразные роли: от рисерчера до performance инженера на оптимизацию CUDA kernel-ов. Помогают с релокацией в Штаты (SF, New York). Так как мне сейчас географию менять не хочется, то я отказался. А вот мой хороший коллега, с огромным опытом в оптимизации моделей и 14 годами опыта с железом (участвовал в разработке чипов Inferentia 1 и 2 для AWS) решил, что это может быть новым вызовом. И начал процесс.

Ниже то, что я запомнил из его рассказа про интервью:

🔘 Нанимают на роль Software Engineer - Supercomputing Platform & Infrastructure - короче говоря скейлить и учить модели на огромных кластерах
🔘Техчническое интервью с бывшим лидом из OpenAI. Весь разговор был построен вокруг темы параллелизации вычислений: почему FSDP плох, в чем tensor parallelism имеет недостатки, как реализовывать Pipeline Parallelism. По отзыву, довольно глубокая беседа о том, что важно на практике.
🔘Home work assignment. Дали доступ к своей кодовой базе и кластеру на несколько GPU. В коде намеренно оставили разные несовершенства: от неэффективностей в использовании торча до выбора неэффективных кернелов. Так как пишут свои кастомные кернелы, то дали доступ еще и к своей библиотеке, где были спрятаны самые большие боттлнеки. Коллега говорит, что словил чистый кайф от домашки и не заметил, как потратил на ее решение 30 часов (то есть буквально решал всю неделю, бесплатно).
🔘Виртуальный онсайт с разбором домашки. Так же к онсайту просили сделать разбор актуальных работ по теме long context и подготовить презентацию.
🔘Дальше, судя по рассказу, вроде бы были готовы двинуться к офферу. Но как говорит коллега, предложили не очень убедительный total comp, и если бы он переезжал из Лондона в Сиэттл с Амазоном по внутреннему трансферу, то было бы выгоднее. Укажу, что в вакансии пишут, что вилка на такого инженера $100K - $550K и сверху equity.

Такая пятничная история. От меня следующие мысли:

1) Про параллелизм и скелйинг моделей можно хорошо послушать в свежем курсе по LLM от Стэнфорда в лекции тут

2) Компания мне кажется мутной. Cмотрю на фаундеров и не доверяю им. Но кто я такой, чтобы судить, если вливают столько денег, может что-то там и есть.

3) Очень нравится, как устроен найм в стартапы: глубокие технические разговоры, домашки, через которые можно прокачать свои навыки. Еще одна мотивация для меня дописать лонгрид про Детали интервью в стартапы и почему стоит идти в них поработать 🔥

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥12👍51🐳1
🏝 Автор в отпуске

Исследую Национальный парк Brecon Beacons — недалеко от Кардиффа, Уэльс.

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

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
36👍11🤩7👏1🆒1
🧑‍💻 Mistral Code - AI-powered coding assistant

Блогпост

Пару недель назад Mistral выложили в опенсоурс модель Devstral адаптированную под кодинг агентов (писал тут), а сегодня анонсируют ассистента.

Выглядит это как расширение, которое можно добавить в VSCode или JetBrains IDE. Пока что private beta, поэтому самим потрогать нельзя.

Само расширение разработано на основе опен-соурсного проекта Continue и представляет собой UI, в котором можно общаться с AI агентом и просить его что-то закодить за вас. Поддерживается чат, поиск по коду, и много других полезных tools для агентов.

В общем-то ничего нового. Тот же Cursor или Windsurf.

Но. Выпуск Mistral Code является финальным кусочком в мозаике инструментов для coding ассисентов от Мистраля. Теперь у них есть вся линейка — и свой copilot для автокомплита Сodestral, и эмбеддинг модель для rag-ов и семантических поисков Codestral Embed, и модель для кодинга Devstral, ну и наконец UI, чтобы все это подружить и сделать самого ассистента — Mistral Code.

Все инструменты от одного провайдера, да еще и опенсуорсные, так, что можно развернуть у себя в облаке, оn-prem, полностью на своем железе, без риска утечки чувствительных данных третьим лицам — то, как Mistral продает и позиционирует свои инструменты на рынке AI помощников для кода. И это действительно веский аргумент для крупных компаний, потому что они могут развернуть у себя всю необходимую инфру.

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

Выглядит сильно. Подождем официального релиза. И больше новостей про кастомеров.

___

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


@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👾31🔥1🐳1🎃1
Media is too big
VIEW IN TELEGRAM
🎮 Всем поступающим в ШАД посвящается ...

Открываем видео и слушаем ☺️

Июнь — это время сессии для студентов в универе. Но для некоторых еще и время вступительных экзаменов в Школу Анализа Данных.

Я тут недавно посмотрел примеры задач с онлайн экзамена (для интересующихся — ссылка тут), выглядит, мягко говоря, жестко. Принцип ШАДа:

Будет сложно, вам понравится

реализуется, по полной. Я поступал в 2019 году и задачи были...ну кажется на порядок легче. Причина, конечно понятна — тогда не было всех этих чатов гпт.

Остается только пожелать всемь сдающим удачи и успехов! 🔥

Для мотивации прикерпляю AI Generated аудио трек для поступающих.

💬 В комментариях оставлю еще несколько других обработкок и обложек. Инструкция, как сделать самому, тоже в комментах.

#проекты

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥167👍41👎1💯1🆒1
Как работает Cursor ?

В блоге Programmatic Engineer вышел классный технический разбор про начинку Курсора. Автора блога, вроде как, пообщался лично с техническим кофаундером стартапа Anysphere (оценка $10B) и расписал по частям интересные детали: от стека до скейла. Почитать тут.

В бесплатной версии доступна только половина статьи (а за фулл платить 10$ в месяц на подписку 🥲), но и в таком варианте полно интересных моментов. Читается легко, как будто старая добрая книга Alex Xu по System Design. Самое то, если у вас вдруг собес в подобную компанию AI кодогенерации.

Работает примерно так.

1️⃣Проект пользователя сначала индексируется. Это значит следующее.

🔘Во-первых, каждый файл разбивается на кусочки (чанки) кода небольшого размера. Чанки улетают на сервер, где запускается эмбеддер модель компании. Модель эмбеддит чанки в вектора для последующего векторного поиска. Курсор говорит, что не хранит код на своих серверах, только эмбеддинги (но кто знает, что там происходит, код то вы свой все равно уже отправили 🙂). Извлечение эмбеддингов - довольно ресурснозатратный процесс, поэтому компания держит кластер GPU для инференса (думаю, что это капля в море по сравнению с стоимостью инференса LLM-ов).

Чтобы не просрать слить свои ключи и другую чувстивтельную инфу, обязательно заполняйте .gitignore и .cursorignore, чтобы исключить какие-то ресурсы из индексации


🔘Во-вторых, курсор так же хранит структуру проекта пользователя в виде дерева. Конкретно используется Merkle Tree - дерево, где каждый лист - это хэш файла, а узлы - комбинация хэшей узлов-детей. Такое дерево хранится как локально, так и на серверах Курсора, и каждый раз, когда делается изменение в коде пользователя, локальные хэши сверяются с теми, что на сервере, и если есть различие, то они пересчитываются, а следовательно и обновляются некоторые эмбеддинги чанков.


2️⃣Теперь, когда индекс построен, можно пользоваться всеми фичами. Например, становится доступным чат с Курсором, где вы можете попросить курсор объяснить, как работает какая-то функция в вашем коде или попросить Курсор что-нибудь реализовать. В этом случае Курсор просканирует индекс, найдет релевантные ID чанков кода с помощью векторного поиска, заберет исходнй код чанков с вашего проекта, и пойдет в LLM просить рассуждать и генерировать план действий. Ну а дальше все это интерактивно будет отображаться в IDE. Курсор может ваш код и не хранит, а вот LLM-провайдеры – может быть.

3️⃣ Автокомплит, или tab-подсказки (это когда вы пишите комментарий или сигнатуру функции, а Курсор предлагает ее реализацию), работает чуть проще из-за чувствительности к latency. Здесь просто локальный контекст уходит в LLM и та генерирует автокомплит.

4️⃣ По стеку используется Turbopuffer для векторного хранилища эмбеддингов чанков и дерева файловой системы. Rust для высоконагруженной части на сервере, TypeScript для клиента IDE.

Другие цифры и детали можно найти в самом блоге. У автора еще выходит регулярно подкаст с техническими людьми так же на тему систем дизайна – рекомендую.

Happy Learning!

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
27👍176🔥4😁1🆒1😎1
Senior ML Engineer в Waymo, Perception Team, California

Сегодня в отзывах на собесы опыт ML инженера в стартап Waymo – команда делает self-driving cars. Главное не спутать их с дургим стартапом про беспилотные автомобили Wayve.

Авторская орфография сохранена

➡️Ник автора в тг - Анонимно
➡️ Название компании - Waymo, команда Perception

➡️Расскажите про свой бэкграунд - МЛ инженер в стартапе, занимаюсь анализом и разметкой видео
➡️Как подались на вакансию - рекрутер через LinkedIn

🔥 Субъективно Сложность процесса по 10 бальной шкале - 8

➡️Когда начали процесс - 01/25
➡️Когда закончили процесс - 03/25

➡️ Позиция, на которую собеседовались - Senior Machine Learning Engineer
➡️Грейд на который собеседовались (если известно) -Senior
➡️Локация вакансии - Mountain View, California (гибридный формат, я уже в штатах, можно работать в целом удаленно по Америке)

🔥 Расскажите про этапы собеседований

Процесс довольно стандартный, но с рядом своих фишек.

1) Recruiter screen (30 мин): типичный созвон с рекрутером. Обсудили мой бэкграунд, что делаю, какие направления интересны. Немного рассказали про Perception команду и чем она занимается (обработка данных с сенсоров, 3D object detection, motion forecasting). Также сразу обозначили, что важно уметь работать с продовыми пайплайнами, не только с ресерчем. Сразу обговорили зарплатные вилки (отписал ниже)

2) Technical Phone Screen (45 мин): дали довольно нетривиальную задачу на динамическое программирование. Нужно было шейрить экран и писать в своем блокноте / IDE. Я писал в колабе. Интервьюер никак не помогал, сложилось ощущение, что сам не знает как решить задачу.

3) Домашнее задание: дали задачу по object tracking видео и статью для реализаии. Нужно было:
- придумать baseline трекер (например, с использованием IoU)
- оценить качество (precision, recall, ID switches и т.д.)
- реализовать пейпер
- все это задокументировать и прислать jupyter ноутбук

Onsite (4 секции по 45 мин):

4) System Design: дизайн пайплайна для inference perception модели на автономной машине в реал-тайме. Вопросы про latency, batching, fault tolerance, A/B тестирование моделей. Местами уводили в детали вплоть до GRPC, protobufs и интеграции с hardware.

5) ML-focused coding: нужно было реализовать модуль для обработки lidar-точек и агрегации по временным фреймам. Часть кода была дана, часть — нужно писать с нуля. Плюс надо было оптимизировать память, потому что lidar-данные могут быть большими. Явный уклон в прототипирование, и это понравилось.

6) ML knowledge & debugging: дали лог модели, обученной на object detection. Нужно было по логам и распределениям метрик понять, что “пошло не так”. Также обсуждали выбор лосса, augmentations, data imbalance.

7) Behavioural: классическое интервью по фреймворку STAR. Много спрашивали про конфликты, работу с DS и PM, принятие решений в условиях неопределенности. Спрашивали кейсы, когда я был не согласен с командой.

Через пару дней после онсайта пришел отказ с объяснением, что команда ищет инженера с другим профилем. Что за профиль никто не объяснил. HR-ы после отказа слились с переписки.

Что понравилось:
- Команда, судя по вопросам, делает интересные вещи в области 3D perception.

Что не понравилось:
- Домашка слишком объемная
- В некоторых секциях было ощущение, что интервьюерам все равно


➡️Итоги собеседования: отказ после онсайта

➡️Информация про Total Compensation: base $200-220k + target bonus ~15% + $250k в RSU (vesting 4 года, по 25% в год).

#интервью

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1712😢8👍42🤔1
Мульти-агентные системы от Антропика

Инженерный блог 🖥 пополнился лонг-ридом про мульти-агентную (multi-agent) поисковую систему Антропика.

Полный текст тут. В этот раз без гулбоких технических подробностей, метрик или конкретных примеров.

TL;DR древний как горы – прототип завести легко, а вот довести до прода трудно. Большинство AI фреймворков / стартапов умирает на версии v0.9.9999, только единицы доходят до v1.0

Если по верхам, то так:

⚫️Какую проблему решают? Вообще говоря самую общую – ответить на вопрос пользователя. Вопрос может подразумевать нетривиальный рисерч по большому количеству источников с последующим анализом, суммаризацией, графиками, написанием кода и тому подобное. Популярные кластера запросов – Assist with academic research, Develop software systems или Develop profitable investment systems 😉

⚫️Зачем так много агентов? Сам по себе агент медленный: он выполняет действия последовательно. Так растет время ожидания. Мульти-агентное решение позволяет распаралелить задачу (где это возможно – про это ниже), что гораздо лучше скейлится на большом количестве запросов. Другая причина в том, что так можно эффективнее делать explore – анализировать параллельно много типов источников, ища решение в разных местах; потом это сливать все в одно место, делать общий вывод, и запускать новую итерацию поиска в ширину агентами.

⚫️Архитектура. В центре такой мульти-агентной системы находится главный агент (Lead Agent). Он координиурет все решения и выбирает, как декомпозировать исходную задачу на части. А потом отдает подзадачи агентам-исполнителям (subagents). Те варятся в своей подзадаче и возвращаются с репортом к главному. Тот думает, что делать дальше. К агентам-исполнителям естественно в комплекте идут поисковые инструменты, доступ к MCP-серверам и возможность подумать над планом прежде чем что-то решать (interlevaed thinking). Так же есть глобальная память, контролируемая Lead-агентом. Картинка к посту.

⚫️Best Prompting Practises. Большая секция посвящена советам про промпты. Из интересного:

(1) Добавляют эвристики, чтобы помочь Lead агенту оценить сложность задачи и сколько под-агентов нужно для ее решения. Например, для поиска фактов достаточно 1 агента и 3-10 tool calls, тогда как сравнение источников между собой может потребовать гораздо больше агентов и вызовов инструментов.

(2) Еще больше эвристик про формулирование задач для подагентов. а) формат данных б) четкие границы задачи с) отбор MCP-инструментов с качественным API.

(3) Параллеизация там, где только можно. Для этого используют две схемы: a) больше под-агентов b) каждый под-агент параллельно запускает по несколько тулзов. Говорят что бустит всю систему:
These changes cut research time by up to 90% for complex queries, allowing Research to do more work in minutes instead of hours while covering more information than other systems.


Из не интересного - возможность долго рассуждать (extended thinking) для Lead agent ведет к лучшим результатам. Ну еще бы они написали иначе – чем болше токенов сожжете, тем больше заработает антропик 🤓🤵

⚫️Сложности.
(1) Накопительный эффект ошибок. Агенты stateful, поэтому неверные решения в начале могут сильно повлиять на дальнейшую ситуацию. Эта мысль идет через всю статью, поэтому явные механизмы валидации решений агента, мониторинг выполнения плана и корректировка - это ключ к стабильной системе.
(2) Сжигаемое количество токенов (следовательно и цена) – в 15x больше чем при обычном чате.
self-correction, когда агент пытается сам исправиться, экономит ресурсы, но все равно усложняет систему
(3) Параллелизация не везде легко достигается. Например в кодогенерации не обязательно помогает – редактирование кода в существующей кодовой базе более последовательный процесс, чем стандартный поиск.

➡️В комментариях оставил кусочек про Evaluations

Happy Learning !

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
👍178🔥73😭1
Опен Соурсный ответ Claude Code

Компания All Hands AI релизунла CLI инструмент для кодинга - OpenHands CLI.

Твит с релизом.

Поставить можно через pip install openhands-ai.

Функционал аналогичен Claude Code – агент может редактировать код, запускать команды, делать навигацию по файловой системе, ходить в веб, делать API вызовы, взаимодействовать с MCP серверами, работать в автономном режиме.

При желании можно развернуть свою LLM и подключить ее, а не провайдера.

Лицензия MIT. Все есть на гитхабе. Можно расширить под свои нужды как хочется.

Еще добавили микро гайд про Prompting Best Practises для кодинг агентов. Читать тут

TL;DR Нужно быть как можно конкретным и локальным в запросах к агенту, чтобы он ничего не додумывал. Хотите пофиксить баг – локализуйте файл и строчку кода, где возникает проблема или дайте указатель на функцию и опишите ожидаемое поведение:
Fix the TypeError in frontend/src/components/UserProfile.tsx occurring on line 42. The error suggests we’re trying to access a property of undefined.


В анонсе пишут, что Has top accuracy (similar to Claude Code). Буду тестировать в ближайшее время.

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5💯32
💼 Career Update - ушел из Фаанга в ранний стартап

Совсем недавно вышел на новое место работы. Решил поискать что-то кардинально новое. И в плане содержания работы, и в плане размера компании. Отталкивался от того, что если сейчас не попробую, то еще 1-2 года в понятном биг техе и все – убедить себя выйти из зоны комфорта, как финансово, так и в плане культуры рабочих процессов будет очень сложно.

В стартапах я никогда прежде не работал. В целом в компаниях без четкого продуктового виденья (или как принятно говорить market fit-а) тоже. Поэтому было интересно "умеренно" рискнуть.

В итоге присоединился в качестве первого рисерчера к series A стартапу Tessl. Задумка компании в слогане на лэндинге:
You make the spec, AI codes & maintains


На данный момент компания хочет прийти к будущему, в котором больше не нужно писать код (как неожиданно). Вместо этого есть спецификация (spec), такой исчерпывающий дизайн док, в котором описаны все требования (архитектура, язык, стек, фреймворки, API) к продукту или сервису. И на основе этого документа AI Engine напишет весь код самостоятельно. Ну а дальше, когда появится необходимость в новой фиче, взаимодействие будет через тот же документ – AI сделает весь maintenance. spec писать самому с нуля не надо – LLM-ы будут помогать.

Концепция спецификации сейчас регулярно проскакивает у многих компаний как один из векторов развития AI кодогенерации. На недавнем саммите Open AI выступали c точно такой же мотивацией: The new code: Specs, write once, run everywhere и несколько раз подчеркивали A written specification aligns humans.

Интерес к генерации кода с помощью LLM сильно нагрелся в последние год-полтора. В целом все стартапы и крупные игроки так или иначе делают "spec driven development" в том или ином виде. А большие сделки по типу поглощения Windsurf-а, или огромному раунду инвестиций в Cursor только разгоняют ажиотаж (и одновременно повышают тревожность🥲) дальше.

Так что да, решил покрутить рулетку и поиграть в стартапы – посмотрим что выйдет.

Принимая решения руководствовался такими факторами:

0) хочу для себя понять, где комфортнее: в ранних компаниях или больших
1) сильный фаундер (вырастил два Юникрона),
2) очень хорошие инвесторы и вера в проект ($25М seed и $100M round A)
3) сильная инженерная и продуктовая команда (чуть ли не треть людей ex-Гуглеры, от Principal инженеров до директоров)
4) рисерч команда (пока что я один, но скоро выйдут ребята из других фаангов, включая Мету и Дипмайнд)
5) новый домен, новая роль

В отдельном посте подробнее расскажу, как выбирал новое место.🫡

__

Пока работа над релизом первой версии продукта активно кипит, обязательно присоединяйтесь к waitlist-у, чтобы не пропустить.

Еще можете послушать подкаст. Да, у компании есть свой подкаст с разными AI фаундерами / интересными людьми! Слушать/смотреть тут. Я с удовольствием посмотрел выпуск с ко-фаундером 11Labs.

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥50👍1511🍾21
Сегодня в тему разборов научных статей рекомендую отличный пост из канала @datastorieslanguages про Visual Planning для LLM-ов.

Блог ведет Андрей, Senior ML Engineer в фаанге, работал в отечественных и зарубежных бигтехах, Kaggle Сompetition Master / Notebook Grandmaster.

В блоге много классных разборов, мыслей о карьере и просто интересных наблюдений – рекомендую)
6👍3🔥311
​​Visual Planning: Let's Think Only with Images

Авторы предлагают новый подход — Visual Planning, где планирование выполняется не через текст, а с помощью последовательностей изображений, что особенно эффективно для задач с пространственной и геометрической логикой. И разработали VPRL — reinforcement learning фреймворк, основанный на GRPO.

Результаты выглядят неплохо. Интересно, насколько хорошо это сработает для соревнования ARC?

Paper
Code

Мои обзоры:
Personal blog
Medium
Linkedin Pulse

#paperreview
11👍73
🔍AI Development Ecosystem Landscape

Собрали вместе с командой классификацию популярных AI инструментов для разработчиков. Вносим немного структуры в навигацию по рынку доступных решений.

Посмотреть можно тут

Выделили следующие базовые категории: Product (тулзы для no-code прототипирования типа Lovable), Code (все что полезно для продуктивности тех, кто пишет код), Terminal (для CLI решений), Devops, Quality Assurance и AI Engineering (про модели, MCP сервера и сэндбоксы для запуска агентов).

В каждой категории есть подкатегории.

Классификация будет обновляться.

Любой желающий может стать контрибьютором и добавить свой инструмент или порекомендовать правку к описанию. Инструкция тут.

#образование

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍53👨‍💻31
Senior SWE ML в Ⓜ️, Infra Team, London

Cовсем свежая история успеха (оффера) в команду ML инфраструктуры Ⓜ️ – Позиция для людей с опытом в машинном обучении и большим бэкграундом в разработке.

Авторская орфография сохранена

➡️Ник автора в тг - Анонимно
➡️ Название компании - Meta

➡️Расскажите про свой бэкграунд - ML Engineer в TikTok, Antispam & Integrity
➡️Как подались на вакансию - Referred by a friend

🔥 Субъективно Сложность процесса по 10 бальной шкале - 5

➡️Когда начали процесс - 03/25
➡️Когда закончили процесс - 05/25

➡️ Позиция, на которую собеседовались - SWE ML, SWE Infra
➡️Грейд на который собеседовались (если известно) -E5 (Senior роль, аналог L5 Гугл, L6 Амазон)
➡️Локация вакансии - London

🔥 Расскажите про этапы собеседований

Подавался на SWE ML

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

- Литкод 1
Два медиума +- из списка 100 задач с литкода в мету https://interviewsolver.com/interview-questions/meta

- Созвон с новым рекрутером
Созвон с рекрутером который назначает финальные собесы, рассказал еще раз про этапы и прислал материалы подготовиться, спросил нужно ли время на подготовку и когда поставить собеседования

- Финал день 1
Два медиума литкода на одном интервью и бихейв вопросы на 2м интервью. Спросили как решал конфликты с командой, про проекты с большим импактом над которыми работал, что и как я там делал, как вел проекты и общался с командой.

- Финал день 2
Два медиум литкода на одном интервью и ML System design на втором, попросили задизайнить систему рекомендаций мест вокруг куда можно было бы пойти типа трипэдвайзера. У меня нет опыта в рекомендациях поэтому получилось не очень, запутался с данными и метриками.

- Фидбэк с финала
Позвонил эйчар и сказал что все интервью прошел хорошо, кроме МЛ систем дизайна, на ML SWE меня брать не хотели, но он предложил пройти обычный систем дизайн и пойти на SWE Infra

- Обычный систем дизайн
Попросили сделать 1:1 мессенджер, поддержать онлайн статус, уведомления, без групповых чатов

- Фидбэк с систем дизайна
Позвонил эйчар, сказал что обычный систем дизайн я прошел хорошо и сказал что дают оффер на E5 SWE Infra, нужно дальше сматчится с командой

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

Что понравилось:
- Эйчар не торопил, можно было взять время подготовиться


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


➡️Итоги собеседования: У меня был другой оффер, я сказал об этом, и попросил больше, мета отказалась поднимать оффер и я пошел в другую компанию. Плюс не очень хотел заниматься тем же самым что и в предыдущем месте (Integrity)

💸Информация про Total Compensation: 100-110 gbp base, 300-350 usd RSU over 4 years, 0 sign on

🎤От автора канала: Недавно обсуждали что классический System Design для ML ролей вроде как убрали, но на SWE ML позиции он все-таки есть, думаю из-за специфики позиции. Сессия ML Design в этом отзыве очень напоминает историю отсюда. В остальном все как и всегда у Меты: очень-очень много литкода, большой фокус на скоростном решении алгоритмических задач и как-то совсем мало внимания опыту кандидата в рамках тех. интервью

#интервью

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
1510🔥6🥴31👍1👏1
🧑‍💻 Test Time Scaling for Code Generation

Раз уж пошел в стартап про кодогенерацию, то и статьи нужно читать и разбирать релевантные.

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

S∗: Test Time Scaling for Code Generation.

По факту адаптируют более общую идею из всем известной работы s1: Simple test-time scaling к домену кодогенерации.

Вся суть укладывается в одну картинку к посту. Дальше — детали:

1️⃣ Хотим генерировать код к некоторой задаче. Пусть есть доступный набор тестов (public tests), на которых можно тестировать программу. Есть предобученная модель, которая в целом может сгенерировать правильное решение, но всё-таки слишком стохастична, чтобы делать это с первой попытки. Хочется понять, как масштабировать доступный compute на инференсе, чтобы повысить качество генерируемых программ.

2️⃣ Начинаем с Parallel Branching — будем генерировать N программ одновременно. Очень понятный рабочий подход, более известный как Best-of-N.

3️⃣А теперь давайте добавим внутрь каждой ветки итеративный self-debugging. То есть модель сгенерировала код. Запускаем тесты. Какие-то из них падают. Используем это как фидбэк и просим модель поправить себя. Снова запускаем тесты — и так далее, в цикле M раз (пока есть бюджет). Это пример Sequential Scaling-а.

Шаги 2 и 3 вместе образуют Stage 1: Generation. Такая схема — это пример Hybrid Scaling-а, так как мы одновременно масштабируемся в обоих направлениях: в ширину (создаём много новых сэмплов) и в глубину (итеративно улучшаем существующие).

4️⃣После того как генерация отработала, у нас есть N версий кода, которые как-то работают на публичных тестах. Возможно, некоторые из них проходят все тесты. Появляется необходимость определить, какую версию кода выбрать в качестве финального ответа. Поэтому авторы вводят вторую стадию — Stage 2: Selection. Предлагается алгоритм:
a) кластеризуем все доступные сэмплы,
b) запускаем цикл по всем парам кластеров,
c) сэмплируем по одному решению из каждого кластера,
d) генерируем синтетические тесты для решений из двух кластеров,
e) запускаем эти тесты и добавляем +1 тому кластеру, который показывает лучший результат,
f) в качестве ответа выбираем кластер, набравший больше голосов, и из него сэмплируем финальное решение.

⚡️Дальше практические интересности:

Метод показывает существенно лучшие результаты, чем бейзлайны — обычный self-debugging и majority voting. Ablation studies подтверждают, что каждая фаза даёт вклад. Stage 2 в том виде, как у авторов, не всегда нужен.

Подход обобщается и отлично бустит все модели — как публичные, так и закрытые, включая reasoning-модели.

Температура сэмплирования играет значимую роль. Высокие значения приводят к деградации. Авторы выбрали 0.7 как оптимальное значение.

Итого: получаем очень простой фреймворк, который можно легко адаптировать под свою задачу и модифицировать в зависимости от бюджета и доступных инструментов для self-debugging-а или voting-а при выборе лучшего сэмпла. Опробовал сам — результаты хорошо совпадают. Много зон, где можно дальше улучшать.

#статья

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍651👏1🆒1