Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
92 - Telegram Web
Telegram Web
☀️Сегодня в ленте без новостей. Просто теплый весенний Лондон.

P.S На следующей неделе снова похолодает и добавятся дожди. Надеюсь, что не надолго.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Концепт дня ( и фреймворк тоже) - 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
Пятница - время историй с отзывами на собесы про ML роли. Сегодня в подборке отзыв подписчика на NLP инженера в LLM команду в SberDevices.
🤩 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
📊 Сравнительная таблица Ростера OpenAI моделей на разных бенчмарках

Источник

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

Субъективно, эффективность/компактность/ instruction following генерируемого кода у гпт моделей тоже лучше, чем у Антропиков. И при этом у всех оставляет желать лучшего.
Please open Telegram to view this post
VIEW IN TELEGRAM
😄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
Недавно я писал про критерии отбора на research-стажировки и full-time позиции в бит техах, а потом и про сами интервью.

TL;DR на мой взгляд, самый сложный шаг - это просто пройти HR-скрининг. Для research-ролей он довольно строгий. HR-ы будут искать в вашем профиле сильный академический бэкграунд. Обычно он формируется за счёт университета, в котором вы учились, или учреждения, с которым публиковали статьи. Известное имя вуза и наличие релевантных публикаций - это почти что silver bullet для прохождения этого этапа и попадания в интервью-процесс.

Если хотите начать карьеру в исследовательских командах в биг техах, я бы советовал инвестировать усилия в хорошее образование, особенно за рубежом. Стажировки (да, университеты тоже предлагают стажировки), магистратура и особенно PhD - всё это значительно усиливает research-профиль кандидата. Это конечно не единственный путь (да и пресловутые биг техи - это не всегда гарант чего-то однозначно крутого для карьеры), но в среднем самый рабочий.

От себя рекомендую офигенный канал @computerscienceabroad. Кладезь образовательных программ по самым разным направлениям CS и ML. Тут регулярно публикуются новые академические возможности для студентов, дедлайны и условия. Вот, кстати, свежая подборка PhD-возможностей в репосте.

У меня у самого есть история про рисерч стажировку в EPFL, которую я в канале и нашел.

Расскажу чуть позже сегодня 😃
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Computer Science Abroad
Еще денечек и можно будет упасть в майские👀 А пока ловите подборку PhD позиций.

PhD in Generative AI and Machine Learning

🔴Где: Linköping University, Швеция
🔴Дедлайн: 26 мая

PhD in Forecasting Bioplastic Degradability with Machine Learning
🔴Где: Technical University of Denmark, Дания
🔴Дедлайн: 25 мая

PhD in Fault tolerant control of AC drives based on machine learning technology
🔴Где: Xi’an Jiaotong-Liverpool University, Китай

PhD in Diffusion based generative models and their application to generative data augmentation and uncertainty quantification
🔴Где: Nanyang Technological University, Сингапур
🔴Дедлайн: 15 мая

PhD positions in AI in Medicine
🔴Где: University of Copenhagen, Дания
🔴Дедлайн: 15 мая

PhD in Human Centred Robotics
🔴Где: University of Copenhagen, Дания
🔴Дедлайн: 22 мая

PhD in Interpretable Natural Language Processing
🔴Где: University of Copenhagen, Дания
🔴Дедлайн:15 мая

PhD in Computing Science with focus on Visual Language Grounding
🔴Где: Umeå University, Швеция
🔴Дедлайн: 15 мая

PhD in Computer Science/Cheminformatics
🔴Где: University of Southern Denmark, Дания
🔴Дедлайн: 22 мая

PhD in Informatics with a focus on sustainable data cultures
🔴Где: Umeå University, Швеция
🔴Дедлайн: 13 мая
Please open Telegram to view this post
VIEW IN TELEGRAM
📌Как я не стал PhD-студентом в швейцарском EPFL

У меня есть история про зарубежные университетские стажировки. Одну такую я нашел в Computer Science Abroad канале, который советовал выше. Вот пост от 2020 года.

