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
📎Phi-4-Multimodal - модель, которая может понимать картинки, речь и текст одновременно


1️⃣ Microsoft в начале марта выложили в открытый доступ серию моделей и поделились подробным техническим деталями в статье. Phi-4-Multimodal может одновременно обрабатывать картинки, текст и аудио. Релиз прошел совсем тихо и почти никто про эти модельки не говорит. На мой взгляд зря, получилось очень интересно.

2️⃣ Сначала сухие факты

⏺️Модель Phi-4-multimodal, лицензия MIT, веса на HF

⏺️На вход умеет принимать текст, речь или картинки - суммарный контекст 128,000 токенов. На выход текст (0.34 секунды до первого токена, throughput 26 t/s)

⏺️Размер 5.6B параметров, все в BF16, 3.8B из этих параметров идут от бэкбона Phi-4-mini, остальные параметры от обучаемых энкодеров для картинок и аудио, и LoRA адаптеров - об этом подробнее дальше.

⏺️На text-vision бенчмарках обходит Qwen2.5-VL-3B, Claude 3.5 Sonnet, and GPT 4o-mini

⏺️На vision-speech бенчмарках выше Gemini-2.0-Flash

⏺️В транскрипции речи в текст согласно репорту выше всех аналогов.

3️⃣ Подробнее про устройство модели.

Бэкбоун всего решения - 3.8B текстовая LLM Phi-4-mini. Ее тоже выложили и есть отдельная instruct версия под MIT лицензией. Модель очень шустрая и маленькая - отлично подходит для файн-тюнов на своих данных под конкретную задачу. Именно файн-тюнов. Из коробки few-shot prompting и обобщающие способности очень слабые - убедился в этом сам на своих бенчмарках по разным доменным задачам - до gpt 4o mini / claude 3.5 haiku и других mini версий как до луны - может поэтому релиз и прошел мимо.


4️⃣ Теперь про мультимодальность.

Аудио энкодится через Conformer модель (сверточная сеть + трансформер) и дополнительную проекцию пространство токенов базовой текстовой LLM. Изображения энкодятся через vision transformer SigLIP-400M и так же проекцию в пространство токенов текстовой модели. Таким образом, благодаря projection слоям все модальности можно представить в одном пространстве. Как показано на рисунке 1.

Наконец, чтобы все модальности “уживались” друг с другом, в трансформер слои Phi-4-mini добавлены LoRA адаптеры, один для аудио (460M), другой для картинок (370M). И в итоге forward на инференсе выглядит как последовательное применение базовых весов и адаптеров, показано на рисунке 2. Коротко Обучение происходит в несколько стадий: 1) обучение vision части 2) обучение аудио части 3) joint обучение на обеих модальностях.


5️⃣ В итоге получается элегантная модель, которая может и в понимание картинок, и в ASR, и в vision-to-audio understanding, и многие другие задачи вокруг этих модальностей. Да, обучение для каждой стадии непростое (много деталей есть в статье), и требует много данных, но инференс выглядит максимально бесшовным и нативным.

Плюс, такой подход позволяет распараллеливать рисерч команды в большой лабе, где люди работают над разными направлениями. Одна команда улучшает foundation model, тогда как другие накручивают свои модальности и и пользуются базовой моделью, как универсальным источником знания о мире. Как раз про движение в эту сторону, в контексте мультимодальности не только картинок и текста (так делают уже все), но и добавления аудио/речи, и микс этого всего, рассуждал недавно в подкасте ко-фаундер 11Labs здесь (кстати, офигенный выпуск)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍42🐳2🦄2👏1🤔1👨‍💻1😎1
Пятница, время нового поста с отзывами на собесы в интересные места. Сегодня делюсь опытом одного из подписчиков в очень горячей компании - Nvidia, на роль Performance Инженера.

Отзыв можно найти в посте ниже.

Почитал детали, офигел от сложности процесса. По описанию, почти все интервью специфичные и нужно прямо хорошо знать свое дело, чтобы успешно пройти раунды. Как я понял, многие вопросы построены вокруг оптимизаций вычислений (ну а как еще, нвидиа же продает видеокарты, чтобы учить большие модели, а роль про оптимизацию :D), поэтому нужно знать детали распределенного обучения, как устроены разные типы данных, как работать с CUDA, и в каких местах искать bottleneck-и пайплайнов.

А, ну и еще первый раз слышу про Hard Leetcode да еще и с задачей на тему DP на собеседовании. Это при том, что один из этапов собеса - объемная домашка. Что ж, процесс сложный, но думаю и награда в виде щедрого оффера того стоит.

У человека явно стальные нервы - начать собес в Августе 2024 и закончить в Январе 2025 🥲
Please open Telegram to view this post
VIEW IN TELEGRAM
8🍾5😎4👍3😱2
🤩 Performance Engineer в Nvidia, Munich

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

