Душный NLP
5.31K subscribers
154 photos
2 videos
85 links
Разборы свежих статей от NLP-специалистов Яндекса. Подробно, полезно, с душ(нот)ой.

Вопросы и предложения > @yandex_ml_brand
加入频道
SpecExec: cпекулятивное декодирование для запуска больших моделей на потребительских GPU

Генерация текста LLM на GPU потребительского класса — сложная задача. Стандартные алгоритмы требуют исполнения всех слоёв модели для получения каждого токена. Модели размером в 10+B не помещаются в память GPU — приходится прибегать к офлодингу (offloading), поочерёдно подгружая слои из основной памяти в VRAM. Это долго: одна итерация загрузки и генерации одного токена Llama-2-70B в 16-битном режиме с PCIe gen 4 может занять > 5 секунд.

Спекулятивное декодирование ускоряет генерацию. Это достигается за счёт дополнительной «черновой» модели — более компактной и быстрой. Она предлагает варианты продолжения цепочек токенов. Основная модель проверяет эти варианты, выбирая один с помощью стохастического алгоритма выборки. Производительность измеряется числом токенов, сгенерированных за итерацию.

SpecExec — самый производительный метод в классе. Он генерирует до 20 токенов за итерацию и достигает ускорения x15 при офлодинге. Вместо стохастического метода, SpecExec создаёт «кеш» в форме дерева продолжений, используя не случайные, а самые вероятные токены из модели-черновика. Целевая модель проверяет их за один проход.

Алгоритм SpecExec производительнее, т.к. использует высокую пиковость распределений вероятностей токенов в современных LLM. Например, в Llama-2-70B высочайшая вероятность токена составляет более 90%.

Сравнение производительности

В выгрузке SpecExec превосходит SpecInfer — особенно с большими бюджетами токенов. в то время как производительность SpecInfer перестаёт расти с ростом бюджета, наш метод генерирует более 20 токенов за шаг при бюджетах 1000+ токенов.

В тестах с офлодингом SpecExec показывает стабильный прирост скорости на видеокартах от высококлассных исследовательских GPU A100/H100 до потребительских GPU: 4090 и даже 2080. С квантованными моделями SpecExec достигает ускорения от 4.6x до 10.6x, генерируя от 3 до 6 токенов в секунду.

***

SpecExec упрощает доступ к мощным LLM и обеспечивает инференс тяжёлых моделей на оборудовании, считавшемся недостаточно мощным. Узнать о нём больше можно в статье, а пощупать — на GitHub.

Разбор подготовил Руслан Свирщевский

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥35👍128
О файнтюнинге после квантизации

Сжатие языковых моделей трансформеров, таких как LLaMA, OPT и GPT — важно для повышения их эффективности и скорости работы. Этому аспекту посвящена статья, которую мы сегодня разберём. Результаты в этой публикации оказались лучше, чем в январской статье Extreme Compression of Large Language Models via Additive Quantization благодаря улучшению шага файнтюнинга после основной квантизации.

Наиболее популярный и эффективный метод сжатия — квантизация. Это уменьшение количества бит, используемых для представления весов модели, что позволяет снизить размер LLM и ускорить её работу. При этом важно поддерживать баланс между степенью сжатия и качеством, поскольку экстремальное сжатие (например, до двух или одного бита) может значительно ухудшить качество.

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

Популярная техника файнюнинга квантизированных весов — straight-through estimation. Однако в её рамках улучшение может идти непредсказуемо плохими градиентами.

Авторы статьи предлагают другой способ. Достаточно обновлять лишь небольшую долю весов в рамках одного шага — те, у которых самый большой градиент. Эти весы нужно обучить, а остальные — «заморозить». Затем следует пройтись большими шагами между «выжившими» весами. Таким образом, обновятся все или почти все веса.

Этот метод позволяет достичь оптимума по Парето, например, для моделей семейства LLaMA-2 при 2 битах. А для моделей сжатых до 1-1,5 бита на параметр результаты оказались лучше чем у аналогов.

Рассказывайте в комментариях, что вы думаете об этом методе и делитесь опытом!

Разбор подготовил Владимир Малиновский

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥48👍1510
Mamba и трансформеры

SSM вроде Mamba — неплохая альтернатива трансформерам, но с ними всё не так просто. Сегодняшняя статья об этом.

Трансформеры, такие как BERT и GPT, показывают отличные результаты в NLP-задачах, но испытывают сложности при работе с большими контекстами —при увеличении длины входного текста качество начинает деградировать. Причина в росте вычислительных затрат и сложности поддержания высоких скоростей обучения и инференса.