Это была летняя стажировка от EPFL в Лозанне - одном из самых престижных мест для CS в Европе. Программа предполагала трёхмесячную работу на кампусе в составе одного из департаментов. Оплачивали визу, проезд, дневное питание и платили 1600 CHF в месяц (примерно 800-900 из них уходили бы на комнату в кампусном общежитии). Но самое главное - успешным участникам из числа магистрантов практически гарантировали поступление на PhD-программу с полным грантом и стипендией.

В 2020 году я учился на первом курсе магистратуры в родном Екб и одновременно в ШАДе, за плечами было только несколько летних стажировок в отечественных узнаваемых местах по NLP (раньше это называлось именно так :D). В общем-то и все портфолио. Не густо. Но хотелось попробовать себя в иностраной среде: пожить, поработать, посмотреть отлкикается ли. Подумал. Была не была. Подал.

Заявка состояла из ээссе о себе. Нужно было красиво рассказать про свой опыт, порассуждать почему именно ты. Собрать рекомендации от профессоров и составить резюме. Тогда еще не было ChatGPT, поэтому показаывал свои переводы на английский всем друзьям и знакомым, чтобы покритиковали.

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

Через неделю пришло письмо, что есть несколько департаментов на базе университета, заинтересованных в моей заявке. Среди них было несколько направлений: Квантовые Вычисления, Криптография и Рекомендательные Системы. Я хоть что-то понимал в последнем, поэтому выбрал этот трек. Предстояло делать рисерч использования трансформеров для рекомендательных систем. В описании проекта было много непонятных слов. Но звучало очень интересно. И статью обещали. Я напредстовлял себе, как после успешной стажировки возвращаюсь в EPFL снова, но уже в статусе PhD студента.

Дальше всё шло по плану: регулярные созвоны с кураторами, сбор документов, подготовка к визе, перевод диплома, изучение студенческой жизни за рубежом...

А потом - Тарантиновская развязка. Молниеносная. Ковид накрыл Европу. Программу сразу свернули. Посочувствовали и попрощались. В следующем году я уже подаваться не мог, потому что программа для магистров была рассчитана именно на первокурсников, чтобы еще год те уже вернулись как PhD студенты.

Так EPFL и пролетел мимо меня. Я, конечно, утрирую. Никто не мешал мне искать зарубежные PhD программы и после выпуска. К тому моменту я уже сам поменял мнение о том, как хочу развиваться и погрузился в индустрию. Почти сразу после магистратуры уехал как ML инженер в биг тех делать Text-To-Speech и диалоговые системы в Алексу.

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

Keep Learning!

#образование #карьера
Please open Telegram to view this post
VIEW IN TELEGRAM
Увеличиваем контекстное окно LLM с 128K до 4M: разбор рецепта от 💻

Статья

TL;DR Авторы предлагают двухстадийный пайплайн дообучения Instruct-tuned LLM для увеличения длины контекста. Берут Llama 3.1 8B instruct c контекстным окном 128К и дообучают своим методом до нового окна на 1M, 2M или 4M. Показывают, что модель сохраняет качество на исходных бенчмарках, и становится сильно лучше на long-context задачах. На Needle in a Haystack бенчмарке показывает 100% accuracy на всех видах запросов. Бенчмарк синтетический и перестал быть показательным. На более реалистичных задачах из InfiniteBench, LV-Eval цифры сильно скромнее, не больше 30%, но лучше сравниваемых бейзлайнов. В бейзлайнах другие методы расширения контекста для Llama 3.1 8B.

🔘В чем суть подхода? Берут обученную Llama 3.1 8B instruct. Первая стадия: увеличивают контекстное окно до целевого значения (1M, 2M или 4M) через дообучение (continued pretraining) на корпусе очень длинных документов и экстраполяции RoPE эмбеддингов. Вторая стадия: делают SFT на бленде из разных качественных датасетов. Картинка 1 иллюстрирует пайплайн. Разберем детали ниже.

