Публикация модели на Hub

Учимся делиться своей моделью с миром через Hub.

Публикация — загрузка модели и токенизатора в репозиторий на Hub, после чего их можно скачать одной строкой откуда угодно.

Зачем публиковать

Опубликованная модель доступна вашей команде, заказчику или всему сообществу. Её можно подключить в любом проекте по идентификатору, версионировать через git и снабдить демо в Spaces. Это финальный шаг типичного цикла: взяли базовую модель, дообучили, опубликовали результат.

Как загрузить

Сначала авторизуются токеном доступа, затем вызывают push_to_hub. Код требует transformers и не исполняется в браузере:

from huggingface_hub import login
login(token="hf_...")  # токен из настроек аккаунта

model.push_to_hub("my-username/sentiment-ru")
tokenizer.push_to_hub("my-username/sentiment-ru")

После этого модель доступна так:

from transformers import pipeline
clf = pipeline("sentiment-analysis",
               model="my-username/sentiment-ru")

Карточка модели обязательна

Хорошая публикация всегда сопровождается карточкой (README.md): что модель делает, на каких данных обучена, какие ограничения и под какой лицензией. Без карточки модель почти бесполезна для других — никто не поймёт, можно ли ей доверять.

Приватные и публичные репозитории

Репозиторий можно сделать приватным — тогда доступ только у вас и тех, кому вы его дадите. Это важно для коммерческих моделей, которые нельзя выкладывать публично.

Как работает под капотом

push_to_hub создаёт (или обновляет) git-репозиторий на Hub и заливает туда файлы модели через git и Git LFS (большие бинарные веса хранятся через LFS). Каждая загрузка — это коммит, поэтому история версий сохраняется, и любой пользователь может зафиксировать конкретную ревизию через параметр revision. Токен доступа определяет права: read-токен только скачивает, write-токен позволяет публиковать.

Частые ошибки

  • Публиковать без карточки и лицензии. Модель станет непонятной и юридически рискованной.
  • Заливать модель с приватными данными в публичный репозиторий. Дообученная модель может «помнить» обучающие тексты — проверяйте, что выкладываете.
  • Использовать write-токен где попало. Утечка токена даёт чужим людям доступ к вашим репозиториям.

Итог

  • push_to_hub заливает модель и токенизатор в git-репозиторий на Hub.
  • Карточка модели и лицензия обязательны для полезной публикации.
  • Репозиторий можно сделать приватным для коммерческих моделей.
  • Под капотом — git и Git LFS, каждая загрузка это коммит с версией.
Проверьте себя
1. Что делает метод push_to_hub?
AУдаляет модель
BЗагружает модель и токенизатор в репозиторий на Hub
CОбучает модель
DСчитает метрики
2. Что обязательно должно сопровождать опубликованную модель?
AВидеоурок
BКарточка модели с описанием, данными, ограничениями и лицензией
CПлатная подписка
DГотовое демо
3. Чем технически является каждая загрузка модели на Hub?
ASQL-запросом
BGit-коммитом (с Git LFS для весов)
CЭлектронным письмом
DЗаписью в лог