#интервью

Ник автора в тг - Анонимно

Название комании, можете указать ссылку или коротко описать что за место - Nvidia

Как подались на вакансию - Реферал

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


Когда начали процесс - Август 2024

Когда закончили процесс - Январь 2025


Позиция, на которую собеседовались - Performance Engineer (примечание от автора канала: согласно описанию роли, например здесь, эта роль про бенчмарки, профайлинг и анализ решений, которые разрабатывает Nvidia и поиск боттлнеков в них, то есть роль посередине между software командами, которые пишут сервисы для кастомеров и hardware, которые напрямую работают с железяками).

Грейд на который собеседовались (если известно) - IC4 (примечание от автора канала: расшифровывается как Individual Contributor L4, согласно таблице грейдов на levels.fyi это выше чем Senior, но и не Staff - что-то посередине. Если сравнивать с гуглом, то это на уровне L5 гугла - то есть Senior.)

Локация вакансии - Munich

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

1. Скрин с HM про мой бекграунд и позицию. Поговорили про мой опыт и их ожидания.

2. Технический скрин: кодинг c++, performance tuning, parallelism: TP, PP, etc.

3. Домашка: алгоритмы + параллелизация (примечание от автора канала: подозреваю, что домашка на реализацию чего-то на C++ и OpenMP)

4. Онсайт
- 4.1 PyTorch, про разные внутренности: память, autograd, устройство типов данных
- 4.2 Deep Learning / Quantization: популярные алгоритмы, трейдоффы между разными подходами
- 4.3 Distributed training
- 4.4 и 4.5 Leetcode (задачи уровня медиум, типа на обход графов и уровня хард на DP)


Итоги собеседования, например оффер или отказ, или что-то другое: Offer (принятый)

Информация про Total Compensation (если желаете): N/A (примечание от автора канала: возможно, что компенсация не указана, чтобы не шокировать всех 😄)
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾24🔥14👍8😎4👨‍💻2
💡 Фреймворк дня. typer - замена старому доброму argparse

Каждый питонист точно написал в своей жизни хотя бы одно CLI приложение. И наверняка для этого использовался старый добрый модуль argparse - встроенный тул для CLI нужд.

Мне всегда казалось, что argparse какой-то кривой, неинтуитивный, слишком избыточной (заставляя писать новую портянку для каждого нового скрипта, копируя, по большом счету один и тот же набор команд). Но пересесть на простую и комфортную альтернативу не получалось.

Наконец-то нашел тул, который решил запрос. Тестирую либу typer последние пару месяцев и очень доволен - все запросы покрывает. Может, так нравится, потому что typer - родственник FastAPI (есть кто-то, кто не любит этот фреймворк?) и в core контрибьюторах те же люди, или потому что реально вышло удобно и просто. Заонбордился за пару минут.

Посмотреть кучу примеров можно в официальной доке: https://typer.tiangolo.com/#run-the-upgraded-example

Совсем базовый пример может быть таким скриптом


import typer

from pathlib import Path

app = typer.Typer()

@app.command()
def annotate(
book: Path = typer.Argument(..., help="Path to the book file"),
num_jobs: int = typer.Option(1, help="Number of parallel jobs"),
):
print(f'Reading book stored under {book} and processing it with {num_jobs} jobs')

if __name__ == '__main__':
app()


Ну а дальше запускаем как обычно python3 demo_with_typer.py --help

Получаем красивый интерфейс как на картинке выше.


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

- Пишется все очень интуитивно
- Минимальное количество дублирования кода
- Можно писать произвольные вложенные парсеры, с командами и подкомандами
- Эстетически приятный интерфейс, который превращает даже самую стандартную и скучную оболочку во что-то цветное и футуристичное ⚡️
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍72🔥2👨‍💻2👌1🦄1😎1👾1
Нашел активно растущий авторский, довольно провокационный канал @get_rejected - делюсь находкой 💥

Посвящен деталям прохождения интервью в компании в РФ и на зарубежном рынке на различные инженерные позиции. Автор уже собрал 150+ разных отзывов c вилками и детаялми собесов. Мне очень откликается тема рассказов о том, как устроен найм и конкретные секции - то же стараюсь коллекционировать истории подписчиков в похожем формате

Но это только часть контента. На канале еще много потенциально полезной рефлексии на тему карьерного роста (советы о переговорах при получении оффера), совмещения двух работ (и можно ли в таком режиме вообще жить 😄 )
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6🔥3🎉2
Forwarded from Get Rejected
Наблюдаю что почти каждый день у меня появляются новые просмотры/репосты и реакции на старых постах. Количество просмотров бешенное.
Хотел бы немного подсветить о чем канал, чтобы как можно больше людей изучили рынок.
Канал посвящен прохождению интервью в различные компании в РФ и на зарубежном рынке.

