Hub documentation
Загрузка моделей
Загрузка моделей
Чтобы загрузить модели в Hub, вам нужно создать аккаунт на Hugging Face. Модели в Hub представляют собой репозитории на базе Git, которые обеспечивают управление версиями, ветвление, возможность поиска и обмена, интеграцию с десятками библиотек и многое другое! Вы сами решаете, что именно загрузить в свой репозиторий: это могут быть контрольные точки, конфигурации и любые другие файлы.
Вы можете привязать репозитории к отдельному пользователю, например osanseviero/fashion_brands_patterns, или к организации, например facebook/bart-large-xsum. Организации могут собирать модели, связанные с компанией, сообществом или библиотекой! Если вы выберете организацию, модель будет отображаться на странице организации, и каждый член организации сможет вносить вклад в репозиторий. Вы можете создать новую организацию здесь.
ПРИМЕЧАНИЕ: Для получения метрик загрузок модели не должны быть совместимы с библиотеками Transformers/Diffusers. Поддерживаются любые пользовательские модели. Подробнее ниже!
Существует несколько способов загрузить модели, чтобы они были корректно интегрированы в Hub и получали метрики загрузок, описанные ниже.
- Если ваша модель предназначена для библиотеки, которая имеет встроенную поддержку, вы можете использовать методы, предоставляемые этой библиотекой. Пользовательские модели, использующие
trust_remote_code=True, также могут применять эти методы. - Если ваша модель — это пользовательская модель PyTorch, можно использовать класс
PyTorchModelHubMixin, так как он позволяет добавитьfrom_pretrainedиpush_to_hubв любой классnn.Module, подобно моделям в библиотеках Transformers, Diffusers и Timm. - Помимо программной загрузки, вы всегда можете использовать веб-интерфейс или командную строку git.
После загрузки модели мы рекомендуем добавить в репозиторий Model Card, чтобы задокументировать модель и сделать её более доступной для поиска.
Example [repository](https://huggingface.co/LiheYoung/depth_anything_vitl14) that leverages [PyTorchModelHubMixin](#upload-a-pytorch-model-using-huggingfacehub). Downloads are shown on the right. Использование веб-интерфейса
Чтобы создать новый репозиторий модели, перейдите на huggingface.co/new. Затем выполните следующие шаги:
- На вкладке Файлы и версии выберите Добавить файл и укажите Загрузить файл:

- Далее выберите файл на вашем компьютере для загрузки и оставьте полезное сообщение коммита, чтобы было понятно, что именно вы загружаете:

Затем нажмите Commit changes, чтобы загрузить вашу модель на Hub!
Осмотр файлов и истории
Вы можете проверить свой репозиторий со всеми недавно добавленными файлами!

Интерфейс позволяет просматривать файлы модели и коммиты, а также видеть изменения, внесённые каждым коммитом:

- Добавить метаданные
Вы можете добавить метаданные в карточку вашей модели. Вы можете указать:
- тип задачи, для которой предназначен данный модель, что позволяет использовать виджеты и провайдеров инференса.
- используемая библиотека (
transformers,spaCyи т. д.) - язык
- набор данных
- метрики
- лицензия
- и многое другое!
Подробнее о тегах моделей — здесь.
- Добавление трассировок TensorBoard
Любой репозиторий, содержащий трассировки TensorBoard (файлы с именем, включающим tfevents), получает метку TensorBoard. По соглашению мы рекомендуем сохранять трассировки в подпапке runs/. Тогда вкладка «Training metrics» позволяет легко просматривать графики записанных переменных, например, потерь или точности.

Модели, обученные с помощью 🤗 Transformers, по умолчанию генерируют трассировки TensorBoard, если установлен пакет tensorboard.
Загрузка из библиотеки с встроенной поддержкой
Сначала проверьте, относится ли ваша модель к библиотеке, которая поддерживает встроенную загрузку/сохранение в Hub, например Transformers, Diffusers, Timm, Asteroid и т. д.: https://huggingface.co/docs/hub/models-libraries. Ниже мы покажем, насколько это просто для библиотеки вроде Transformers:
from transformers import BertConfig, BertModel
config = BertConfig()
model = BertModel(config)
model.push_to_hub("nielsr/my-awesome-bert-model")
# reload
model = BertModel.from_pretrained("nielsr/my-awesome-bert-model")Некоторые библиотеки, например Transformers, поддерживают загрузку кода из Hub. Это способ заставить вашу модель работать с Transformers с помощью флага trust_remote_code=True. Возможно, стоит рассмотреть этот вариант вместо полноценной интеграции библиотеки.
Загрузка модели PyTorch с помощью huggingface_hub
Если ваша модель является (кастомной) моделью PyTorch, вы можете использовать класс class PyTorchModelHubMixin, доступный в Python-библиотеке huggingface_hub. Это минимальный класс, который добавляет любому nn.Module возможности from_pretrained и push_to_hub, а также метрики загрузок.
Вот как его использовать (при условии, что вы выполнили pip install huggingface_hub):
import torch
import torch.nn as nn
from huggingface_hub import PyTorchModelHubMixin
class MyModel(
nn.Module,
PyTorchModelHubMixin,
# optionally, you can add metadata which gets pushed to the model card
repo_url="your-repo-url",
pipeline_tag="text-to-image",
license="mit",
):
def __init__(self, num_channels: int, hidden_size: int, num_classes: int):
super().__init__()
self.param = nn.Parameter(torch.rand(num_channels, hidden_size))
self.linear = nn.Linear(hidden_size, num_classes)
def forward(self, x):
return self.linear(x + self.param)
# create model
config = {"num_channels": 3, "hidden_size": 32, "num_classes": 10}
model = MyModel(**config)
# save locally
model.save_pretrained("my-awesome-model")
# push to the hub
model.push_to_hub("your-hf-username/my-awesome-model")
# reload
model = MyModel.from_pretrained("your-hf-username/my-awesome-model")Как вы видите, единственное требование состоит в том, чтобы ваша модель наследовалась от PyTorchModelHubMixin. Все атрибуты экземпляра будут автоматически сериализованы в файл config.json. Обратите внимание, что метод init может принимать только аргументы, сериализуемые в JSON. Поддерживаются dataclasses Python.
Это обеспечивает автоматический сбор метрик загрузок, что позволяет отслеживать количество загрузок модели так же, как это доступно для моделей, нативно интегрированных в библиотеки Transformers, Diffusers или Timm. С помощью этого класса-миксина каждая отдельная контрольная точка хранится на Hub в отдельном репозитории, состоящем из 2 файлов:
- файл
pytorch_model.binилиmodel.safetensorsс весами - файл
config.json, представляющий собой сериализованную версию конфигурации модели. Этот класс используется для подсчета метрик загрузок: каждый раз, когда пользователь вызываетfrom_pretrainedдля загрузкиconfig.json, счетчик увеличивается на единицу. См. это руководство по автоматическим метрикам загрузок.
Рекомендуется добавлять карточку модели к каждой контрольной точке, чтобы пользователи могли узнать, о чём эта модель, получить ссылку на статью и т. д.
Ознакомьтесь с документацией huggingface_hub, чтобы узнать больше.
В качестве альтернативы можно просто программно загрузить файлы или папки на хаб: https://huggingface.co/docs/huggingface_hub/guides/upload.
Использование Git
Наконец, поскольку репозитории моделей — это обычные Git-репозитории, вы также можете использовать Git, чтобы отправить файлы вашей модели на Hub. Ознакомьтесь с руководством Начало работы с репозиториями, чтобы узнать, как использовать CLI git для фиксации и отправки ваших моделей.