Hub: модели, датасеты и Spaces
Разбираемся в устройстве Hub — центрального хранилища экосистемы.
Hub — это веб-платформа на основе git, где каждая модель, датасет и приложение хранятся в отдельном репозитории с историей версий.
Репозитории на основе git
Каждая модель на Hub — это git-репозиторий. В нём лежат веса, конфигурация, токенизатор и файл README.md, который называют карточкой модели (model card). Поскольку это git, у модели есть история коммитов, ветки и версии. Скачать модель можно по её идентификатору вида автор/имя-модели, например bert-base-uncased или google/flan-t5-base.
Карточка модели
Карточка — это документация: для чего модель, на каких данных обучена, какие у неё ограничения и какая лицензия. Хорошая карточка экономит часы работы. На неё стоит смотреть всегда перед использованием модели в проекте.
repo: distilbert-base-uncased-finetuned-sst-2-english
├── README.md (карточка модели)
├── config.json (архитектура и гиперпараметры)
├── tokenizer.json (правила токенизации)
├── tokenizer_config.json
└── model.safetensors (веса)Фильтры по задачам
На Hub десятки тысяч моделей, и найти нужную помогают фильтры. Модели сгруппированы по задачам (tasks): классификация текста, распознавание именованных сущностей, генерация текста, перевод, ответы на вопросы, генерация изображений и так далее. Можно фильтровать по языку, библиотеке, лицензии и размеру.
Датасеты
Рядом с моделями живут датасеты — наборы данных для обучения и оценки. У них тоже есть карточки и встроенный просмотрщик, где можно полистать примеры прямо в браузере. Датасет загружается одной строкой через библиотеку datasets (об этом будет отдельный раздел).
Spaces — демо-приложения
Spaces — это хостинг небольших веб-приложений, обычно на Gradio или Streamlit. Любой может опубликовать интерактивное демо своей модели: пользователь вводит текст или загружает картинку и сразу видит результат. Это удобный способ показать модель без написания фронтенда.
Как работает под капотом
Когда библиотека скачивает модель по идентификатору, она обращается к Hub API, читает список файлов репозитория и загружает только нужные. Поскольку всё хранится в git-подобной системе, можно зафиксировать конкретную версию модели через параметр revision (имя ветки, тега или хеш коммита) — это важно для воспроизводимости в продакшене.
Частые ошибки
- Брать модель без чтения карточки. Модель может быть обучена только на английском или иметь несовместимую лицензию.
- Не фиксировать версию. Автор может обновить модель, и поведение в продакшене изменится. Используйте
revision. - Путать датасет и модель. Это разные типы репозиториев, хоть и лежат на одном Hub.
Итог
- Каждая модель и датасет на Hub — это git-репозиторий с версиями.
- Карточка модели (README) описывает назначение, данные, ограничения и лицензию.
- Фильтры по задачам помогают найти нужную модель.
- Spaces позволяют опубликовать интерактивное демо без своего сервера.