🔘Как именно увеличивают длину контекстного окна? Все начинается с данных. Детали датасета для continued pretaining не раскрываются. Сэмплируют из проприетарного датасета длинные документы с оверсэмплингом длинных, больше 8K токенов. Получают корпус на 1B токенов. Документы конкатенируют, так, чтобы получить желаемую целевую длину контекста (1M, 2M, или 4M). При конкатенации документы разделяют специальным сепаратором, а не стандартными begin_of_text, end_of_text токенами. Делают ablation study, который показывает, что специальный сепаратор играет важную роль и растит качество. Так же, во время дообучения attention механизм видит всю последовательность (нет cross-document attention маски).

Наконец, используют метод YaRN для модификации расчета RoPE эмбеддингов. Если коротко, то добавляют scaling factor, L’ / L, где L - максимальная поддерживаемая контекстная длина, а L’ - новая целевая длина и модифицируют расчет θ для интерполяции на новую длину.

🔘Что входит в Instruction Tuning? Собрали датасет на 100K насэмплировав примеров из открытых датасетов. Примеры в основном из трех категорий: общие знания (из ShareGPT, GPTeacher, и другие), код (WizardCoder), математика (MathInstruct, MetaMath). Часть ответов для промптов была нагенерирована с помощью GPT-4o. Далее делали SFT. Интересно, что на этой стадии никак не фильтровали данные по длине и не добавляли long context синтетики, большинство примеров < 8K. Тем не менее этого достаточно, чтобы “восстановить” reasoning навыки и instruct способности модели после увеличения контекста в первой стадии.

Авторы отмечают, что в будущем хотят попробовать RL-методы для второй стадии.

🔘Результаты. Так как брали предобученную модель и тюнили ее на длинный контекст, то измерять качество нужно на стандартных бенчмарках (чтобы убедиться, что нет деградации), и на специфичных для длинного контекста (чтобы померить эффективность метода). Метрики на общих бенчах в среднем на уровне базовой Llama 3.1 8B, либо чуть лучше. Картинка 2.

Теперь самое главное. Полезность длинного контекста. Needle In A Hastack тест решает, в отличие от pretrained модели. Это хорошо. Но тест искусственный и в 2025 служит скорее sanity check адекватности, а не реальной оценки способностей. О том, что для моделей с длинным контекстом пора смотреть дальше обсуждалось и недавно тут. На более реалистичных бенчмарках точность в среднем 30%. Например, авторы везде репортят InfiniteBench. В бенче есть задачи разные категорий, включая разные типа QA, суммаризации, арифметики и поиску кода на контекстах в среднем от 100K токенов. Новый метод обгоняет базовую модель (32% vs 24%) и в среднем лучше других бейзлайнов с поддержкой длинного контекста. На другом более прикладном бенче, LV-Eval результаты такие же. Несмотря на улучшения говорить о большой полезности длинного контекста через такой рецепт рано. Картинка 3.

💬 В комментариях оставил мнение по поводу работы в целом.

#статья

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤗 Hugging Face обновили лендинг с курсами, теперь все в одном месте.

9 курсов от HF по разным DL темам. Ссылка

Заинтересовали ML for Games и ML for 3D. Судя по плану обучения курсы короткие, скорее чтобы просто пощупать какие есть инструменты. На пару вечеров может быть самое то.

p.s. первый раз увидел тут в линкедине
Сегодня разбираем относительно свежую cтатью про новый метод Спекулятивного Декодинга (далее SD).

Кстати, в числе соавторов статьи автор тг канала @ai_newz, Staff Research Scientist в Meta. Про анонс публикации можно прочитать у него в посте (я здесь и сам узнал про эту работу). Там еще и драма с публикацией на конференцию ICLR была. Побольше бы закулисных историй 🙂
И если вдруг кто-то не видел канал, то рекомендую.
Please open Telegram to view this post
VIEW IN TELEGRAM
JUDGE DECODING - новая вариация Спекулятивного Декодинга от Gen AI команды Ⓜ️ может ускорить инференс модели в 9X раз

Статья