Решают проблему разными оптимизациями: линейными аттеншн-механизмами, структурированными масками токенов. Однако у этих способов есть ограничения. Более удачная альтернатива — Mamba и Mamba 2. О ней мы уже писали в этом посте.

Mamba и Mamba 2 используют иной подход к обработке длинных текстов, основываясь на структурированных состояниях. В отличие от трансформеров, они не требуют обработки всех токенов одновременно.

Авторы статьи сравнили Mamba, Mamba 2 и классический трансформер на нескольких задачах. В некоторых результаты Mamba были сопоставимы с результатами трансформеров, но Mamba тоже испытывает трудности при работе с большими контекстами.

Для решения проблемы авторы предложили гибридную модель — смесь Mamba 2, селф-атеншн и MLP-слоёв. У первой модели было 130М параметров с 24 слоями. Доля селф-аттеншн и MLP среди них менялась. Наименьшей потери валидации удалось достичь при 8% селф-аттеншн слоёв. Эти данные подтвердили эксперименты и с моделью на 840М параметров. При этом доля MLP достигала около 50%, что позволило ускорить инференс на 20%.

Авторы натренировали 8B-модель Mamba-2-Hybrid. Она сравнялась по качеству с трансформерами. Благодаря замене слоёв аттеншена SSM-слоями в теории можно добиться ускорения x7. Также есть гипотеза, что уменьшение кэша key-value позволит модели использовать более крупные батчи, чем трансформерам, и ещё сильнее ускорить инференс.

Как вам такой подход? Делитесь впечатлениями в комментариях!

Разбор подготовил Никита Шаповалов

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
28👍18🔥9💩3
Mixture-of-Agents — простой способ улучшения ответов LLM

Сегодня рассмотрим статью, которая описывает метод улучшения результатов LLM на разных бенчмарках без дообучения. Он называется Mixture-of-Agents (MoA).

Суть метода заключается в использовании нескольких LLM для генерации ответов. Авторы статьи создали многослойную структуру с несколькими агентами — собственно, моделями — на каждом слое. На вход подавали один вопрос. Каждый из агентов давал ответ. Затем полученные данные агрегировались и вместе с промптом передавались на следующий слой, где процесс запускался заново.

В итоге получался ответ, который превосходит по качеству все предыдущие. Интересно то, что модели показывают лучшие результаты, когда имеют доступ к выходным данным других LLM — даже если ответы последних не слишком качественные. Этот феномен авторы назвали «коллаборативностью LLM» (Сollaborativeness of LLMs).

Эксперименты показали, что использование разных LLM на разных слоях улучшает результаты. Агрегаторы тоже играют важную роль — если пропоузеры могут быть относительно простыми и легкими, то агрегаторы требуют значительных вычислительных ресурсов.

Бенчмарки подтвердили, что MoA — эффективный метод. Скажем, на AlpacaEval 2.0 и MT-Bench применение такой архитектуры дало прирост производительности до 8% по сравнению с GPT-4 Omni.

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

Рассказывайте в комментариях, что думаете о MoA?

Разбор подготовил Никита Шевченко

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5218🔥13💩2
Как устроена Nemotron-4 340b

Компания NVIDIA выпустила одну из самых крупных и качественных open source моделей — Nemotron-4 340B. Сегодня разберём сразу две статьи, в которых рассказывается об её устройстве.

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

Вопреки современным трендам, NVIDIA использовала функцию активации squared ReLU, но при этом отказалась от гейта. Параметризация layer-norm также нестандартна: вместо инициализации единицами применяется инициализация нулями с добавлением единицы на каждом форварде.

В датасетах alignment NVIDIA использовала небольшое количество человеческой разметки. Датасет обучения reward-модели включает в себя всего лишь 10 тысяч пар ответов, размеченных по пяти параметрам: от общей пользы до связности и сложности.

SFT также включал лишь 10 тысяч написанных человеком примеров. При этом суммарно в SFT-датасетах вышло порядка миллиона примеров, из которых почти все были сгенерированы. Интересно, что сгенерированы были и сами промты — для этого NVIDIA использовала Mixtral 8x7B.

По итогу получилось два SFT-датасета и два раунда обучения. Сперва модель обучали Code SFT на 800 тысячах примеров. А затем ту же модель — дообучали General SFT ещё на 200 тысячах примеров.

