Открытые модели: что именно открыто и что проверить перед использованием
Чем «открытые веса» отличаются от открытого исходного кода, как читать лицензию и карточку модели и как заранее прикинуть требования к железу.
Словосочетание «открытая модель» используют для очень разных вещей. Иногда это модель, у которой опубликованы только файлы весов под лицензией с ограничениями. Иногда — проект, где доступны веса, код обучения, описание данных и сами данные. От того, какой вариант перед вами, зависит, можно ли использовать модель в коммерческом продукте, дообучать её и распространять производные версии.
Из чего состоит модель
Чтобы понимать, что именно «открыто», полезно разложить модель на части:
- Архитектура и код инференса — программа, которая загружает параметры и вычисляет ответ.
- Веса (параметры) — результат обучения; именно их обычно скачивают в виде больших файлов.
- Данные обучения — тексты, код, изображения, на которых модель обучалась, а также описание того, как их собирали и фильтровали.
- Код и рецепт обучения — скрипты, гиперпараметры, порядок этапов (предобучение, дообучение на инструкциях, выравнивание).
- Документация — карточка модели, результаты оценки, известные ограничения.
Модель с опубликованными весами можно запускать у себя, но без данных и рецепта обучения её нельзя воспроизвести и сложно проверить, откуда берутся её сильные и слабые стороны.
Уровни открытости
| Вариант | Что доступно | Типичные ограничения |
|---|---|---|
| Закрытая модель через API | Только ответы модели | Условия сервиса, данные уходят провайдеру |
| Открытые веса под ограниченной лицензией | Веса и код инференса | Запреты отдельных сценариев, условия для крупных компаний, требования к названию производных |
| Открытые веса под разрешительной лицензией | Веса и код инференса, например под Apache 2.0 или MIT | Обычно только сохранение уведомлений об авторстве и лицензии |
| Полностью открытый проект | Веса, код обучения, данные или их подробное описание | Лицензии наборов данных могут отличаться от лицензии модели |
В 2024 году Open Source Initiative опубликовала определение открытого ИИ — Open Source AI Definition. Согласно ему, для открытой системы должны быть доступны не только параметры, но и полный код обучения и достаточно подробная информация о данных, чтобы квалифицированный специалист мог построить существенно эквивалентную систему. По этому критерию многие популярные модели с «открытыми весами» открытыми в смысле open source не являются.
Примеры проектов, которые публикуют не только веса, но и данные с кодом обучения, — OLMo от Allen Institute for AI и набор моделей Pythia от EleutherAI. Они особенно полезны для исследований: можно проследить, как поведение модели связано с данными.
Как читать лицензию
Прежде чем встраивать модель в продукт, ответьте на вопросы:
- Разрешено ли коммерческое использование и нет ли порогов по размеру компании или аудитории. Например, в лицензиях семейства Llama есть отдельное условие для сервисов с более чем 700 миллионами активных пользователей в месяц — см. текст лицензии Llama.
- Есть ли приложенная политика допустимого использования (acceptable use policy) и распространяется ли она на ваших пользователей.
- Как лицензия относится к производным моделям: нужно ли сохранять название, ставить пометку, распространять дообученные веса на тех же условиях.
- Какие требования к указанию авторства и сохранению файлов лицензии.
- Совпадает ли лицензия весов с лицензией кода и данных — это разные объекты, и у них могут быть разные условия.
Лицензионные условия меняются от версии к версии, поэтому сверяйтесь с текстом именно той версии модели, которую используете, а не с пересказом в блоге. Для юридически значимых решений нужна консультация юриста — эта статья ею не является.
Карточка модели
На платформе Hugging Face у большинства моделей есть карточка — файл README с метаданными. Её структура описана в документации Hugging Face о карточках моделей. Из карточки стоит выписать:
- назначение модели и сценарии, для которых она не предназначена;
- языки, на которых она обучалась и тестировалась (качество на русском может заметно отличаться от английского);
- методику оценки: на каких наборах данных и с какими настройками получены цифры;
- известные ограничения и риски;
- лицензию и ссылки на исходные модели, если это дообученная версия.
Цифры из карточки — заявление авторов. Перед выбором модели проверьте её на десятке-другом собственных типичных задач: это даёт больше информации, чем сравнение позиций в рейтингах.
Безопасность файлов весов
Формат файлов имеет значение. Исторически многие веса распространялись в виде pickle-файлов PyTorch. Документация Python прямо предупреждает, что модуль pickle небезопасен: при загрузке такого файла может выполниться произвольный код. Формат safetensors хранит только тензоры и не исполняет код при загрузке, поэтому при выборе между вариантами разумно предпочитать его.
Практические правила:
- скачивайте веса с официальной страницы организации, а не из случайных зеркал;
- сверяйте контрольные суммы, если они опубликованы;
- не включайте опции вроде
trust_remote_code, не прочитав код, который будет выполнен; - запускайте незнакомые модели в изолированном окружении без доступа к секретам.
Сколько нужно памяти
Грубую оценку можно получить простым умножением: число параметров на количество байт на параметр.
| Точность | Байт на параметр | Модель на 7 млрд параметров | Модель на 70 млрд параметров |
|---|---|---|---|
| FP16 / BF16 | 2 | около 14 ГБ | около 140 ГБ |
| 8 бит | 1 | около 7 ГБ | около 70 ГБ |
| 4 бита | 0,5 | около 3,5 ГБ | около 35 ГБ |
Это только веса. Сверху нужна память на кэш ключей и значений внимания (KV-кэш), которая растёт с длиной контекста и числом одновременных запросов, а также на служебные структуры. Квантование до 4 бит уменьшает объём, но может снизить качество — особенно на задачах, требующих точности: арифметике, коде, редких языках. Проверяйте квантованную версию на своих примерах так же, как исходную.
Короткий чек-лист
- Определите, что вам нужно: только запуск, дообучение или воспроизводимость.
- Прочитайте лицензию конкретной версии и политику допустимого использования.
- Изучите карточку модели и проверьте качество на своих данных, в том числе на русском языке.
- Выбирайте безопасный формат весов и официальные источники загрузки.
- Оцените память с запасом на контекст и параллельные запросы.