Дистилляция + Квантизация Для Edge Видео-ИИ

Автор: Николай СапуновОбновлено: август 202625 мин чтения
Содержание статьи +

Кратко

Дистилляция и квантизация – два способа сжать ИИ-модель, чтобы она могла работать на маленьком, дешёвом и часто не подключённом к сети устройстве – например, камере, телефоне или приставке – вместо арендованного GPU в дата-центре. Для видео, где модель должна анализировать каждый кадр, именно такое сжатие делает функцию доступной по цене. Квантизация оставляет ту же модель, но хранит её числа с меньшей точностью: шестнадцатибитные или тридцатидвубитные значения сокращаются до восьми или четырёх бит на число. Это уменьшает объём памяти в 2–8 раз, а на подходящем оборудовании модель работает быстрее – обычно с потерей точности менее одного процента при восьми битах и небольшой, управляемой потерей при четырёх. Дистилляция работает иначе: она обучает новую, более компактную модель («ученика») воспроизводить поведение большой («учителя»). Опубликованный результат для распознавания речи – это ученик, вдвое меньший по числу параметров, который работает примерно в шесть раз быстрее, сохраняя точность в пределах одного процента от учителя. Эти две техники не конкурируют: сначала вы дистиллируете модель, чтобы уменьшить её размер, а затем квантизуете, чтобы сэкономить на объёме чисел – и итоговая экономия оказывается умноженной.

Почему это важно

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

Этот урок предназначен для продакт-менеджера, основателя или техлида, который должен решить, где размещать ИИ-функцию – в облаке или на edge, утвердить бюджет на «железо» для камер или телефонов, понять, почему подрядчик говорит, что модель «не влезет», и разобраться, что на самом деле делают дистилляция и квантизация, как они влияют на точность и какой из методов выбрать. Это дополнение к теме сжатия к уроку про инференс-сервинг: сервинг делает модель быстрой на мощном GPU, а сжатие – настолько компактной, что большой GPU становится не нужен.

Два способа сделать модель меньше

Обученная ИИ-модель по сути – это огромный набор чисел, называемых весами (weights): значений, которые модель выучила в процессе обучения, и на которые она умножает входные данные, чтобы получить результат. В современных моделях их миллиарды. Именно эти числа определяют размер модели: сохраните их, загрузите на чип и умножайте достаточно быстро – и у вас будет работающая модель. Уменьшите их количество или удешевите хранение каждого – и модель станет компактнее. Вот в чём суть этого урока, и рычагов здесь ровно два.

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

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

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

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

Почему «edge» и почему видео делает это срочным

Слово edge означает запуск модели на устройстве, которое породило данные, или рядом с ним – на камере, телефоне, локальном сервере в серверной комнате, – а не отправку этих данных в облако. Противоположностью edge является датацентр: стойка мощных видеокарт, которые вы арендуете по часам. Выбор между ними – тема урока про задержку и развёртывание; сжатие делает edge-вариант возможным, потому что модель размером с датацентр просто не поместится на камеру.

Четыре силы толкают видео-ИИ именно к edge, и каждая из них для видео острее, чем для текста. Первая – объём: видео-обработка запускается не один раз на запрос, как у чат-бота, а на каждом кадре или каждой минуте записи, поэтому любая поминутная облачная плата умножается на огромное число. Вторая – полоса пропускания: передавать необработанное видео в облачную модель медленно и дорого, а иногда связь просто отсутствует – например, на носимой камере, дроне или производственной линии. Третья – задержка: эффекты вроде размытия фона или сигнал тревоги должны срабатывать мгновенно и не могут ждать ответа от сервера. Четвёртая – приватность: медицинскими, охранными и образовательными кадрами проще управлять, когда пиксели не покидают устройство – это особенно важно в телемедицине и любой регулируемой отрасли.

Загвоздка – в железе. У edge-устройства доля памяти и вычислительной мощности по сравнению с датацентровым GPU: у типичного edge-модуля может быть восемь гигабайт памяти против восьмидесяти у датацентровой карты. Модель, которая комфортно работает в облаке, на edge-устройствах даже не загрузится. Сжатие – это мост: с его помощью модель, обученную на мощном железе, заставляют работать на слабом. А поскольку видеофункция редко реализуется одной моделью – это конвейер из нескольких этапов (декодирование, детекция, транскрипция, описание, суммаризация, цепочка из урока про сервинг) – работа по сжатию повторяется для каждого этапа, и у каждого свой результат.