📍TL;DR Вариация Speculative Decoding (SD) с Target и Draft моделями. Вместо верификации через совпадение вероятностей, как в классическом SD, используется оценка качества токенов в контексте - идея вдохновлена подходом LLM-as-a-judge. На паре моделей Llama 3.1 405B / 8B удаётся достичь впечатляющего ускорения в 9× (против ~2× у обычного SD) без потерь в качестве. Для запуска метода под свою задачу потребуется собрать немного качественных данных и провести разметку.

📍Интро. Классический Speculative Decoding работает так: маленькая и быстрая, но менее точная Draft модель авторегрессионно генерирует M токенов, после чего большая и медленная, но очень умная Target модель параллельно проверяет их. Токен принимается, если все предыдущие были приняты и вероятность от Target превышает вероятность от Draft с учётом случайного порога. В худшем случае сгенерируем только один токен. Если что, интуитивный гайд про SD.

📍Инсайт. Схема верификации в стандартном SD учитывает только то, насколько вероятности draft токенов совпадают (align) с вероятностными оценками target модели. А контекстная корректность (или качество) самих токенов игнорируется. Поэтому на практике потолок accepted токенов в самом лучшем случае 6-7, а реально около 2. В статье проводят интересный эксперимент, чтобы исследовать эту гипотезу. Берут заведомо мощную большую draft модель, GPT-4o и target LLama-405B. Так как доступа к logit-ам draft-а нет, то используется Greedy Decoding. В итоге наблюдаем acceptance rate в районе 2 токенов. (картинка 1, первый столбик). Делают еще один эксперимент где в качестве draft-а высококачественные тексты написанные людьми. Результаты такие же - примерно 3 токена (картинка 2, первый столбик).

🔘Вывод - качество ответов draft-а не увеличивает acceptance rate. Поэтому хочется научиться как-то оценивать качество токенов, чтобы не отклонять слишком много полезных. Нужно найти источник полезного сигнала о draft токенах в target модели.

📍Суть метода. Собирают датасет из вопросов публичных датасетов(ARC, Alpaca). Дальше генерируют к этим вопросам правильные и неправильные ответы разными моделями (и Mistral-ями, и Llam-ами). Затем проверяют пары (question, response) вручную. Для каждого правильного ответа помечают все токены в ответе единичками. А в неправильных ответах помечают токены единичками до тех пор, пока не начинается генерация ошибочных токенов, их помечают уже ноликами. Таким путем собрали датасет из 500 пар с маской правильных/неправильных токенов.

Затем, обучают линейный слой для классификации токенов правильный/неправильный на основе эмбеддингов последнего слоя Llama 405B (она будет target моделью) на собранном датасете. Отсюда и возникает “Judge” в названии статьи - этот линейный слой во время инференса будет определять принять токен или отклонить. Так как эмбеддинг контекстный, то отсюда и получаем учет качества токенов.

📍Как устроен инференс. Как и в обычном SD генерируют M токенов draft моделью. Валидируют токены target моделью. Запускают judge голову и одновременно ванильный верификатор из классического SD. Получаем две маски из M токенов. Применяем Логическое “OR” и получаем итоговую маску принятых токенов (Картинка 3). Может возникнуть вопрос, почему OR, а не AND. Показывают, что изредка может произойти так, что классический SD принял токен, а Judge голова - нет. Все потому что Judge слой оптимизирован на минимизацию False Positives. Но так как Target модель в любом случае приняла бы этот токен, нет смысла обрубать принятие токенов на этом шаге.

📍Результаты. Замеряют скорость для пары LLama 405B / 8B, получают acceptance rate ~20 токенов, транслируется в 9X ускорение инференса при запуске из HF (картинка 4). Так как метод декодирования может внести регрессию в качество ответов, то отдельно репортят метрики качества на бенчмарках. Получают почти полный паритет с инференсом без draft модели.

#статья

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ ML Breadth Interview Deep Dive

Давно хотел сделать лонг рид про ML Breadth секцию на собеседованиях и вот наконец-то дошли руки.

Полный текст прочитать можно тут.

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

В лонг риде сделал фокус на самые важные моменты:

🔘Типы вопросов — попытка категоризации вопросов на большие темы, которые могут встретиться на интервью

🔘Разница в ML Breadth секции для стажера и сеньора; для рисерчера и ML инженера