Далее следовал один раунд DPO и три раунда собственного метода NVIDIA — RPO (Reward-aware Preference Optimization). Для обучения стандартного DPO используется только порядок внутри пары: оптимальная политика максимизирует расстояние между наградой за выбранный и отклонённый ответ. Такой подход может приводить к переобучению, поэтому в RPO авторы предложили аппроксимировать саму разницу между наградами, которые считают Reward-моделью.

После всех этапов обучения и тестирования модель Nemotron показала хорошие результаты на бенчмарках вроде MMLU. Интересно, что модель почти не росла после раунда DPO, но последующие RPO способствовали улучшению.

Nematron опережает большинство других open source-решений и тягается почти на равных с закрытыми. Скажем, в Arena Hard модель NVIDIA показала результат 54,2, что выше чем у Claude 3 Sonnet (46,8) и Qwen2 72b (48,1).

В сравнении, проведённом людьми, у Nemotron практически паритет c GPT-4 по всем задачам, исключая переписывание текста. Здесь модель NVIDIA справлялась лишь в 3,03% случаев. Однако стоит учитывать, что «живые» замеры проводилось на небольшом количестве примеров — их было всего 136.

Рассказывайте в комментариях, что думаете о Nemotron-4?

Разбор подготовил Руслан Васильев

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍117
DeepSeek-V2 — MoE-модель с технологией MLA

Компания DeepSeek представила MoE-модель DeepSeek-V2 на 236 миллиардов параметров. Сегодня мы разберём статью, которая рассказывает об особенностях этой модели.

Модель состоит из 236 миллиардов параметров, однако на каждый токен активно используется лишь 27 миллиардов. Это позволило значительно увеличить длину контекста до 128 тысяч токенов.

Для сравнения и оценки результатов в DeepSeek использовали dense-модель на 67b. Авторы смогли существенно снизить стоимость обучения и уменьшить размер KV-кэша, что позволило увеличить скорость генерации токенов почти в 8 раз. Эти достижения обеспечили модели преимущество в производительности.

В DeepSeek-V2 внедрён модифицированный attention, который получил название MLA (Multi-Head Latent Attention). Этот механизм позволяет кэшировать уменьшенный вектор с последующим его восстановлением, что значительно снижает объём ресурсов, необходимый для работы модели. Как устроен MLA в сравнении с MHA, GQA и MQA, вы можете увидеть на изображении выше.

При таком подходе нельзя напрямую использовать RoPE (Rotary Position Embedding) — в противном случае матрица RoPE становится неразделимой с остальными операциями, что значительно снижает эффективность вывода. В DeepSeek предложили стратегию так называемого «развязанного RoPE» (decoupled RoPE), в которой дополнительные ключи несут позиционную информацию.

Модель показала хорошие результаты в бенчмарках. В MMLU она добилась показателя в 78,3%, а в тестах на китайском языке, таких как CLUEWSC, C-Eval и CMMLU, DeepSeek-V2 показала лучшие результаты среди всех открытых моделей.

Разбор подготовил Сергей Горбунов

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
25🔥15👍8👎3🥰1😁1
Масштабирование и параметризация

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

Авторы статьи Tensor Programs V предлагают использовать Maximal Update Parametrization (µP) — перенос параметров с маленькой модели на большую без дополнительной настройки.

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

Чтобы достичь стабильности гиперпараметров, нужно правильно масштабировать спектральную норму матриц весов — показатель максимально возможного растяжения или сжатия вектора при его умножении на матрицу. Авторы статьи отмечают, что добиться стабильности можно двумя способами: правильным масштабированием инициализаций и послойных LR, либо напрямую спектральной нормализацией матриц весов и их обновлений в процессе обучения.

Благодаря такому решению масштаб признаков и их изменений на каждом шаге сохраняется при увеличении размера сети — этого оказывается достаточно для стабильности гиперпараметров. В статье A Spectral Condition for Feature Learning предполагается, что обновления весов в градиентном спуске имеют низкий ранг и хорошо согласуются с векторами активаций. Однако предположение о такой согласованности на самом деле выполняется не всегда, поэтому в более свежей статье Scaling Exponents Across Parameterizations and Optimizers авторы предлагают дальнейшее улучшение метода с поправкой на это.

Расскажите в комментариях, что думаете по поводу этих методов!

Разбор подготовил Дмитрий Лунин

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍196🔥6
Впечатления от ICML 2024 и несколько интересных статей

Отгремела конференция ICML, но делиться впечатлениями от мероприятия никогда не поздно. Руководитель команды YandexGPT Alignment Андрей Бут рассказал нашему каналу, чем ему запомнилось событие и на какие статьи стоит обратить внимание.