Квантизация: та же модель, числа дешевле

Начнём с квантизации – её обычно берут первой, потому что арифметика здесь наиболее прозрачна. Чтобы понять её, нужен один важный факт о том, как компьютер хранит числа. Вес обычно хранится как число с плавающей точкой – формат, способный представлять широкий диапазон значений с дробной частью, своего рода компьютерная версия научной нотации. Стандартный формат обучения использует тридцать два бита на число (его называют FP32, тридцатидвухбитная плавающая точка); бит – это единица информации, равная 0 или 1, так что тридцать два бита составляют четыре байта на вес. Сегодня большинство моделей хранят или обрабатывают данные в шестнадцати битах (FP16, два байта), и при этом никто не замечает разницы.

Квантизация идёт дальше – к целым числам (integers), не имеющим дробной части и занимающим значительно меньше места. INT8 использует восемь бит, то есть один байт на вес. INT4 – четыре бита, или полбайта. Трюк, позволяющий это работать, легко объяснить: возьмите диапазон значений, который реально охватывает группа весов, разделите его на фиксированное число равных шагов (256 шагов для восьми бит, 16 – для четырёх) и храните каждый вес как номер ближайшего шага, а не его точное значение. Два небольших служебных числа – scale (размер одного шага) и zero-point (какой шаг соответствует нулю) – позволяют чипу восстановить приблизительное исходное значение при необходимости. Вы обмениваете точность на размер ровно так же, как при округлении цен до рубля с заранее заданным правилом округления.

Выигрыш очевиден, потому что объём памяти растёт пропорционально количеству бит на вес. Возьмём модель с семью миллиардами весов – типичный размер для языковой или vision-language модели, работающей на устройстве. Объём памяти, необходимый только для хранения весов, равен числу весов, умноженному на количество байт на один вес:

FP32 (4 байта):  7 000 000 000 × 4   =  28 ГБ
FP16 (2 байта):  7 000 000 000 × 2   =  14 ГБ
INT8 (1 байт):   7 000 000 000 × 1   =   7 ГБ
INT4 (0.5 байта):7 000 000 000 × 0.5 =  3.5 ГБ

Прочитайте этот столбец сверху вниз – и edge-история раскрывается сама собой. На edge-устройстве с восемью гигабайтами памяти версия FP16 (14 ГБ) просто не загрузится; версия INT8 (7 ГБ) поместится, но почти не оставит места под рабочую память модели; а версия INT4 (3,5 ГБ) войдёт с запасом. Квантизация – это разница между «модель здесь невозможна» и «модель работает с запасом». Основополагающий результат из статьи 2018 года, заложившей основу целочисленного инференса, – перевод весов и активаций в восьмибитные целые числа даёт почти 4× сокращение памяти по сравнению с тридцатидвухбитной плавающей точкой, а на железе с целочисленными блоками ещё и работает быстрее: ведь обрабатывать и умножать меньшие числа дешевле.

Страх, пожалуй, напрасен: ведь округление каждого числа портит модель? Портит, но гораздо меньше, чем может показаться на первый взгляд. Хорошо воспроизводимое эмпирическое правило гласит: INT8-квантизация стоит менее одного процента точности для большинства моделей – потеря настолько мала, что пользователи её не замечают. Четыре бита – более агрессивный подход, требующий более умных методов (см. ниже), но современные четырёхбитные техники подходят к оригиналу удивительно близко. Урон оказывается небольшим, потому что нейросети по своей природе шумны и избыточны: они никогда не опирались на сороковой знак после запятой ни одного веса.

Два способа квантизации: PTQ и QAT

Есть два момента, когда можно квантизовать модель, и этот выбор повторяется, так что назовём его чётко.

Post-training quantization (PTQ) применяется после полного обучения модели: вы берёте готовую модель и снижаете разрядность её чисел без дополнительного обучения. Чтобы подобрать подходящие масштабы, PTQ один раз пропускает через модель небольшую выборку репрезентативных данных – этот шаг называют калибровкой – чтобы определить реальный диапазон значений и подобрать шаги под него. PTQ быстрый, дешёвый и не требует ни пайплайна обучения, ни размеченных данных – поэтому он является решением по умолчанию. Его слабость в том, что модель не успевает адаптироваться к округлению, и на чувствительных моделях потеря точности может оказаться слишком большой.