🔘Примеры кусочков ML Breadth секции реальных компаний: от Mistral AI до DeepMind.

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

Если оказалось полезно и хотите еще подобного контента, накидайте 🔥❤️
Своим опытом, мнением, вопросами делитесь в комментариях

@max_dot_sh

#карьера
Please open Telegram to view this post
VIEW IN TELEGRAM
💼 Senior ML Engineer в Meta, London. Отзыв на Интервью.

Сегодня совсем свежий отзыв на собеседование в Ⓜ️

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

#интервью

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

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

➡️Расскажите про свой бэкграунд - Senior CV Engineer, в стартапе, Global Talent Visa Uk
➡️ Как подались на вакансию - рекрутер вышел на меня в Linkedin

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


➡️Когда начали процесс - в конце марта этого года
➡️Когда закончили процесс - в конце апреля этого года


➡️Позиция, на которую собеседовались - Senior MLE. Конкретный тим мэтч происходит только при успешном он сайте. Рекрутер говорила в целом, что найм идет в несколько команд, вроде бы все связаны с рекламой
➡️Грейд на который собеседовались (если известно) E5
➡️Локация вакансии - Лондон

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

Созвон с HR. Поговорили про опыт. Объяснили формат. Говорили, что найм идет в несколько Ads команд, заниматься ранжированием и рекомендациями в ленте.

Скрин. Созвон с их инженером. 2 Лит код задачи уровня медиум. Одна на обход дерева, find total sum of all root-to-leaf numbers. Другая про merge k сортированных списков. Интервьюер душнил с тем, чтобы я убедился, что код работает правильно. Делал step by step валидацию. Мне показалось это очень странным. Еле успел написать код второй задачи.

On-site раунд

1) Бихейв интервью. Один вопрос на то, как лидил команду или направление. Вопрос про то, как отстаивал свое мнение, когда команда не была согласна с решением. Еще что-то по мелочи про менторство джунов и урегулирование конфликтов в команде.

2) Кодинг интервью. Снова 2 медиум лит код задачи. Binary tree vertical traversal. Я тупил и интервьюер неохотно подсказывал. В итоге решил. Вторая была на стек про упрощение unix пути. Я быстро описал решение но написал как-то слишком сложно и потратил еще времени на то чтобы упростить, как хотел интервьюер.

3) Кодинг интервью. Снова 2 медиум лит код задачи. Одна про поиск максимума в скользящем окне. Вторая про бин поиск в повернутом отсортированном массиве. Я тут долго тупил и решил с подсказкой.

4) ML Дизайн. Нужно было спроектировать систему предсказания того, что пользователь фэйсбука посетит офлайн мероприятие. Фокус был на масштабе. Нужно предложить решение, которое бы могло проскорить 3MM пользователей. Раунд сразу как-то не задался, не знал за что зацепиться. Интервьюер был пассивен. Я закопался в генерацию фичей, а ему кажется по итогу нужно было больше услышать про архитектуру: как будем хранить фичи, online feature store или батч, как будет скорить моделью, какие гарантии по времени можем дать, как оценивать качество. Голова совсем не работала чтобы уловить эти сигналы от собеседующего.

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


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

Отзывчивые рекрутеры. Удобный портал кандидата.

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

Прошлый опыт по факту, кроме как в бихейв части никак не пригодился. Я не очень понял, где меня реально проверяли бы по ML знаниям. По ощущениям один лит код. Интервьюеры не зашли. То они просят чтобы рассуждал подробно, то обязательно надо 2 задачи решить.

➡️ Итоги собеседования, например оффер или отказ, или что-то другое: Отказ
➡️ Информация про Total Compensation (если желаете): Рекрутер говорил про £200-£240 тотал комп в зависимости от того, как оценили

Риторический вопрос от автора канала: Как-то одна секция на ML для ML позиций и такой упор на литкод - это грустно, нет?

В
комментарии пришел опытный ML инженер Меты, много инсайтов на их процесс и работу. Рекомендую почитать 🔽

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/06/14 20:46:54
Back to Top
HTML Embed Code: