Открытые модели: что именно открыто и что проверить перед использованием

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

Опубликовано · 5 мин чтения

  • открытые модели
  • лицензии
  • безопасность

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

Из чего состоит модель

Чтобы понимать, что именно «открыто», полезно разложить модель на части:

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

Модель с опубликованными весами можно запускать у себя, но без данных и рецепта обучения её нельзя воспроизвести и сложно проверить, откуда берутся её сильные и слабые стороны.

Уровни открытости

ВариантЧто доступноТипичные ограничения
Закрытая модель через APIТолько ответы моделиУсловия сервиса, данные уходят провайдеру
Открытые веса под ограниченной лицензиейВеса и код инференсаЗапреты отдельных сценариев, условия для крупных компаний, требования к названию производных
Открытые веса под разрешительной лицензиейВеса и код инференса, например под Apache 2.0 или MITОбычно только сохранение уведомлений об авторстве и лицензии
Полностью открытый проектВеса, код обучения, данные или их подробное описаниеЛицензии наборов данных могут отличаться от лицензии модели

В 2024 году Open Source Initiative опубликовала определение открытого ИИ — Open Source AI Definition. Согласно ему, для открытой системы должны быть доступны не только параметры, но и полный код обучения и достаточно подробная информация о данных, чтобы квалифицированный специалист мог построить существенно эквивалентную систему. По этому критерию многие популярные модели с «открытыми весами» открытыми в смысле open source не являются.

Примеры проектов, которые публикуют не только веса, но и данные с кодом обучения, — OLMo от Allen Institute for AI и набор моделей Pythia от EleutherAI. Они особенно полезны для исследований: можно проследить, как поведение модели связано с данными.

Как читать лицензию

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

  1. Разрешено ли коммерческое использование и нет ли порогов по размеру компании или аудитории. Например, в лицензиях семейства Llama есть отдельное условие для сервисов с более чем 700 миллионами активных пользователей в месяц — см. текст лицензии Llama.
  2. Есть ли приложенная политика допустимого использования (acceptable use policy) и распространяется ли она на ваших пользователей.
  3. Как лицензия относится к производным моделям: нужно ли сохранять название, ставить пометку, распространять дообученные веса на тех же условиях.
  4. Какие требования к указанию авторства и сохранению файлов лицензии.
  5. Совпадает ли лицензия весов с лицензией кода и данных — это разные объекты, и у них могут быть разные условия.

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

Карточка модели

На платформе Hugging Face у большинства моделей есть карточка — файл README с метаданными. Её структура описана в документации Hugging Face о карточках моделей. Из карточки стоит выписать:

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

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

Безопасность файлов весов

Формат файлов имеет значение. Исторически многие веса распространялись в виде pickle-файлов PyTorch. Документация Python прямо предупреждает, что модуль pickle небезопасен: при загрузке такого файла может выполниться произвольный код. Формат safetensors хранит только тензоры и не исполняет код при загрузке, поэтому при выборе между вариантами разумно предпочитать его.

Практические правила:

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

Сколько нужно памяти

Грубую оценку можно получить простым умножением: число параметров на количество байт на параметр.

ТочностьБайт на параметрМодель на 7 млрд параметровМодель на 70 млрд параметров
FP16 / BF162около 14 ГБоколо 140 ГБ
8 бит1около 7 ГБоколо 70 ГБ
4 бита0,5около 3,5 ГБоколо 35 ГБ

Это только веса. Сверху нужна память на кэш ключей и значений внимания (KV-кэш), которая растёт с длиной контекста и числом одновременных запросов, а также на служебные структуры. Квантование до 4 бит уменьшает объём, но может снизить качество — особенно на задачах, требующих точности: арифметике, коде, редких языках. Проверяйте квантованную версию на своих примерах так же, как исходную.

Короткий чек-лист

  1. Определите, что вам нужно: только запуск, дообучение или воспроизводимость.
  2. Прочитайте лицензию конкретной версии и политику допустимого использования.
  3. Изучите карточку модели и проверьте качество на своих данных, в том числе на русском языке.
  4. Выбирайте безопасный формат весов и официальные источники загрузки.
  5. Оцените память с запасом на контекст и параллельные запросы.

Источники

← Все статьи