Quantization-aware training (QAT) проходит в процессе обучения: вы моделируете округление, пока модель ещё обучается, так что она учитывает ошибку квантизации и подстраивает веса, чтобы её компенсировать. В результате получается модель, более устойчивая к квантизации, которая восстанавливает большую часть или всю точность, которую потеряла бы при постобучной квантизации (PTQ). Платой за это становятся пайплайн обучения, исходные данные и время работы GPU. Стандартная практика – и надёжный выбор по умолчанию – сначала попробовать PTQ, измерить точность на своих данных и прибегать к QAT только в том случае, если потеря точности слишком велика для допустимого уровня качества. Большинству команд QAT для 8 бит не нужен никогда; для 4 бит – особенно на моделях, чувствительных к точности, – он зачастую необходим.

«Частая ошибка. Квантизовать модель и выпускать её, не проверив точность на своих данных. Цифра «менее одного процента» – это среднее по бенчмаркам, а не гарантия для вашей конкретной модели на вашем конкретном видео: детектор, теряющий долю процента в среднем, может потерять гораздо больше на том единственном редком классе, который вам действительно важен (оружие, падение, дефект). Квантизация – это никогда не «настроил и забыл». Каждый раз, когда вы сжимаете модель, вы заново прогоняете свой оценочный набор – тот, что построен в уроке про стенды оценки, – и сравниваете сжатую модель с оригиналом по метрикам, важным для вашей задачи, а не по общему лидерборду. Если вы не можете это измерить, вы не можете это выпускать.»

Зоопарк квантизации: INT8, AWQ, GPTQ, GGUF, FP8, FP4

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

INT8 с калибровкой – это надёжный и безопасный выбор по умолчанию для моделей компьютерного зрения на edge-устройствах. Детектор или модель позы, преобразованные в восьмибитные целые числа с помощью PTQ и оптимизированные через TensorRT от NVIDIA (оптимизатор из урока про сервинг), – стандартный путь к детекции в реальном времени на камерах или модулях Jetson с потерей точности менее одного процента.

GPTQ и AWQ – два наиболее известных четырёхбитных метода квантования для больших языковых и vision-language моделей. Они умнее простого округления, поскольку защищают наиболее важные веса. AWQ – Activation-aware Weight Quantization, удостоенный награды за лучшую статью на MLSys 2024, – основан на наблюдении: лишь небольшая доля каналов весов (около одного процента) отвечает за большую часть качества модели. Поэтому AWQ масштабирует и защищает эти значимые каналы, используя статистику по входным данным, а остальные веса округляет жёстко. Опубликованный результат – четырёхбитные веса с качеством, близким к шестнадцатибитному, при этом, поскольку AWQ не использует обратное распространение, он хорошо обобщается на instruction-тюнинг и мультимодальные модели – именно такие VLM развёртывает видео-команда. GPTQ достигает сопоставимого качества и разрядности иным способом: он корректирует ошибку округления слой за слоем. Любой из этих методов позволяет сократить объём памяти с 14 ГБ в FP16 до примерно 4 ГБ в четырёхбитном формате.

GGUF – это формат и метод, разработанные для популярного движка llama.cpp, и именно с их помощью большинство команд запускают квантизированные языковые модели на ноутбуках, Mac или небольших устройствах. Уровни «k-quant» в этом формате обозначаются суффиксами вроде Q4_K_M – четыре бита, смешанная точность, при этом наиболее важные слои сохраняются с более высокой точностью, а остальные – на четырёх битах, в среднем получается около 4,5 бита на вес. Измеренный компромисс между качеством и эффективностью отличный: переход с восьми бит до Q4_K_M снижает качество примерно на два процента, но экономит около сорока процентов памяти, поэтому Q4_K_M стал стандартным выбором сообщества. Выбор формата здесь напрямую связан с уроком про форматы артефактов моделей, где GGUF и его альтернативы – это вопрос стратегической закупки.

