Загрузка больших файлов часто становится узким местом в работе с моделями. В новой версии Hugging Face Hub v1.29.0 этот процесс ускорили, одновременно закрыв несколько критических уязвимостей безопасности.
Ранее загрузка репозиториев, использующих Xet (специальный бэкенд для больших бинарных файлов, таких как модели и датасеты), могла приводить к ошибкам 429 Too Many Requests. Это происходило из-за того, что с версии v1.19.0 каждый файл требовал отдельного запроса к API Hub. Теперь обновлённый Hub восстанавливает кэш информации о соединении, что позволяет повторно использовать конечную точку и токен. Это ускоряет загрузку и снижает вероятность срабатывания лимитов.
Также в Hub появилась возможность изменять видимость бакетов (объектных хранилищ, подобных S3) после их создания. Раньше установить статус «приватный» или «публичный» можно было только при создании бакета. Теперь это делается через метод HfApi.update_bucket_settings в Python API или команды hf buckets settings --private / --public в CLI.
В релиз включены и важные исправления безопасности:
- Расширена защита от обхода пути (path-traversal) для команд
hf buckets syncиsync_bucket. Это предотвращает запись произвольных файлов за пределы выбранного каталога, защищая от вредоносных или скомпрометированных бакетов. - Исправлена проблема, при которой функция
load_state_dict_from_fileмогла ошибочно использовать десериализацию pickle для файлов с расширением.safetensors. Это создавало риск загрузки вредоносного кода, поскольку pickle позволяет выполнять произвольный код. Теперь эта уязвимость предотвращена за счёт унифицированной логики проверки расширения.
Ускорение работы с Xet-хранилищами и устранение критических уязвимостей, таких как десериализация pickle, делают платформу более надёжной и эффективной. Возможность динамически менять видимость бакетов добавляет удобства, но именно безопасность и скорость остаются главными факторами для инженеров.