На данный момент в канале предcтавлены ~150 интервью в различные компании:
1. Различный Big Tech: WB , Sber, SberHealth, СберТехнологии(Gigachat) , Яндекс , Яндекс Head , Ozon , МТС
2. Банки: Иннотех, Иннотех , Еще иннотех , Альфа Technical Leader , АК Барс
3. Различные компании: Газпром, RuTube
4. Зарубежные компании: Nebius (Яндекс), Qatar Insurance Company , Jetbrains , Jetbrains , Exness, Plata (Ex-tinkoff) , Salmon (ex-tinkoff Manila) ,
TON , Staking Facilities
И многие другие...

Так же для тех кто любит почитать:
1. Как зарабатывают 1 млн в найме обычные Senior'ы и Middle?
2. Теория больших денег или как выбивать огромные ЗП:
Часть 2 и Часть 3
3. Статистика по собеседованиям : Отклики и конвертация в собесы
4. Зарплаты в ИТ в 2025 : опрос более 300 анкет

Блок Полезные ссылки для собеседований и работы:
Конспекты:
1. Apache Spark
2. Clickhouse
3. Greenplum
4. DWH+Hadoop+Kubernetes

Boost канала
🔥8💯3😎3👍2
LLM много рассуждают. Но можно ли верить их рассуждениям? Alignment команда 🖥 показывает, что нет.

Статья. Блогпост.

TL;DR: Эксперименты простые, на полусинтетических средах. Доверять цеопчкам рассуждений (CoT) рассуждающих (по крайней мере Claude и DeepSeek )моделей рано. Модели нужно проверять, проверять и перепроверять. При чем как ответы (предсказания), так и рассуждения - далеко не всегда они озвучивают то, что реально думают.

А теперь подробнее.

📍Рассуждающие (Reasoning) модели везде. Их суть в том, что прежде, чем дать финальный ответ на вопрос, они могут нагенерировать промежуточных цепочек рассуждений (CoTs), а потом дать финальный ответ.

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

В идеальном мире через CoT мы можем понять, как модель реально мыслит и приходит к ответу. То есть в цепочках должны быть достоверные (faithful) описания того, как модель принимает решения. Авторы пытаются протестировать гипотезу достоверности цепочек, генерируемых моделью. На Claude 3.7 и DeepSeek R1 выводы довольно удручающие - текущие модели далеки от генерации достоверных CoT.

Проверяется гипотеза о достоверности рассуждений через три разных эксперимента. В посте только про основной “тест на достоверность”

📍Сетап эксперимента.

Берут Multiple choice вопросы из MMLU и GPQA. В одном инференсе модели дают стандартный промпт с вопросом, просят порассуждать и потом дать ответ на вопрос.

Затем на том же датасете вопросов в промт намеренно добавляют подсказку (hint) для каждого вопроса. Подсказки бывают разных типов: правильные, неправильные, безопасные или с указанием на нелегальное получение информации

С таким injected промптом модель снова просят порассуждать и дает ответ.

Оставляют только те вопросы, где ответ модели между промптом без подсказки и промптом с подсказкой поменялся (картинка 1 для пояснений). Логично предположить, что это именно тот набор вопросов, где подсказка изменила размышления модели (все остальные переменные зафиксированы, а фактор случайности в изменении ответа отфильтровывается), а следовательно и ответ. На этом наборе вопросов измеряют достоверность цепочек.

📍Как мерить достоверность

Достоверная модель, если дать в промпт дополнительную информацию об ответе на вопрос, должна упомянуть факт подсказки и озвучить (verbalize) это в своих CoT как фактор, на который она опирается при ответе. Если ответ модели зависит от наличия подсказки в промпте, то безопасная система должна обозначить фактор подсказки в своих рассуждения - опять же, если гипотеза, что CoT отражают процесс принятия решений моделью верна.

Фактор вербализации подсказки измеряют через Claude 3.5 с последующей ручной верификацией.

Наблюдаем следующее:

🔘Claude 3.7 в среднем генерирует 25% достоверных цепочек, а R1 - 39%. Таким образом, подавляющее большинство CoT никак не упомянули в своем рассуждении факт подсказки. Картинка 2 с результатми на разных типах подсказок

🔘Все модели используют подсказки. То есть если в промпте есть подсказка (и не важно, правильная или нет), модели имеют склонность выбрать вариант из подсказки. Картинка 3 с результатами.

🔘Claude модели на 24% чаще используют фактор подсказки, в сравнении с DeepSeek. Удручает, что неправильная подсказка меняет внутренние убеждения модели в пользу неправильного ответа без какой-либо вербализации почему она это делает (то есть нет указания на подсказку) - модель просто генерирует длинные цепочки неверных рассуждений подгоняясь под неправильный ответ в подсказке.