FP8 и FP4 – самые новые участники, и это форматы с плавающей точкой, а не целочисленные: восемь и четыре бита, но с очень маленькой экспонентой, так что они сохраняют часть диапазона чисел с плавающей точкой. Их значение определяется железом: поколение Blackwell от NVIDIA 2025 года добавило нативные четырёхбитные tensor cores, а его формат NVFP4 объединяет четырёхбитные значения с двухуровневой схемой масштабирования так, что модель, квантизованная с восьми битов до четырёх, теряет, по данным NVIDIA, один процент или меньше точности на языковых задачах, при этом достигая пропускной способности до четырёх раз выше, чем у восьмибитной версии на том же чипе. FP4 пока остаётся решением для дата-центров – ему требуется железо уровня Blackwell, – но именно здесь и движется граница точности. Это говорит о том, что «четыре бита» становятся полноценным участником вычислений, а не средством отчаяния.

Рисунок 2. Зоопарк квантизации. Восьмибитный INT8 – безопасный edge-дефолт; четырёхбитные AWQ, GPTQ и GGUF позволяют запускать большие модели на малых устройствах; FP8 и FP4 – граница, заданная железом.

Дистилляция: маленький ученик учится у большого учителя

Квантизация сжимает числа, но сохраняет структуру модели. Дистилляция делает наоборот: она меняет саму модель, обучая меньшую сеть-«ученика» воспроизводить поведение более крупной «учителя». Идея пришла из статьи Хинтона, Виньялса и Дина 2015 года, и её ключевое прозрение – тонкое и достойное понимания, потому что объясняет, почему дистилляция вообще работает.

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

Дистилляция обучает ученика не на жёстких метках («собака»), а на полных мягких вероятностях учителя («девяносто/восемь/один»), а контроль температуры смягчает эти вероятности так, что даже маленькие, близкие к нулю значения становятся заметными и пригодными для обучения. Ученик учится суждению учителя, а не только финальному ответу – поэтому маленькая модель, обученная таким способом, превосходит по качеству такую же по размеру модель, обученную с нуля только на жёстких метках.

Конкретные результаты – причина, по которой дистилляция заслуживает своего места. Модель DistilBERT 2019 года взяла стандартную языковую модель и создала ученика, который оказался на 40% меньше и на 60% быстрее, сохранив при этом 97% понимания языка оригинала. Важный результат в области видео – Distil-Whisper, дистиллированная версия модели распознавания речи Whisper от OpenAI: дистиллированный ученик large-v3 имеет 756 миллионов параметров против 1,55 миллиарда у учителя – примерно вдвое меньше, – работает примерно в 6 раз быстрее и остаётся в пределах одного процента WER (word-error-rate) от учителя на длинном аудио. Для продукта, который транскрибирует архивы видео, это разница между моделью, требующей датацентр, и той, что работает на обычной рабочей станции – тема урока про потоковый ASR.

Цена дистилляции – зеркальное отражение цены квантизации. Квантизацию легко применять (PTQ занимает минуты), но она ограничена в степени сжатия модели до момента, когда качество начинает падать. Дистилляция позволяет получить значительно более компактную и по-настоящему быструю модель, но её дорого создавать: нужен учитель, большой объём данных для обучения ученика и серьёзные вычислительные затраты – ведь ученик – это новая модель, обученная почти с нуля. Поэтому дистиллировать свою модель не принято без веских причин; гораздо чаще скачивают уже готового ученика, которого дистиллировал кто-то другой (Distil-Whisper, DistilBERT, маленькие версии открытых vision-language моделей), и воспринимают дистилляцию как решение о закупке, а не как домашний проект.

Дистилляция против квантизации – и почему вы используете обе

Поставим их рядом, потому что самая частая путаница – считать их конкурирующими опциями, тогда как они являются дополняющими этапами.

КвантизацияДистилляция
Что меняетКак хранятся веса (меньше бит)Какая у вас модель (новая, меньшая)
Та же модель?Да – та же архитектура, числа дешевлеНет – другая, меньшая архитектура
Типичный выигрыш в размере2× (FP16→INT8) до 4× (FP16→INT4)2× и больше (напр. 1,55B→756M параметров)
Выигрыш в скоростиНа целочисл./малобитном железе; в основном памятьДа – меньше слоёв, меньше операций
Цена в точности<1% на INT8; малая на 4-бит с AWQ/GGUF~1–3%, если дистилляция сделана хорошо
Цена примененияНизкая (PTQ: минуты) до средней (QAT)Высокая – нужны учитель, данные, обучение
Обычно выПрименяете сами, на каждое развёртываниеСкачиваете ученика, которого уже обучили