Первое и главное впечатление — LLM добрались и до ICML. Им была посвящена примерно треть работ. Ну что же, о времена, о нравы.

С другой стороны, большой плюс конференции в том, что организаторы смогли поддержать разнообразие работ по всем темам. Можно было найти и «хардкорную математику» и обзорные position-статьи. Приятно порадовали работы по RL — причём за счёт того, что работы по RLHF были вперемешку со «взрослым RL», можно было оценить применимость к области LLM.

Несмотря на рост числа работ, по-прежнему остаётся опция пообщаться за постером (привет, NeurIPS). Хотя охватить все интересные статьи — скорее невозможная задача.


Интересные статьи

A Closer Look at the Limitations of Instruction Tuning

В этой работе авторы задаются вопросом: какие есть минусы у Supervised Finetuning (SFT) и может ли обучение с LoRA побороть их? Исследователи опираются на тот факт, что при SFT модель чаще галлюцинирует и подстраивается под SFT-датасет. Проводятся различные эксперименты, чтобы доказать эту гипотезу. В статье показано, что LoRA выдаёт лучший результат на нескольких общепризнанных датасетах — например, SFT-Alpaca-52k, SFT-Wizard-LM и других.

Self-Rewarding Language Models

В этой работе исследователи задаются вопросом: можно ли отказаться от дорогой preference-разметки? Авторы предлагают подход, в котором исходная модель используется для генерации новых инструкций и ответов, а также для их оценки! За три итерации такой метод выдаёт сильные результаты, превосходящие Claude 2, Gemini Pro и GPT-4 0613.

Is DPO Superior to PPO for LLM Alignment? A Comprehensive Study

Авторы этой публикации рассматривают преимущества двух популярных алгоритмов для RLHF: DPO и PPO. В работе есть как интересные теоретические находки (область решений PPO строго вложена в область решений DPO), так и практические советы о том, как добиться лучших результатов для каждого из подходов. Своими замерами авторы демонстрируют, что при правильном «приготовлении» PPO превосходит DPO.

Душный NLP
🔥34👍126
ICML 2024 — ещё интересные статьи

Соскучились? Специально для Душного NLP Роман Горб из команды ускорения инференса YandexGPT поделился релевантными его рабочей области статьями с ICML 2024.

Towards Efficient Generative Large Language Model Serving

Отлично структурированная статья и рассказ об LLM Serving — о челленджах, их причинах и решениях. Сначала описывается генеративный сценарий и его природа. Авторы отмечают, что корпорации вкладываются в LLM, размеры моделей растут и появляются новые семейства. Но есть и платформы, на которых модели хочется деплоить, что требует инженерных усилий. Где-то между находится LLM Serving. Задача области — поиск компромисса между качеством и скоростью (compute budget), о чём и рассказывает статья.

На первой картинке — 2 подкласса методов: алгоритмические и системные. С подробностями предлагаю ознакомиться самостоятельно, но выделю часть из них.

Speculative Decoding

Базово для этого метода нужны 2 модели: draft и verifier. Первая быстро и дёшево генерирует гипотезы; вторая — выбирает из них валидное продолжение так, чтобы генерация происходила из распределения verifier-модели. Чем больше токенов «угадывает» draft-модель, тем выше ускорение. В продвинутых версиях растёт утилизация ресурсов GPU.

Свежие работы (EAGLE и MEDUSA) предлагают уменьшить draft-модель для большего ускорения при сохранении качества. Авторы дообучают небольшие головы поверх verifier-модели, что снижает оверхэд и ускоряет процесс даже в сложных сценариях с высоким throughput токенов. Draft-головы генерируют гипотезы в виде дерева, а не списка (см. картинку 2), что повышает точность принятия токенов.

Архитектурная Оптимизация

В MobileLLM и Rethinking Optimization and Architecture for Tiny Language Models исследуют вопрос оптимальной архитектуры моделей до 1B для мобильных устройств. Авторы за тот же compute получили значительные + 4 пп качества на бенчмарках с помощью SwiGLU-активаций, глубоких, а не широких сети, shared-эмбеддингов, Grouped Query Attention, init из весов более крупных моделей и прунинга.

Душный NLP
21👍11🔥7
Branch-Train-MiX — метод создания MoE-моделей

Сегодня рассмотрим статью, в которой предложен метод получения MoE-модели (Mixture-of-Experts) из обычной, dense-модели. Авторы назвали его Branch-Train-MiX (BTX).