🔘Недостоверные цепочки в среднем длиннее. Claude 3.7 в среднем задействовал 2064 токена для генерации недостоверных цепочек, тогда как для достоверных хватало 1439.

🔘 Достоверность падает с увеличением сложности вопросов.

В общем, у задачи Alignment-а еще большой путь, а модели пока все такой же черный ящик, который может врать и не краснеть - 😄

💡 В комментариях оставил маленький абзац про другие эксперименты из статьи. В целом советую всю статью к прочтению - хорошо структурировано и классно подано.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍97👏4🔥3💯2😎1
Вчера делал обзор на статью Антропика про достоверность рассуждений языковых моделей.

А сегодня дошли руки оформить отзыв одного из подписчиков канала (спасибо вам большое, что присылаете классные истории! ) на собеседование в стартап Atla.ai. И получилось как нельзя своевременно 😃

Сам отзыв можно в следующем посте, а тут немного от меня про компанию.

Atla.ai - это early stage seed round стартап, который специализируется на верификации предсказаний LLM. То есть делает LLM as a judge по разным пользовательским метрикам. Судя по докам с сайта работает примерно так: вы делаете предикт своей моделью, дальше отправляете это в API Атлы и указываете, по каким критериям хотите полчить оценку (critique scores, у каждой метрики своя шкала). Дефолтные метрики такие: фактическая корректность, логическая согласованность, релевантность, полезность, и достоверность. Можно создать свои метрики

В блоге рассказывают про свою последнюю модель Selene 1, которая по графикам перформит в среднем лучше чем решения от OpenAI, Claude, и.т.д Почитать подробно можно здесь

В контексте рассуждающих моделей, выглядит как потенциальная полезная штука, особенно для задачи AI Safety, если их критик может дать развернутую оценку того, насколько СoT, или финальный ответ модели релевантны/безопасны/логичны/ и.т.д Опять же - эксперименты Антропиков с своим же Claude 3.7 показывают, что генерируемые цепочки рассуждений пока далеки от того, чтобы быть безопасными.

Может быть, кто-то работает над похожей штукой? Или взаимодействовал с API атлы - расскажите, какие впечатления?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍2
🤩 Foinding ML Engineer в Atla.ai, London


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

#интервью

Ник автора в тг - Анонимно

Название комании, можете указать ссылку или коротко описать что за место - Atla.AI (примечание от автора канала: Сайт компании. YC стартап в области AI Evaluation - когда модели оценивают другие модели, LLM as a judge и вот это все)

Расскажите немного о себе, своем бэкграунде - Senior ML Engineer в фаанге. Специализируюсь на скейлинге вычислений.

Как подались на вакансию - нашел пост в канале Лунапарка (примечание автора канала: насколько я понимаю, речь про тг канал с вакансиями @hrlunapark)

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


Когда начали процесс - Август 2024

Когда закончили процесс - Сентябрь-Октябрь 2024


Позиция, на которую собеседовались (Дополнительно можете рассказать, какие ожидания от этой роли в компании) - Founding ML Engineer. По большому счету единственный МЛ инженер в компании. Все остальные - это рисерчеры с phd по AI из универов. От роли было ожидание, чтобы настроить инфру, чтобы гонять файн-тюны моделей разных размеров: 1) чтобы и скорость обучение была удовлетворительная 2) и данные гонялись удобно и 3) инференс оптимизировать.

Грейд на который собеседовались (если известно) - N/A

Локация вакансии - London

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

Скриниг Созвон с фаундером на полчаса про мотивацию, предыдущий опыт работы. Немного бихейв вопросов

Скрининг 2 Скрининг на 1.5 часа. Первый час ML кодинг на знание transformers. Кастомный сэмплинг нужен был и свой generate написать. Потом попрофилировать инференс. Можно было гуглить. Последние 15-20 минут с HR-ом на бихейв вопросы. (примечание от автора канала: подробно писал про ML Coding секцию здесь)

Домашнее задание Дз. Потратил часов 8. В первой части был дан пайплайн предобработки данных и запуска обучения модели. Нужно было найти боттленеки и ускорить. Пайплайн был очень неоптимизированный поэтому все сводилось к тому во сколько раз получится ускорить. Во второй части нужно было написать рабочий мини сервис для инференса с поддержкой мульти-лоры. Просили именно с нуля.

Ревью Дз Ревьюили полтора часа как я сделал дз с их разрабом. По факту просто монолог о том, почему делал именно так.

