Понимание размеров LLM

Мод Налпас
Maud Nalpas

Хотя буква «L» в больших языковых моделях (LLM) предполагает огромный масштаб, реальность более тонкая. Некоторые LLM содержат триллионы параметров, а другие эффективно работают с гораздо меньшим количеством параметров.

Взгляните на несколько реальных примеров и практическое значение моделей разных размеров.

Как веб-разработчики, мы склонны думать о размере ресурса как о размере его загрузки. Вместо этого документированный размер модели относится к числу ее параметров. Например, Gemma 2B означает Gemma с 2 миллиардами параметров.

LLM могут иметь сотни тысяч, миллионы, миллиарды или даже триллионы параметров.

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

Возможно, вы заметили, что некоторые размеры моделей, например 2 миллиарда или 7 миллиардов, являются общими. Например, «Гемма 2Б», «Гемма 7Б» или «Мистраль 7Б» . Классы размеров моделей представляют собой приблизительные группы. Например, Gemma 2B имеет примерно 2 миллиарда параметров, но это не совсем так.

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

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

Скриншот флажков размера модели HuggingFace.
Классы размеров моделей на HuggingFace . Эти классы не являются отраслевыми стандартами, они возникли органично.

Хотя размеры моделей самых современных LLM, таких как GPT-4 и Gemini Pro или Ultra, не всегда раскрываются, считается, что они исчисляются сотнями миллиардов или триллионов параметров .

Размеры моделей могут сильно различаться. На этой иллюстрации DistilBERT — крошечная точка по сравнению с гигантским Gemini Pro.

Не все модели указывают количество параметров в своем названии. К некоторым моделям добавляется номер версии. Например, Gemini 1.5 Pro относится к версии модели 1.5 (следующей за версией 1).

LLM или нет?

Когда модель слишком мала, чтобы быть LLM? Определение LLM может быть несколько расплывчатым в сообществе AI и ML.

Некоторые считают, что только самые крупные модели с миллиардами параметров являются настоящими LLM, тогда как модели меньшего размера, такие как DistilBERT , считаются простыми моделями НЛП. Другие включают в определение LLM меньшие, но все же мощные модели, такие как DistilBERT.

Меньшие LLM для случаев использования на устройстве

Более крупные LLM требуют много места для хранения и больших вычислительных мощностей для вывода. Им необходимо работать на выделенных мощных серверах со специальным оборудованием (например, TPU).

Нас как веб-разработчиков интересует один вопрос: достаточно ли мала модель, чтобы ее можно было загрузить и запустить на устройстве пользователя.

Но на этот вопрос сложно ответить! На сегодняшний день нет простого способа узнать, что «эта модель может работать на большинстве устройств среднего класса», по нескольким причинам:

  • Возможности устройств сильно различаются в зависимости от памяти, характеристик графического процессора/процессора и т. д. Бюджетный телефон Android и ноутбук с NVIDIA® RTX сильно отличаются. У вас могут быть некоторые данные о том, какие устройства есть у ваших пользователей. У нас пока нет определения базового устройства, используемого для доступа в Интернет.
  • Модель или платформа, в которой она работает, могут быть оптимизированы для работы на определенном оборудовании.
  • Не существует программного способа определить, можно ли загрузить и запустить конкретный LLM на конкретном устройстве. Возможность загрузки устройства зависит, помимо других факторов, от количества видеопамяти на графическом процессоре.

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

Например:

  • Gemma 2B с API вывода MediaPipe LLM (подходит даже для устройств только с процессором). Попробуй .
  • DistilBERT с Transformers.js .

Это зарождающаяся область. Вы можете ожидать, что ландшафт будет меняться:

  • Благодаря инновациям WebAssembly и WebGPU, WebGPU поддерживает использование большего количества библиотек, новых библиотек и оптимизаций , что позволяет ожидать, что пользовательские устройства смогут все чаще эффективно запускать LLM различных размеров.
  • Ожидается, что более мелкие и высокоэффективные LLM станут все более распространенными благодаря новым методам сжатия .

Рекомендации для небольших LLM

При работе с меньшими LLM всегда следует учитывать производительность и размер загрузки.

Производительность

Возможности любой модели во многом зависят от вашего варианта использования! Меньший LLM, точно настроенный для вашего случая использования, может работать лучше, чем более крупный универсальный LLM.

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

Снимок экрана панели Chrome DevTools Network.
Оценка Gemma 2B меньше, чем оценка Gemma 7B.
Источник: Таблица лидеров HuggingFace Open LLM , апрель 2024 г.

Размер загрузки

Больше параметров означает больший размер загрузки, что также влияет на возможность разумной загрузки модели, даже если она считается небольшой, для вариантов использования на устройстве.

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

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

Снимок экрана панели Chrome DevTools Network.
На панели Chrome DevTools Network Gemma 2B и DistilBERT для вывода в браузере и на устройстве в веб-приложении. Размеры загрузки составляют соответственно 1,3 ГБ и 67 МБ.

Gemma используется с API вывода MediaPipe LLM . DistilBERT используется с Transformers.js .

Методы сжатия модели

Существует несколько методов, позволяющих значительно снизить требования к памяти модели:

  • LoRA (адаптация низкого ранга) : метод точной настройки, при котором заранее обученные веса замораживаются. Подробнее о ЛоРА .
  • Обрезка : удаление менее важных весов из модели для уменьшения ее размера.
  • Квантование : снижение точности весов от чисел с плавающей запятой (например, 32-битных) до более низкобитных представлений (например, 8-битных).
  • Фильтрация знаний : обучение меньшей модели имитации поведения более крупной, предварительно обученной модели.
  • Совместное использование параметров : использование одинаковых весов для нескольких частей модели, что позволяет уменьшить общее количество уникальных параметров.