Для начала напомним, что такое MoE. Это архитектурный подход, который предполагает использование в трансформенных слоях нескольких FNN-блоков — экспертов. У каждого из них предположительно есть собственная узкая специализация, поэтому над решением поставленной модели задачи они работают не одновременно. Роутер выбирает, какие эксперты лучше подходят для обработки токенов на каждом конкретном этапе.

Во время инференса модели, построенные на архитектуре MoE, задействуют меньше параметров, чем их dense-аналоги — и без сильной потери качества. Кроме того, они прекрасно масштабируются. Поэтому понятно стремление превратить обычную модель в MoE.

В основе идеи авторов лежит метод BTM (Branch-Train-Merge). Суть его заключается в том, чтобы взять несколько одинаковых LLM, параллельно обучить их на разных датасетах, а затем агрегировать предсказания каждой модели во время инференса.

Рассматриваемая статья предлагает после обучения слить все модели в MoE, чтобы FNN каждой базовой модели стал экспертом в соответствующем слое, и добавить роутер. Веса аттеншена при этом следует усреднить и дообучить.

Авторы взяли три копии Llama-2 7B и дообучили каждую на своём домене: математика (на тех же данных, что и Llemma), программирование (на тех же данных, что CodeLlama) и общие знания (на «Википедии»). К финальной модели добавили оригинальную Llama-2 7B, не дообученную на чём-то конкретном. Получившуюся MoE-модель файнтюнили на источниках, которые применялись для обучения всех четырёх экспертов. В результате модель не сильно уступает тем же Llemma и CodeLlama в вопросах математики и программирования.

Интересно и то, что BTX-модели обретают интерпретируемость. Авторы показывают, что в эксперта, обученного на определённом домене, попадают токены из сэмпла этого же домена.

Рассказывайте в комментариях, что думаете про BTX!

Разбор подготовил Александр Пацация

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍14💯7
REST — метод ускорения генерации токенов

Сегодняшняя статья посвящена методу Retrieval-Based Speculative Decoding (REST). По словам авторов, он позволяет ускорить генерацию токенов более чем в два раза. А в основе подхода лежит спекулятивное декодирование. О нём сперва коротко и расскажем.

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

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

Авторы статьи предлагают использовать вместо меньшей модели базу данных, построенную на суффиксном массиве и включающую корпусы кодов и текстов — например, диалогов UltraChat. Из базы извлекаются:

Контексты (contexts) — последовательности токенов, которые служат отправной точкой для поиска продолжений.
Продолжения (continuations) — следующие за контекстом токены, представляющие возможные варианты развития текста или кода.

Подходящие продолжения организуются в древовидную Trie-структуру, где каждый узел — это токен. Далее выбираются те последовательности токенов, которые повторяются чаще всего. Их называют кандидатами (candidates).

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

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

Результаты тестов на CodeLlama и Vicuna показали прирост в скорости генерации токенов с использованием REST в 1,62–2,36 раза. Однако методу ещё есть, куда развиваться. Так, авторы отмечают, что результат сильно зависит от полноты и качества базы данных, и рекомендуют собирать её, используя LLM. Кроме того, возникают трудности с пониманием контекста — например, при генерации персонализированных названий переменных в программировании.

Рассказывайте в комментариях, а что вы думаете о REST?

Разбор подготовил Дмитрий Васильев

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2914🔥8👌1
Self-Rewarding Language Models

В сегодняшней статье — концепция Self-Rewarding Language Models. Они не только генерируют ответы, но и оценивают их качество в процессе обучения.

Традиционные подходы к обучению, такие как обучение с подкреплением на основе обратной связи от людей (RLHF), ограничены качеством и объемом человеческих данных. Авторы статьи предлагают модель, которая сама создает инструкции, генерирует ответы и оценивает их качество, используя технику LLM-as-a-Judge.

Обучение проводится через итерации, каждая из которых состоит из следующих этапов:

1. Генерация ответов на основе текущего датасета. На первой итерации — созданного человеком.
2. Оценка ответов — модель сама оценивает качество ответов по определённым критериям, таким как релевантность, полезность, чёткость и уровень экспертизы.
3. Создание самоинструкций для следующего шага — модель создает новые инструкции на основе исходного набора данных.
4. Следующая итерация — дообученные модели используются для последующих итераций обучения. Это ведёт к улучшению качества как генерации ответов, так и их оценки.

В экспериментах использовали Llama 2-70B, обученную на датасете Open Assistant. Модель прошла через три итерации обучения с самосозданными данными.

