Canal КПД @quant_prune_distill en Telegram

КПД

КПД
Квантование & Прунинг & Дистилляция

Блог про сжатие сетей и не только.
От древнейших времен по настоящее время.
2,123 Suscriptores
106 Fotos
3 Videos
Última Actualización 09.03.2025 02:41

Canales Similares

partially unsupervised
7,861 Suscriptores
Sberloga
2,621 Suscriptores

Квантование, Прунинг и Дистилляция: Современные Технологии Сжатия Нейронных Сетей

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

Что такое квантование нейронных сетей?

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

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

Как работает прунинг в нейронных сетях?

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

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

Что такое дистилляция в контексте нейронных сетей?

Дистилляция — это метод, позволяющий обучить более компактную модель (студент) под руководством более сложной модели (учитель). Учитель передает свои знания студенту, который при этом учится лучше обобщать данные, сохраняя при этом высокую точность предсказаний.

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

Каковы преимущества использования сжатия нейронных сетей?

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

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

Когда лучше использовать квантование, прунинг и дистилляцию?

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

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

Canal de Telegram КПД

Канал 'КПД' (@quant_prune_distill) - это место, где вы найдете все о квантовании, прунинге и дистилляции нейронных сетей. Если вы интересуетесь темой сжатия сетей, то этот блог идеально подойдет для вас. Здесь собрана информация от древнейших времен до настоящего времени, чтобы помочь вам разобраться в этой сложной теме. Мы предлагаем самые свежие новости, исследования, и советы от экспертов в области машинного обучения. Присоединяйтесь к нашему каналу и станьте частью сообщества, увлеченного технологиями сжатия нейронных сетей. Узнавайте новое, обменивайтесь опытом и прокачивайте навыки вместе с 'КПД'.

Últimas Publicaciones de КПД

Post image

Do Large Language Model
Benchmarks Test Reliability?

[Статья][Блогпост][Код]

Новые SOTA LLMки выходят нынче, как собаки нерезанные, и тем острее встает ребром вопрос о качестве их оценки.

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

Группа исследователей из MIT решила взглянуть критически на популярные бенчмарки и качество ведущих моделей на них, и обнаружила следующее:

Ни одна модель не является безупречной, и даже SOTA LLM допускают осечки в простых случаях
Бенчи не без греха. В популярном GSM8k 5% условий и решений содержат проблемы.
У разных моделей разные достоинства. o1-mini лучше всех из списка в плане общего решения математических задач, но Sonnet понимает текст (reading comprehension).

Далее в блоге авторы приводят примеры забагованных задач:
🎯 С неправильным ответом
🎯 С ошибками и неоднозначностью в условии
🎯 Где забыли условие задачи

Кроме того, на днях те же авторы опубликовали почищенный тест-сет GSM8k под названием GSM8K-Platinum, и показали,, что ведущие LLM допускают на нем гораздо меньше ошибок по сравнению с оригинальной версией от OpenAI.

Мораль проста - ежели у вас есть штангенциркуль, смотрите, чтобы у него не поехала шкала.

У проекта есть классный 🥰 дашборд с визуализациями ошибок моделей.

08 Mar, 19:40
501
Post image

Дорогой коллега и товарищ @snk4tr (по совместимости автор канала @c_research) выкатил на Хабр блогпост От каскадных моделей до картинок в 4к: как эволюционировали диффузионки.

Рекомендую всем желающим как-то осмыслить или переварить происходщее в мире диффузионных моделей, а также проследить за прогрессом и трендами в области.

Приятного чтения!

04 Mar, 14:58
1,206
Post image

Судя по всему, комменты генерит только драфт модель

Придется зареджектить

01 Mar, 20:22
1,391
Post image

Метод

Авторы замечают следующее:
🎯 Таргет-модель может за 2-3 токена отвергнуть корректное решение драфт модели.
🎯 Если в качестве драфта использовать даже более сильную модель, GPT-4o для Llama-3.1-405B, acceptance rate все еще не слишком высок.
🎯 Если драфт модель ошиблась, таргет-модель пытается корректировать ее. (The capital of France is Berlin... No just kidding. The capital of France is actually Paris.) 😄

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

Датасет для обучения собирают следующим образом:
⚡️Отбирают примеры из Alpaca, ARC (только промпты)
⚡️Генерируют продолжения разными моделями - 🦙-ми, Мистралями
⚡️Отбирают вручную лучшие примеры

На выходе 500 примеров (вопрос, хороший ответ, плохой ответ). Все токены из правильного ответа и токены до места ошибки в неправильном ответе считаются как положительные примеры.

Полученный датасет несбалансирован, и потому в лоссе дается больший вес отрицательным примерам.

Классификатор - это просто линейная голова поверх признаков на выходе последнего слоя, которая учится за полтора часа.

Эксперименты

В качестве драфт-модели берут 🦙-3-8B, а таргет -🦙-70B, 80B. Качество замеряют на GSM8k, HumanEval, ARC-Challenge.

Для оценки скорости рассматривают как неоптимальный инференс через трансформерс, так и куда более эффективный GPT-Fast.

В качестве бейзлайнов рассматривают драфт-модель и topk принятие (т.е принимаем токен, если в top с наибольшей вероятностью).

Предложенный метод почти идентичен по качеству прогону таргет модели, и заметно лучше лрафта и topk. При этом удается достичь ускорения в 3-4 раза с GPT-Fast (против ~2 у стандартного Speculative Decoding и EAGLE-2) и до 10 раз при HF инференсе.

В ablation пробуют применяться в OOD сетапе - валидировать метод на HumanEval без примеров на код в обучающей выборке. Работает хуже, но все еще лучше, чем TopK.

Вывод

Хорошая идея с очевидной практической пользой. Приятно, что обучение требует довольно небольшого компьюта (меньше чем у того же EAGLE). Интересно, как метод себя покажет на более сложных reasoning задачах.

01 Mar, 20:16
1,293