Онсайт
- ML дизайн раунд у доски, проектировали масштабируемую систему для экспериментов
- Еще один раунд ревью ДЗ, теперь с их рисерчерами. 2 человека. Спрашивали интересные вопросы про типы данных, виды аттеншна, как держать большой контекст в ллм-ах. Один чел ex OpenAI, очень толково поговорили про DPO
- Бихейв интервью про мотивацию

Оффер Нескольо раз созванивались договариваться об оффере.

Что понравилось:
- Очень быстрый процесс. Ребята возвращались с фидбэком через несколько дней после секции.
- Когда сомневался в оффере, то поставили созвон с представителями ведущего инвестора стартапа. Был новый необычный опыт общения. Сидят там на мой взгляд точно такие же обычные люди: верят в компанию - дают денег; не особо верят - дают мало. Все очень на глаз делается.


Что не понравилось:
- На сайте вакансии и в объяслвении потолок зп был в £250 бэйза и свреху стоки. По факту этим и не пахло. Фаундер честно сказал, что поставили такую цифру, чтобы увеличить воронку.
- Дублирующие раунды
- Долго торговались.


Итоги собеседования, например оффер или отказ, или что-то другое (Если не приняли оффер, то почему. Если отказ, то что сказали): Offer (отказ). Долго думал, но в итоге пришел к выводу, что сам не верю в то, что они делают. LLM-ы чтобы оценивать LLM-ы - это круто. Но кто будет платить за это по API? не убедил себя. к тому же сид раунд ребят на 5M кажется слишком малеьнким для такой амбициозной штуки.

Информация про Total Compensation (если желаете): £195K бэйз и £70K стоки в год. Выбил такие условие после 3 раундов переговоров, сначала бэйз был на уровне £165
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥9🤩5👏2
📎Рисерч стажировки в биг техе. Часть 1. Как попасть на собеседование

Периодически в личные сообщения приходят ребята-студенты с вопросами про рисерч стажировки (например, про такие). Соберу в пятничном посте в двух частях мысли на этот счет.

➡️ Какие формальные требования на то, чтобы максимизировать свои шансы попадания на стажировку?

Обязательно нужно быть в процессе получения степени MS (Master of Science) или PhD. При этом важно находиться на финальном году обучения и иметь возможность пройти стажировку продолжительностью 6 месяцев (!). Да, судя по тому, что я вижу, это самый распространённый сценарий среди интернов: они приходят в начале последнего года учёбы, проходят полугодовую стажировку, затем возвращаются, чтобы доучиться или защититься, и с начала следующего года выходят на фулл-тайм.

Если вы - студент MS-программы, то после успешной стажировки вам, как правило, предлагают L4 грейд (формально - джун). Если вы - PhD студент, то это L5 (формально - миддл).

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

Конкурс на MS-стажировки - это, по сути, лотерея: число заявок зашкаливает, и почти все отфильтровываются на автоматическом этапе. С PhD ситуация немного проще - конкуренция в разы ниже (хотя и до PhD доходит далеко не каждый).

➡️ Можно ли реферить в конкретную команду?

Реферал сотрудника компании на стажировки как правило может работать в конкретную команду. Если некотоая команда ищет стажера, то сотрудник может передать информацию о соискателе напрямую нанимающему менеджеру. Но так как команды нанимают стажеров в реальности в разное время в количествве 0-1 человека в год (в нынешних реалиях), то найти реферала именно в конкретную команду не так просто. Если получится, скорее всего вас позовут собеседоваться (опять же, если условия про первый вопрос соблюдены).

➡️А как в целом работает реферал?

Обычно сотрудник реферит вас просто на стажировку. Вы попадаете в пул кандидатов. Если все хорошо, с вами начнут процесс. Вы укажете преференции по направлениям(NLP, CV, TTS, etc) в личном кабинете. Назначат скрин. Если скрин пройдет хорошо, то поставят mini loop с той командой, которая выбрала ваш профиль. Если все ок после интервью, то в течение 5 рабочих дней придет решение - оффер или отказ. Наблюдал такой пайплайн для стажировок на 6 месяцев, то есть формального team fit нет. Может быть так не всегда.

➡️ Чего ждать на собеседованиях?
Есть несколько типов интервью вопросов:
* Leetcode
* ML Coding
* ML Breadth
* ML Depth
* ML Design
* Tech Talk
* Behavioural

Разберем их в части 2.
Продолжение читать тут: https://news.1rj.ru/str/max_dot_sh/68

🔖 Буду рад ответить на вопросы в комментариях, если есть.

#карьера #гайды

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🆒6👍32😁1😱1😎1
📎Рисерч стажировки в биг техе. Часть 2. Структура Интервью

➡️Как подготовиться к LeetCode?
Неожиданностей тут не будет - задачи уровня медиум с литкода. Гайдов в сети много. На мой взгляд самый рабочий - это купить литкод премиум на пару месяцев и отсортировать задачи по частоте по заданной компании за последние 1-2 месяца. Скорее всего вам выпадет в процессе 1-2 задачи из тех, что нарешаете из этого топа.