— Первичная модель, файнтюненная на IFT (Instruction Fine-Tuning) и EFT (Evaluation Fine-Tuning)-данных с помощью SFT, показала результаты, сопоставимые с базовой моделью.
— Вторая итерация, обученная на AIFT (AI Feedback Training) c помощью DPO, выдавала лучший ответ в 55,5% случаев, а в 32,8% — того же качества.
— Третья итерация в 47,7% случаев выдавала лучший ответ, а в 39,8% — того же качества.

Модель, прошедшая три итерации обучения, продемонстрировала улучшения в тестах AlpacaEval 2.0, превзойдя модели Claude 2, Gemini Pro и GPT-4 0613. Модель третьей итерации показала 20,44% выигрышей в тестах, что значительно выше предыдущих итераций (9,94% для первой и 15,38% для второй).

Разбор подготовил Валентин Шубин

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3610🔥6
ReMax как альтернатива PPO

Сегодняшняя статья — об интересном методе обучения с подкреплением, который называется ReMax. Авторы предлагают его как замену популярному алгоритму Proximal Policy Optimization (PPO).

ReMax основывается на алгоритме обучения с подкреплением, который называется REINFORCE — отсюда и приставка Re. В REINFORCE, в отличие от PPO, нет value-модели. Она выступает в роли бейзлайна для снижения дисперсии оценки градиента и представляет собой среднюю награду, которую наберёт генератор, если будет отвечать на конкретный запрос.

Вместо отдельной value-модели в ReMax предлагают использовать другой бейзлайн — то, сколько награды набирает greedy-генерация обучаемой моделью на запросе. Отсюда окончание Max. Такой бейзлайн тоже отлично подходит с точки зрения теории, и не требует хранения дополнительной модели в памяти — авторы сообщают, что снижение потребления GPU-памяти составляет 46%. А поскольку число моделей, необходимых алгоритму алайнмента, уменьшилось, то уменьшилось и число гиперпараметров, которые нужно подобрать.

Использование ReMax для обучения модели Mistral-7B показало значительные улучшения. Модель достигла 94,78% успеха на leaderboard AlpacaEval и установила новый стандарт для моделей с 7 миллиардами параметров. Эти результаты демонстрируют, что ReMax может стать отличной альтернативой PPO для RLHF-задач, значительно сокращая вычислительные затраты и повышая эффективность обучения крупных языковых моделей.

Разбор подготовил Павел Темирчев

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍12🤔5👎21
О претрейн-датасете LLaMA 3.1

Сегодня расскажем о том, как устроен претрейн-датасет для LLaMA 3.1. Разработчики этой LLM поделились множеством подробностей, поэтому будет интересно.

Одна из важнейших характеристик LLaMA 3.1 — объём данных, на которых она обучалась. Для этой модели использовался претрейн-датасет из 15 триллионов токенов. Это один из самых больших наборов данных для языковых моделей, превосходящий, например, LLaMA 2 с её 2 триллионами токенов. Модель также включает специальный набор данных для длинных контекстов.

Сбор данных для LLaMA 3.1 построен на стандартном пайплайне для обработки текста из HTML. Один из его ключевых аспектов — это фильтрация данных на ранних стадиях. Она включает как дедупликацию данных, так и использование эвристических методов для удаления нежелательных токенов.

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

LLaMA 3.1 демонстрирует хорошие результаты благодаря специальным пайплайнам для математических задач и задач, связанных с программированием. Объем данных по коду и математике в датасете LLaMA 3.1 превосходит весь датасет оригинальной LLaMA.

Для оценки качества данных использовались различные классификаторы, полученные дистилляцией LLaMA 2. Другие классификаторы отбирали документы, опираясь на вероятность их принадлежности к определённому домену. Один из интересных моментов — использование классификаторов для оценки доменов с целью дальнейшего перевзвешивания различных частей датасета. Например, данные из области искусства и развлечений могут быть уменьшены в весе по сравнению с математикой.

Фильтрация включает несколько уровней дедупликации. Во-первых, стандартная дедупликация с использованием метода MinHash. Есть также локальная дедупликация — метод, при котором данные разбиваются на блоки, и дубликаты удаляются только внутри этих блоков.

Ещё одной важной частью фильтрации данных стала проверка на безопасность. Разработчики LLaMA 3.1 реализовали специальные фильтры для удаления вредоносного или небезопасного контента. Эти фильтры основаны на классификаторах и могут удалять не только нежелательные токены, но и данные с персональной информацией.

LLaMA 3.1 также выделяется своими экспериментами в области Data Mixer — процесса, в котором данные разделяются по доменам, а затем перевзвешиваются для оптимальной работы модели.

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

Разбор подготовил Дмитрий Мокеев

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥165
Архитектура LLaMA 3.1

