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
📎Рисерч стажировки в биг техе. Часть 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
Недавно я писал про критерии отбора на 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
👍10👀3🤩2
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
👍65🔥4
📌Как я не стал 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
35👍6😢5🐳5🔥2🏆21👏1🤬1
Увеличиваем контекстное окно 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
👍955🔥3😁1
🤗 Hugging Face обновили лендинг с курсами, теперь все в одном месте.

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

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

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

Кстати, в числе соавторов статьи автор тг канала @ai_newz, Staff Research Scientist в Meta. Про анонс публикации можно прочитать у него в посте (я здесь и сам узнал про эту работу). Там еще и драма с публикацией на конференцию ICLR была. Побольше бы закулисных историй 🙂
И если вдруг кто-то не видел канал, то рекомендую.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀521👏1
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
🔥7👍6👏3