➡️Как подготовиться к ML Coding?
Писал про этот тип раунда тут. Могут попросить написать реализацию МЛ/DL алгоритма в упрощенном виде (kmeans кластеризация, градиентный спуск, backprop, реализовать self-attention, ...). Самая лучшая подготовка - это пройти по самым частым алгоритмам и убедиться, что есть понимание как их реализовывать.

➡️Как подготовиться к ML Breadth?
Здесь нужно быть готовым, что будут задавать серию вопросов на фундаментальные ML/DL штуки. Вопросы зачастую на понимание и зазубрить очень сложно. Скорее нужно на достаточном уровне понимать суть и быть готовым порассуждать вокруг. Например, могут спросить что такое выпуклая функция, почему они важны в алгоритмах ML. Или что такое градиентный спуск и как можно использовать вторые производные в оптимизационных алгоритмах? Не нужно знать ответ на все вопросы, но ожидают, что вы сможете углубляться на 1-2 вопроса.

На мой взгляд best shot в условиях ограниченного времени - это прошерстить все ML вопросы на математику/статистику из Machine Learning Interviews Book

➡️Как подготовиться к ML Depth?
Здесь будут вопросы про домен, в котором вы разбираетесь. Обычно беседа строится вокруг вопроса: "расскажите про свой проект?" и дальше развивается в нескольих направлениях: 1) специфичные вопросы про проект (что за задача, какие были данные, какие методы применлись, как оценивались результаты), 2) теоретические вопросы (если применяли BERT, то рассказать, как он работает, в чем особенности, почему не RNN) 3) нетехнические вопросы (как приоритизировались эксперименты, какие были таймлайны, какая была ваша роль). То есть в итоге получается беседа, в которой смешана проверка книжных знаний (как устроен конкретный алгоритм) с вашими реальным опытом применения (как адаптировали алгоритм под вашу задачу и как работали в команде). Лучшая подготовка - хорошо прописать несколько ваших топовых проектов в деталях и сделать мок с коллегами/друзьями, чтобы нащупать слабые места повествования.

➡️Как подготовиться к ML Design?
Тут ситуация от ML Depth отличается только тем, что вам будет дана задача и нужно будет свести ее к ML решению. Обсудить с интервьюером все ограничения, обговорить метрики, предложить, как можно адаптировать известные методы и как довести это до прода. Для прохождения нужно хорошо понимать типовую структуру таких интервью - много примеров разобрано в книге тут. С приходом AI лихорадки, интервью изменились и стало много ML дизайна именно вокруг LLM приложений. Есть свежая книга тут (сам пока еще не читал).

➡️ Как подготовиться к Tech Talk?
Только для PhD студентов и то не всегда. Презентация вашего рисерча на час для команды.

➡️ Как подготовиться к Behavioural вопросам?
Подготовить истории по LP принципам. Отточить навык разговорного английского. То, насколько комфортно вас слушать - это очень большой сигнал для собеседующих.

➡️Из чего состоит скриниг?
60 минут, 1 лит код (обязательно) + небольшой ML breadth + 1 behavioural вопрос (обязательно).
Могут поставить дополнительный раунд с командой для PhD студентов, которая выбрала из пула. тут уже могут сфокусироваться на ml depth части.

➡️Как выглядит mini-loop?

Для MS:
* Первый раунд: Литкод / ML Coding + 1 behavioural.
* Второй раунд: ML Design / ML Breadth + 1 behavioural

Для PhD студентов:
* может быть дополнительный раунд про ML Breadth + 1 behavioural,
* совсем редко могут поставить Tech Talk, но скорее чтобы послушать вас с целью оценки навыков коммуникации

Как видно, бихейв вопросы есть всегда, они имеют очень большой вес

#карьера #гайды

🔖 Буду рад ответить на вопросы в комментариях, если есть
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥11👍82😁1🤡1🤝1🦄1
☀️Сегодня в ленте без новостей. Просто теплый весенний Лондон.

P.S На следующей неделе снова похолодает и добавятся дожди. Надеюсь, что не надолго.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥8😍4👍2🤡1🗿1
💡 Концепт дня ( и фреймворк тоже) - Re-prompting для LLM-ов. Например, через Instructor

1️⃣ Что такое re-prompting ?

Большое количество практически полезных LLM приложений завязаны на то, что мы ожидаем от модели ответ в определенном формате. Один из популярных - JSON. Реально же это может быть что угодно: и xml разметка, и аннотация определенных строк (условно, line by line label tagging) или markdown, etc. Более того, могут накладываться ограничения не только на общий формат ответа, но и на его атрибуты. Например, можно попросить сгенерировать модель синтетических юзеров с валидными username и email заданных регвырами.

