ТЕХНОЛОГИИ

Offline-запуск LLM: как собрать полный Hugging Face snapshot по commit

В этом материале
ГЛАВНОЕ ЗА МИНУТУ

Offline-запуск LLM требует полного согласованного snapshot модели, а не только скачанного файла весов.

Offline-запуск LLM требует полного согласованного snapshot модели, а не только скачанного файла весов. Закрепите Hugging Face revision по commit и проверьте загрузку без обращений к Hub. File filters способны случайно исключить index, tokenizer или конфигурацию. Поэтому приемка должна подтверждать состав пакета и фактический локальный запуск. Наличие кэша на одной машине еще не гарантирует воспроизводимость переноса на другой узел или новый контейнер без прежних файлов.

Зафиксируйте revision явно

Руководство Hub download описывает snapshot_download и параметр revision. Mutable ветка может измениться между двумя скачиваниями, поэтому для принятого релиза сохраняйте конкретный commit. Укажите repository identity и локальный каталог назначения. Не считайте папку с названием модели доказательством одинакового содержимого. Если несколько компонентов берутся из разных repositories, закрепите каждый отдельно и сохраните соответствие. Иначе один manifest скрывает зависимость от tokenizer или custom code другой версии, которую новый узел получит уже в измененном виде.

Осторожно применяйте filters

allow_patterns и ignore_patterns позволяют выбирать файлы, но не определяют за вас минимальный рабочий комплект модели. Сначала установите, что требуется выбранному loader: все shards, index, model config, generation settings и tokenizer artifacts. Не исключайте все JSON ради уменьшения объема без проверки. Для custom architectures могут потребоваться дополнительные файлы. Сохраните filters в manifest и сравните фактический список после скачивания. Успешная загрузка части repository не означает, что runtime сможет использовать его автономно, не докачивая недостающие зависимости.

Пример приемки на чистом каталоге

Создайте отдельный тестовый каталог с принятым snapshot и известным fixture запроса. Запустите loader, который должен использовать только этот пакет, без случайной помощи других кэшей машины. Это план проверки, не отчет о доступности конкретной модели. Сохраните список открытых локальных artifacts и ошибки недостающих файлов. Если запуск проходит лишь на рабочем ноутбуке автора, повторите на изолированном узле: старый cache способен незаметно закрыть пробелы упаковки и создать ложное ощущение полноты экспортированного snapshot.

Запретите HTTP на уровне проверки

Документация Transformers installation описывает HF_HUB_OFFLINE и local_files_only. Проверяйте их область действия у выбранного runtime; переменная одной библиотеки не является универсальным сетевым ограничителем всех зависимостей. Для приемки сохраните фактическое отсутствие обращений к Hub поддерживаемым способом наблюдения. Если runtime пытается скачать файл, сначала определите недостающий артефакт или путь, а не отключайте ошибку без исправления комплекта. Успешный first response должен следовать после полной локальной загрузки и соответствовать сохраненному функциональному fixture.

Что передавать вместе с пакетом

Manifest должен содержать repository, commit, filters, файлы, hashes, loader version и способ offline проверки. Отдельно укажите внешние software dependencies: snapshot весов не заменяет установку runtime. При обновлении модели создавайте новый комплект и повторяйте тест, не изменяя принятую папку незаметно для других процессов. Полезный результат позволяет восстановить model assets без Hub доступа и объяснить происхождение каждого файла. Он не обещает работу любой архитектуры в любом framework и не подменяет проверку лицензии. Главное условие — автономный запуск именно из принятого набора, а не случайное успешное использование смеси новых файлов и старого кэша, происхождение которого неизвестно следующему оператору.

Связанные материалы

Воспроизводимый стек инференса: как сохранить результат GPU-пилота; NVMe для размещения моделей: где быстрый диск меняет результат.

← Все материалы