Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Ot issledovaniy k realnosti ustanovka 11b vlm na smartfon
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

От исследований к реальности: установка 11B VLM на смартфон

Источник: Graphcore•29 сентября 2026 г. в 09:26

От исследований к реальности: установка 11B VLM на смартфон

Узнайте, как исследователи из Graphcore и Arm сжали модель Llama 3.2 Vision с 11 миллиардами параметров до 3,7 ГБ и запустили ее на телефоне Android с использованием квантования S3D8.

Иметь мультимодальную языковую модель (VLM) прямо в кармане — это здорово. Сочетание текстового и визуального интеллекта идеально подходит для персональных устройств, таких как смартфоны, ноутбуки и носимые гаджеты. Однако такие модели могут быть требовательны к памяти, и их развертывание на устройствах с низким энергопотреблением сопряжено с трудностями. В то время как спрос на крупные передовые модели, работающие в облаке, продолжает расти, ИИ для мобильных устройств и робототехники с ограниченным энергопотреблением также развивается очень быстро.

Команда исследователей из Graphcore и Arm недавно взялась за заведомо амбициозную задачу: уместить крупную 11-миллиардную VLM, для весов которой изначально требовалось более 21 ГБ, в бюджет хранения объемом около 4 ГБ, чтобы она поместилась на Android-смартфоне.

Результатом стала реализация Llama 3.2 Vision Instruct размером 3.7 ГБ. Мы достигли этого с помощью нового формата, спроектированного с учетом особенностей процессоров Arm, и процедуры обучения с учетом квантования (quantisation-aware training), которая выбирает разнообразные промпты для сохранения возможностей исходной модели.

Для достижения этой цели потребовалось решить три взаимосвязанные проблемы:

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

Формат: три веса в одном байте

Эффективный формат квантования весов должен сбалансировать три противоречивых требования. Он должен быть:

  • Компактным, в нашем случае — менее 3 бит на вес.
  • Быстрым в дешифрации: в идеале распаковываться так же быстро, как читаются сжатые входные данные.
  • Высокоточным, способным представлять веса достаточно точно для сохранения высокой производительности в задачах.

Вдохновившись системой команд нашей целевой платформы, мы разработали формат под названием S3D8 — высококомпактный формат (2.7 бита на вес), который балансирует скорость и точность в данном диапазоне. Основная идея заключается в том, чтобы сохранить абсолютное значение 3 весов в виде 5-битного индекса, а затем сохранить 3 отдельных бита выбора знака для восстановления декодированных весов.

Центроиды S3D8 (слева) с инверсией знака (оттенок) против 1D-центроидов (права), показанных как произведение по 3 измерениям, где оба варианта обучены на выборках из t-распределения Стьюдента.

Использование 3D-векторного квантования дает существенные преимущества в точности по сравнению с 1D-форматами (см. paper), а применение небольшой таблицы поиска позволяет осуществлять быстрое сопоставление в регистрах при декодировании. Например, наши бенчмарки показывают, что произведение матрица-вектор между 4096-элементным вектором активаций INT8 и матрицей 4096 x 14336 достигает 26.5 GMAC/с для матрицы INT8, но 33.8 GMAC/с для S3D8 при работе на смартфоне Android. Такой прирост скорости возможен, поскольку дополнительные затраты на декомпрессию в S3D8 перевешиваются экономией пропускной способности при загрузке весов из памяти.

Обучение: восстановление производительности в сжатой модели

Простое квантование методом «прямого приведения» (direct cast) каждого тензора весов к ближайшему значению S3D8 полностью ломает модель, приводя к нулевой точности в 4 прикладных задачах. Это происходит потому, что квантование до 2.7 бит на параметр является слишком агрессивным, и модель не может справиться с ним без возможности скорректировать веса и восстановить производительность.

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

Мы разработали процедуру выборки, которая сначала формирует пользовательские промпты как комбинацию трех компонентов: шаблона, необязательной инструкции и вопроса. Затем она выбирает вариант завершения (completion) от неквантованной модели-учителя. Это существенно улучшает производительность в прикладных задачах по сравнению с более простой процедурой (см. ).

Подводя итог, наш метод значительно превзошел альтернативные форматы и процедуры квантования:

Соотношение между общей производительностью в задачах и сжатием модели при прямом приведении, GPTQ и QAT. В рамках нашей схемы QAT формат S3D8 превосходит стандартный INT с блочным масштабированием, обеспечивая примерно на 22% большее сжатие при той же производительности в задаче. Прямое приведение весов модели к значению менее 3.5 бит на параметр приводит к существенной деградации модели. Хотя методы GPTQ и QAT могут улучшить производительность, QAT превосходит их при меньшем количестве бит на параметр. Штриховая линия показывает производительность исходной модели bfloat16 (21.3 ГБ).

Выполнение: работа на смартфоне

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

  • Ядра для S3D8: объединенные операции деквантования, матричного умножения и приведения типов.
  • Дополнительные ядра и реализацию модели: кастомный движок на C++ для выполнения Llama VLM, упакованный в нативную библиотеку.
  • Формат файла на основе safetensors для сериализации квантованной модели.
  • Приложение для Android, которое загружает модели, принимает промпты и выполняет нативную библиотеку.

Мы публикуем наш implementation для поддержки дальнейших разработок с использованием этих идей.

Что дальше?

Мы были рады, а也许 и немного удивлены, увидев полноценно работающий на смартфоне метод. Он еще не совсем готов к массовому использованию на мобильных телефонах — 11-миллиардная модель пока немного тяжеловата, и нашей реализации не помешали бы ядра Vulkan для сокращения времени префилла (prefill). Но мы надеемся, что этот формат и рецепт обучения окажутся полезными инструментами для сжатия VLM/LLM, привносящими больше интеллекта в наши устройства.

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

← Все статьи

О чём эта статья

Ещё в разделе «AI и машинное обучение»

Все →
Создание симуляции захвата и перемещения роботом с использованием активов SimReady
Hugging Face

Создание симуляции захвата и перемещения роботом с использованием активов SimReady

XYBench: помощь в решении проблемы, скрытой за вопросом
AI2 (Allen Institute for AI)

XYBench: помощь в решении проблемы, скрытой за вопросом

Оксфорд годами изучал, как женщины создают компании. Теперь это исследование может говорить.
ElevenLabs

Оксфорд годами изучал, как женщины создают компании. Теперь это исследование может говорить.

XYBench: Решение проблемы, стоящей за вопросом
Hugging Face

XYBench: Решение проблемы, стоящей за вопросом

Типы поисковых систем: краулеры, метапоиск и ИИ
Perplexity

Типы поисковых систем: краулеры, метапоиск и ИИ

Почему я присоединился к Scale: от обещаний к практике
Scale AI

Почему я присоединился к Scale: от обещаний к практике

Ещё от Graphcore

Почему я выбрал Graphcore: место, где можно расти, а не просто преуспевать
Graphcore

Почему я выбрал Graphcore: место, где можно расти, а не просто преуспевать

Творчество в инженерии
Graphcore

Творчество в инженерии

Сооснователь и исполнительный председатель Graphcore Найджел Тун покидает свой пост
Graphcore

Сооснователь и исполнительный председатель Graphcore Найджел Тун покидает свой пост

Добро пожаловать в Graphcore Taipei
Graphcore

Добро пожаловать в Graphcore Taipei