Ключевая строка – последняя концептуальная: обе перемножаются. Сначала вы дистиллируете модель, чтобы получить более компактную версию, затем квантизуете эту уменьшенную модель, чтобы снизить разрядность чисел и удешевить вычисления – и экономия не просто складывается, а умножается. large-v3 от Distil-Whisper примерно вдвое меньше оригинала; квантизуйте её до восьмибитных целых чисел – и она станет ещё вдвое компактнее. В итоге получается модель в четверть от исходного объёма, работающая в несколько раз быстрее, но при этом сохраняющая точность, близкую к точности оригинальной модели. Тот же принцип работает и для vision-language моделей: возьмите уже компактную открытую VLM, примените четырёхбитные веса AWQ – и модель, которая раньше требовала датацентровую видеокарту, теперь запускается на одном потребительском GPU или мощном edge-устройстве. Сжатие – это не одно решение, а последовательность шагов, и правильная последовательность – дистиллировать, а затем квантизовать.

О железе: TOPS, tensor cores и что на самом деле может edge

Сжатие окупается только в том случае, если устройство действительно способно быстро выполнять малобитную математику, поэтому стоит сказать пару слов о том, как выглядит edge-железо в 2026 году. Ключевой показатель производительности edge-чипа для ИИ – TOPS (триллионы операций в секунду), и почти всегда он указывается для INT8, поскольку именно восьмибитная целочисленная арифметика – это та точность, на которой реально работают edge-модели. Сам по себе этот факт говорит о том, насколько важна квантизация: производители оборудования указывают производительность в квантизованном формате, а не в формате, используемом при обучении.

Линейка Jetson от NVIDIA – эталон для серьёзной edge-обработки видео. Начальный Jetson Orin Nano после программного обновления 2024–2025 годов выдаёт около 67 TOPS INT8 в модуле с энергопотреблением от семи до двадцати пяти ватт и объёмом памяти восемь гигабайт; более мощный Jetson AGX Orin достигает примерно 275 TOPS. Эти чипы используют tensor cores от NVIDIA, ускоряющие вычисления в форматах INT8 и FP16, а стандартный способ развёртывания – конвертация модели в движок TensorRT с использованием INT8, как это делалось при работе с детектором в уроке про итоговый проект на Jetson. На смартфонах аналогичную роль играют рантаймы: Core ML от Apple и нейросетевые API Android, управляющие выделенным ИИ-чипом телефона (его NPU), а цель сжатия остаётся той же – INT8 или ниже. Такой подход реализуется через встроенные функции, например, при работе с малыми моделями в уроке про Depth Anything и SmolVLM.

Практический урок в том, что лимит памяти в восемь гигабайт и показатель INT8 TOPS – два ключевых параметра, определяющих, что можно загрузить. Наша модель с семью миллиардами параметров требует 14 ГБ при использовании FP16 и не поместилась бы на восьмигигабайтном Jetson; в формате INT4 ей нужно всего 3,5 ГБ, и она влезает с запасом под рабочую память. Аппаратные возможности задают бюджет, а сжатие – это способ его эффективного использования.

По этапам: что сжимать в видео-конвейере

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

Для этапа детекции и сегментации – YOLO, SAM, модели позы, такие как в уроке про YOLO – оптимальный выбор – INT8 через TensorRT: сначала применяется PTQ, а QAT – только если точность на редких, но важных классах начинает падать. Эти модели изначально компактны и работают с высокой частотой, так что восемь бит – золотая середина: скорость в реальном времени при пренебрежимо малой потере точности.

Для этапа распознавания речи ответ – дистиллированная модель, затем квантизованная: Distil-Whisper вместо полного Whisper, запущенная на эффективном движке и часто в восьмибитном формате. Здесь дистилляция выполняет основную работу, поскольку сжимается сама архитектура; квантизация добавляет второй множитель эффективности.

Для этапов vision-language и языковой модели – описывающего и резюмирующего – ответом являются четырёхбитные веса через AWQ или GGUF, поскольку эти модели – самые крупные в конвейере, а четырёхбитные методы достаточно зрелы, чтобы сохранять качество. Именно здесь арифметика памяти оказывается наиболее затратной, и четыре бита – это граница между «влезает на устройство» и «не влезает».

Рисунок 3. Сжатие этап за этапом. Детекции нужен INT8; речи – дистиллированная, а затем квантизованная модель; большим языковым и vision-language этапам – четыре бита. Точность проверяют на каждом этапе.

Разбор примера – складываем два рычага