Продолжаем разбирать LLaMA 3.1. В прошлый раз речь шла о претрейн-датасете, а в этот раз — об архитектуре модели.

Llama 3 использует стандартную архитектуру трансформера, которая не сильно отличается от того, что было в LLaMA и LLaMA 2. Однако отличия есть. Скажем, если в LLaMA 2 Grouped Query Attention (GQA) с восемью ключевыми головами внимания использовались только в моделях на 34B+, то здесь GQA применяется для всех моделей LLaMA 3.1. Это позволило повысить скорость вывода и уменьшить объём данных, необходимых для кеширования во время декодирования.

Ещё одно важное изменение — увеличение контекстного окна до 128 тысяч токенов. Это стало возможным благодаря увеличению гиперпараметра базовой частоты RoPE до 500 тысяч. Такой подход позволяет модели эффективно решать задачи, связанные с большими объёмами текстов. Модель также использует словарь на 128 тысяч токенов.

Разработчики внедрили четырёхмерный параллелизм (4D Parallelism), который включает тензорный, пайплайновый, контекстный и параллелизм данных. Этот подход позволяет значительно улучшить утилизацию ресурсов при обучении на тысячах GPU. Например, для обучения модели с 405 миллиардами параметров использовалось до 16 тысяч GPU, а средняя утилизация вычислительных ресурсов составила около 41%​.

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

Помимо этого, в архитектуре LLaMA 3.1 активно используется FP8-квантизация, которая значительно ускоряет вычисления без значительных потерь в точности. Это позволяет экономить до 50% времени на вычисления по сравнению с традиционными методами, что критично для моделей с миллиардами параметров. FP8-квантизация используется не для всех слоев, потому что она может вызвать ошибки при вычислении в attention-слоях. Подход доказал свою эффективность при решении большинства задач​.

Разбор подготовил Михаил Хрущев

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49🔥209🤩3
Ограничения Instruction Tuning и как их преодолеть

Supervised Full Fine-tuning (SFT) — распространённая практика, но он не лишён недостатков. Авторы сегодняшней статьи задаются вопросом: а может ли LoRA (Low-Rank Adaptation) исправить недочёты?

При использовании Full Fine-tuning возникает две проблемы: у моделей часто возникают сложности с извлечением новых знаний из SFT-датасета, могут участиться галлюцинации. Исследование показало, что модели, обученные с использованием Full Fine-tuning, могут генерировать неверные ответы, если берут слишком много токенов из SFT-датасетов. Эффект особенно заметен, если модель пытается отвечать на вопросы, требующие глубокой экспертизы.

Например, на вопрос «Какие основные работы Эйнштейн сделал после того, как в 1915 году открыл Общую теорию относительности?» модель начинала выдавать не соответствующие действительности ответы — скажем, о «квантовой теории атома трития».

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

Первые несколько процентов токенов, сгенерированных LoRA-моделью, могут быть изменены (по сравнению с ответом предобученной модели), чтобы правильно начать ответ. Но большая часть предложения остаётся такой же, как у предобученной модели. Это позволяет уменьшить количество галлюцинаций. Эксперименты показали, что LoRA даёт более точные ответы.

LoRA эффективен даже при малом объёме датасета. Например, модель с LoRA, обученная на наборе данных из 1000 инструкций, может превосходить модели с SFT на датасетах по срезам фактологичености и полезности, содержащих 52 000 или даже 326 000 инструкций. В экспериментах использовались различные открытые и домен-специфичные датасеты, включая MedInstruct и Alpaca. Модели с LoRA демонстрировали лучшее соответствие фактам и были менее подвержены галлюцинациям.

Разбор подготовил
Алексей Шимко

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍428🔥5💯2
Алаймент LlaMA 3.1

Возвращаемся к LlaMA 3.1 и продолжаем разбираться, как она устроена. В этот раз речь пойдёт об алайменте модели.

По сравнению с LLaMA 2 у третьей версии изменилась разметка пар. Помимо стандартных chosen и rejected добавилась ещё метка edited. Она ставится в тех случаях, когда победивший объект не слишком хорош и его переписывают. Ответы оцениваются по семибалльной шкале.

SFT происходит в шесть раундов. Если в LLaMA 2 использовался PPO, то в LlaMA 3 — DPO. Разработчики отмечают, что это связано с тем, что PPO требует больше вычислительных ресурсов, а качество выходит хуже.

Ещё одно важное отличие — это специализация. На претрейне модель доучивают для решения специальных задач. Потом делают отдельный алаймент, полученную специализированную модель используют для генерации новых обучающих данных стадии алайнмента, а также мержат веса нескольких специализированных модель в единую модель.