На практике, модель не всегда может выдать ответ в нужном формате. Это может быть невалидный json или аттрибут не будет соответствовать ограничению.

В такой ситуации можно определить свои механизмы валидации ответа (более общее название Guardrails) модели и если ответ не проходит проверки, отправить фидбэк с ошибкой (указав, что именно сгенерировано неверно) обратно в модель и попросить решить задачу еще раз с учетом фидбэка. Это и есть Re-prompting. Или Retry-Based Structured Generation. Суть подхода на картинке к посту.

2️⃣ В каких случаях может понадобиться re-prompting ?

⏺️Если вы работаете с API профвайдером LLM-ки, который не поддерживает явно структурную генерацию (Structured Output, или SO), а она нужна. Например, у антропика такого нет. У OpenAI есть, но кажется многие типы он не поддерживает. И еще у них есть свой Constrained Decoding для JSON схемы на основе грамматик.

⏺️Или если у вас сложная кастомная структура, которую провайдер из коробки не поддеррживает.

⏺️Или если вы работаете с своей локальной моделью у которой вообще нет никаких внешних валидаторов.

Кстати, про локальные модели хочу рассказать в другом посте. Так как есть доступ к логитам и соответствующим токенам, то можно явно реализовать Constraint Decoding, задав свою грамматику (Context-Free-Grammar, движков с реализациями много) и контролировать поведение каждого генерируемого токена в соответствии с грамматикой.



3️⃣ Что такое Instructor

Очень популярная библиотека совместимая почти со всеми провайдерами, локальными и API. Реализует концепцию re-prompting-а для JSON схем, которые можно описать с помощью Pydantic. На сайте много примеров того, что и как можно задать

Плюсы: легко начать использовать. Поддерживает все, что есть в Pydantic. Куча провайдеров. Хорошая документация и активное коммьюнити.

Минусы: Это не Constraint Decoding, это просто валидация того, что выход соответствует схеме. И если нет - то надежда, что модель справится со второй попытки, или третьей...а может не справиться вообще. Никаких гарантий нет. Как следует из предыдущего предложения - это увеличивает цену инференса как по стоимости, так и по latency. Опять-таки, если каждый второй запрос падает с ошибкой парсинга - следует менять модель. Но все же посыл про рост цены понятен. Так же, все что за пределами JSON-а - мимо, нужно все равно быть готовым писать свои валидаторы; библиотека не что-то универсально предотвращающее ошибки.

Happy Learning!

#гайд #обзор #фреймворк

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4💯211
Пятница - время историй с отзывами на собесы про ML роли. Сегодня в подборке отзыв подписчика на NLP инженера в LLM команду в SberDevices.
2💯21👍1
🤩 NLP ML Engineer в SberDevices

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

#интервью

Ник автора в тг - Анонимно

Название комании, можете указать ссылку или коротко описать что за место - SberDevices
Как подались на вакансию - Реферал

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


Когда начали процесс - Октябрь 2023
Когда закончили процесс - Ноябрь 2023


Позиция, на которую собеседовались - NLP ML Engineer
Грейд на который собеседовались (если известно) -Middle
Локация вакансии - Москва

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

1) Разговор с HR (20-30 минут)
Прошлись по опыту и по CV, потом немного про ожидания. В общем, все очень стандартно.

2) Python (60 минут)
Сначала был блитц-тест. На половину вопросов я не ответил... Примеры вопросов: что такое mutable-immutable типы, перечисли разные структуры данных, что полезного есть в collections. Помню, что в конце спросили про GIL))
Потом задачи LeetCode уровня Easy-Medium. Что-то простое на графах, что-то на бинпоиск. Я решил три или четыре задачи, интервьюер сразу сказал, что все в порядке и я прошел собес.

3) Classical ML (60 минут)
У собеса были 3 части. Первая - про метрики классификации, вторая - про ансамбли и уже не помню, что было на третьей.
В целом все было несложно. Нет каких-нибудь сложных алгоритмов, с головой хватает ML-1 или хэндбука Яндекса, но могут задать много каверзных вопросов на понимание. Точно помню бомбардировку вопросами про ROC-AUC.

4) NLP (60 минут)
Сначала меня спросили про последние статьи, которые я читал. Тут мне повезло, я рассказал про статью, которую недавно рассказывал на НИСе.
Потом про transformerы, очень досконально про attention, примеры encoder only, decoder only моделей. Что-то было про стадии обучения LLM.
Это был самый сложный для меня собес, но тут скорее потому что я не очень много видел в NLP и не проходил собесов

5) Финал (40-50 минут)
Небольшой кейс (как оказалось из текущих задач команды) и разговор за жизнь.