Сделаем экономию конкретной, объединив дистилляцию и квантизацию на этапе речи, поскольку именно там оба метода применяются наиболее эффективно. Начнём с полной модели Whisper large-v3: 1,55 миллиарда параметров, хранящихся в формате шестнадцати битов – это около 3,1 ГБ весов и пропускной способности полной модели.

Шаг первый – дистиллируем. Используем Distil-Whisper large-v3 в качестве ученика: 756 миллионов параметров, примерно вдвое меньше, чем у учителя, занимает около 1,5 ГБ при шестнадцатибитном представлении и обеспечивает примерно в 6 раз большую скорость, при этом WER остаётся в пределах одного процента от показателя учителя на длинных аудиофрагментах. Вы уже сократили объём памяти вдвое и увеличили скорость в шесть раз, не жертвуя точностью.

Шаг второй – квантизация. Берём модель из 756 миллионов параметров и уменьшаем её до восьмибитных целых чисел. Объём памяти примерно снова делится пополам:

дистиллир. ученик на FP16:  756M × 2 байта  =  ~1.5 ГБ
дистиллир. ученик на INT8:  756M × 1 байт   =  ~0.76 ГБ

Совокупный результат по сравнению с исходной моделью – примерно четверть объёма памяти (с 3,1 ГБ до менее 0,8 ГБ), работающая в несколько раз быстрее, при этом точность остаётся в пределах одного процента от исходной. Такая модель легко размещается на edge-устройствах и на модулях класса Jetson транскрибирует быстрее, чем в реальном времени. Ни один из методов по отдельности не даёт такого эффекта: одна квантизация оставляет модель вдвое больше нужного размера, а одна дистилляция – слишком дорогой в вычислениях. Только вместе, в правильном порядке, они превращают датацентровую модель в модель для устройства. Это то же самое перемножение, которое урок про оптимизацию стоимости рассматривает как основной рычаг, и почему сжатая модель и хороший inference-сервер усиливают друг друга, а не заменяют.

Где здесь Фора Софт

Мы создаём видеопродукты для видеоконференций, стриминга и OTT, e-learning, телемедицины и видеонаблюдения, и многим из их ИИ-функций приходится работать там, где находится видео – на камере в магазине, на телефоне в клинике, в локальной коробке, откуда кадры не могут выйти. Наша практика сжатия следует за конвейером: модели детекции и сегментации экспортируются в INT8 TensorRT-движки для работы в реальном времени на железе класса Jetson; речь обрабатывается с помощью дистиллированных и затем квантизованных моделей, адаптированных под размер устройства; а более крупные vision-language и языковые модели доводятся до четырёхбитных весов через AWQ или GGUF, чтобы уложиться в edge-ограничения по памяти. Мы рассматриваем дистилляцию как решение о закупке – обычно выбираем ученика, которого кто-то уже обучил и протестировал, – а квантизацию – как обязательный шаг при каждом развёртывании, который всегда завершается проверкой точности на собственных кадрах клиента, потому что цифры с публичных бенчмарков могут сильно измениться при конкретном ракурсе камеры или редком событии. Вертикали меняют модели и требования к точности; сам метод – дистиллировать, чтобы сжать архитектуру, квантизовать, чтобы снизить вычислительную нагрузку, и измерять после каждого шага – остаётся неизменным.

Ключевые выводы

  • Квантизация уменьшает объём модели, сохраняя её параметры в меньшем числе бит; дистилляция обучает новую, более компактную модель воспроизводить поведение исходной.
  • INT8 снижает потребление памяти примерно в 4 раза по сравнению с FP32 при потере точности обычно менее 1%; INT4 с использованием AWQ или GGUF приближается к этому уровню.
  • Дистилляция может сократить количество параметров модели вдвое и ускорить работу примерно в 6 раз при сохранении точности в пределах ~1% – пример тому Distil-Whisper.
  • Эффекты складываются: сначала применяйте дистилляцию, затем квантизуйте полученную модель – и экономия по объёму и скорости умножается.
  • Производительность edge-устройств измеряется в INT8 TOPS – например, Jetson Orin Nano обеспечивает около 67, а лимит памяти в ~8 ГБ определяет, что можно загрузить.
  • Проверяйте точность на своих данных после каждого этапа сжатия: утверждение «менее 1%» – это усреднённый показатель, а не гарантия.

Что почитать дальше

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.