Reward-модель обучается над претрейном. Margin term, который был в Llama 2, в третьей версии отсутствует, так как, по словам разработчиков, он не даёт никакого прироста в качестве. Как и в DPO, оставляют только те ответы, которые помечены как «сильно лучше» и «лучше». Кроме того, в reward-модели есть отдельные награды для полезности и безопасности.

За один раунд SFT 405B-модель суммарно проходит 576 тысяч сэмплов. В DPO используют сэмплы от моделей с последних раундов (а в reward-модели — все). Служебные токены, такие как EOS или токены для вызовов функций, маскируют для стабилизации обучения. Кроме того, к DPO добавляют NLL (CE) с коэффициентом 0,2. Это нужно, чтобы повысить вероятность chosen-ответов. Промпты для обучения пишут люди, а ответы — модели. На один промпт выбирают лучший ответ из 10-30 поступивших.

В LlaMA 3.1 есть четыре уровня фильтрации данных:

1. Rule-based — удаляет дисклеймеры, смайлики и восклицания;

2. Quality — качественными считаются 25% ответов с наибольшим скором. Кроме того, используется LLM-as-judge. Ответы оцениваются по трём критериям для обычных данных и двум — для кодинга. Ответ считается качественным, если все критерии выполнены. Сэмпл попадает в обучение, если хотя бы один из методов показал, что ответ качественный;

3. Difficulty — оценивается по числу интентов в запросе: чем их больше, тем сложнее запрос. Также модель оценивает сложность по трёхбальной шкале;

4. SemDedup — этот метод используется для удаления похожих данных, при отборе отдается предпочтение семплам с максимальным значением quality * difficulty.

Алаймент для каждой из функциональных возможностей (Capabilities) LLaMA 3.1 имеет свои особенности. Например, в коде есть много синтетических данных, используется execution feedback и перевод на редкие языки программирования. А для математики берут тексты из претрейна и уже к ним генерируют инстракты.

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

Разбор подготовил Алексей Зотов

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37🔥136🤝2👎1
Инфраструктура LLaMA 3.1

Продолжаем серию постов о модели Meta* рассказом об инфраструктуре. На чём же училась LLaMA?

Претрейн 405B-модели осуществлялся на 16 тысячах H100, с потреблением электроэнергии в 700 Вт каждая. Использовалась кастомная платформа с Liquid Cooling-хостами.

У Meta есть general-purpose-хранилище на основе TectonicFS. Изначально его использовали и для обучения ИИ, и для других процессов и клиентов. Однако создание чекпоинтов оказывало очень большую нагрузку на хранилище. Поэтому инженеры создали отдельное хранилище исключительно для тренировок модели.

Что касается сети, то в Meta сделали сразу два кластера: с RoCE для большой модели и с Infiniband для моделей поменьше. В каждой стойке по два хоста, а каждом хосте — по восемь GPU. Всего в кластере 24 тысячи GPU, из которых 16 отведены под обучение.

Внутри каждого из восьми модулей на 3072 GPU максимальная пропускная способность сети. А между модулями — она в семь раз меньше. Планировщик распределяет задачи по хостам, тем самым минимизируя сетевые коммуникации между модулями. Также используется NCCLX — кастомная версия библиотеки для коммуникаций NCCL.

Как показатель эффективности использовали Model FLOPS Utilization (MFU) — это коэффициент отношения наблюдаемого числа обработанных токенов к теоретическому максимальному числу. Он достигает от 38% до 43% — в зависимости от сетапа. Подробнее — в таблице выше.

О надежности. За 54 дня претрейна случилось 419 непредвиденных остановок — то есть примерно по 8 в день. Из строя ежедневно выходило 0,3-0,4% оборудования. Статистику по падениям можно посмотреть во второй таблице. Боролись с неполадками и предотвращали их с помощью частых чекпоинтов, быстрых рестартов, инструментов для диагностики проблем. Кроме того, инженеры — не прерывая обучение — могли менять настройки и уровень логирования.

Напоминаем, что у нас есть и другие посты о LLaMA 3.1:
о претрейн-датасете;
архитектуре модели;
алайменте.

А в канале CV Time вы найдёте пост о том, как LLaMA 3.1 работает с изображениями, а также много других интересных разборов и репортажи с профильных конференций. Подписывайтесь!

Душный NLP

Meta признана экстремистской организацией, а Facebook и Instagram запрещены на территории РФ
👍23🔥1210🤯3🤮1