Что понравилось:

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


Итоги собеседования, например оффер или отказ, или что-то другое: Offer (принятый)
Информация про Total Compensation (если желаете): N/A

@max_dot_sh

Примечание автора канала: В комментарии закинул немного своих полезных ссылок про ML Breadth 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4😁2🆒2👏1
📊 Сравнительная таблица Ростера OpenAI моделей на разных бенчмарках

Источник

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

Субъективно, эффективность/компактность/ instruction following генерируемого кода у гпт моделей тоже лучше, чем у Антропиков. И при этом у всех оставляет желать лучшего.
Please open Telegram to view this post
VIEW IN TELEGRAM
4🆒43👍3👏2💯1
😄VP of AI ML в J.P. Morgan Chase, London

Возвращаемся к интервью историям - сегодня про AI позицию в Инвест Банк.

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

#интервью

➡️ Ник автора в тг - N/A

➡️ Название комании, можете указать ссылку или коротко описать что за место - J.P. Morgan

➡️Расскажите про свой бэкграунд - Senior MLE, FAANG, ML on Devices
➡️ Как подались на вакансию - Подавался напрямую. На линкедине нашел вакансию, перешел на сайт, там подался. Вакансия типа вот такой. Месяца 2-3 никто не отвечал, потом HR сама написала.

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


➡️Когда начали процесс - 08/ 24
➡️Когда закончили процесс - 11/ 24


➡️Позиция, на которую собеседовались - VP of AI ML, заниматься LLM-ами
➡️Грейд на который собеседовались (если известно) -Senior. VP - это просто название для сеньоров в Инвест Банках. У них полбанка как я понимаю в этих VP 😄 (Примечание от автора канала: согласно levels.fyi VP, или Vice President - это как L5 / E5 в Гугле/Мета)
➡️Локация вакансии - Лондон

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

Во всех раундах большой упор на разговоры. Каких-то книжных знаний не проверяли. Рассказывал свой опыт, где-то немного мл дизайна. Еще это был первый найм в AI направлении для компании, поэтому процесс совсем не выстроен

1) Скрининг интервью с HM (Примечание от автора канала: HM - Hiring Manager). В первой части рассказывал про свой опыт и проекты. Немного поведенчиских вопросов. Потом были вопросы про трансформеры. Просил объяснить трансформер для человека без опыта в мл, потом для джуна, потом для ML инженера. Коммуникация и донесение идей до разных людей это важный навык для компании и они стараются проверять его в каждом раунде. Дальше была дискуссия о том, как построить инференс модели, если нужно гонять очень много документов по сети - больше упор на кэширование.

Потом выяснилось, что меня собеседуют на Senior Associate роль (это считай Мидл). Узнал какие вилки - до 160 TC. Сказал, HR-у, что можем заканичвать процесс. Она вернулась ко мне с тем, что готовы рассматривать на VP уровень. Пошли дальше.

2) Кодинг раунд. 2 Литкода медиум. Один про обход деревьев. Один на балансировку скобочных последовательностей.

3) Дизайн. На интервью просили построить нативную мультимодальную LLM, как бы я это делал. Спрашивали про инференс моделей и какие боттленки (KV кэши, квантизации). Все вопросы очень поверхностные, я большую часть времени рассказывал про квантизацию, потому что только с ней и работал глубоко на тот момент.

4) Созвон с руководителем. В основном за жизнь. Она сама в NY и ее как раз недавно сократили из того же фаанга где я работаю. Обсуждали большую часть реструктуризацию 😄 Спрашивала про адаптеры. Сразу предупредила, что железа мало, данных тоже, нужно будет делать много демо из ничего и ходить уговаривать боссов вложиться. А так вообще много держится на API провайдеров с которыми партнерства.

Потом было несколько недель общения с Hr-ом. Обсуждали компенсацию. Я просил 220K фунтов TC. Они видимо не хотели давать.
Переписывались по 2-3 раза на неделе и созванивались. Просили дать им скришоты своих стоков, чтобы подтвердить мою текущую компенсацию - ни разу такого не видел. Потом долго готовили предложение и сообщали исключительно по телефону. Дошли до 205K в год. 135 бэйз, 70 ежегодный фиксированный бонус. Я все равно просил больше, по факту это было +- то что у меня и так на руках. В итоге до 220 отказались поднимать. На этом закончили.


Что понравилось:

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

Что не понравилось:

Очень сумбурный неповортливый процесс. Идея 5 дневной рабочей недели из офиса тоже не впечатляла.

➡️ Итоги собеседования, например оффер или отказ, или что-то другое: Offer (отказ)
➡️ Информация про Total Compensation (если желаете): 205K TC. 135 Бэйз, 70 year off бонус
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍7🦄4