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
90 - 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
2025/06/15 04:52:16
Back to Top
HTML Embed Code: