Hub documentation
Carregando modelos
Carregando modelos
Para enviar modelos para o Hub, você precisa criar uma conta no Hugging Face. Os modelos no Hub são repositórios baseados em Git, que oferecem versionamento, branches, descoberta e recursos de compartilhamento, integração com dezenas de bibliotecas e muito mais! Você tem controle sobre o que deseja enviar para o seu repositório, o que pode incluir checkpoints, configs e quaisquer outros arquivos.
Você pode vincular repositórios a um usuário individual, como osanseviero/fashion_brands_patterns, ou a uma organização, como facebook/bart-large-xsum. Organizações podem reunir modelos relacionados a uma empresa, comunidade ou biblioteca! Se você escolher uma organização, o modelo será destacado na página da organização e todos os membros da organização terão a capacidade de contribuir para o repositório. Você pode criar uma nova organização aqui.
NOTA: Os modelos NÃO precisam ser compatíveis com as bibliotecas Transformers/Diffusers para obter métricas de download. Qualquer modelo personalizado é suportado. Leia mais abaixo!
Existem várias maneiras de enviar modelos para que sejam bem integrados ao Hub e obtenham métricas de download, descritas abaixo.
- Caso o seu modelo seja projetado para uma biblioteca que possui suporte nativo, você pode usar os métodos fornecidos pela biblioteca. Modelos personalizados que usam
trust_remote_code=Truetambém podem aproveitar esses métodos. - Caso seu modelo seja um modelo PyTorch personalizado, é possível aproveitar a classe
PyTorchModelHubMixin, pois ela permite adicionarfrom_pretrainedepush_to_huba qualquer classenn.Module, assim como nos modelos das bibliotecas Transformers, Diffusers e Timm. - Além dos uploads programáticos, você sempre pode usar a interface web ou a linha de comando do git.
Depois que o seu modelo for enviado, sugerimos adicionar um Model Card ao seu repositório para documentar o modelo e torná-lo mais fácil de encontrar.
Example [repository](https://huggingface.co/LiheYoung/depth_anything_vitl14) that leverages [PyTorchModelHubMixin](#upload-a-pytorch-model-using-huggingfacehub). Downloads are shown on the right. Usando a interface web
Para criar um novo repositório de modelo, visite huggingface.co/new. Em seguida, siga estas etapas:
- Na aba “Files and versions”, selecione “Add File” e especifique “Upload File”:

- A partir daí, selecione um arquivo do seu computador para enviar e deixe uma mensagem de commit útil para saber o que está sendo enviado:

Em seguida, clique em Commit changes para enviar seu modelo ao Hub!
Inspecionar arquivos e histórico
Você pode verificar seu repositório com todos os arquivos adicionados recentemente!

A interface permite explorar os arquivos do modelo e os commits e visualizar a diferença introduzida por cada commit:

- Adicionar metadados
Você pode adicionar metadados ao seu cartão de modelo. Você pode especificar:
- o tipo de tarefa para a qual este modelo é destinado, habilitando widgets e Inference Providers.
- a biblioteca utilizada (
transformers,spaCy, etc.) - a linguagem
- o conjunto de dados
- métricas
- licença
- muito mais!
Saiba mais sobre as tags de modelos aqui.
- Adicionar rastreamentos do TensorBoard
Qualquer repositório que contenha rastros do TensorBoard (nomes de arquivo que contenham tfevents) é categorizado com a tag TensorBoard. Como convenção, sugerimos que você salve os rastros na subpasta runs/. A aba “Training metrics” então facilita a revisão de gráficos das variáveis registradas, como a perda ou a precisão.

Modelos treinados com 🤗 Transformers gerarão trilhas do TensorBoard por padrão se tensorboard estiver instalado.
Upload a partir de uma biblioteca com suporte nativo
Primeiro, verifique se o seu modelo é de uma biblioteca que possui suporte nativo para enviar/carregar do Hub, como Transformers, Diffusers, Timm, Asteroid, etc.: https://huggingface.co/docs/hub/models-libraries. Abaixo, mostraremos como isso é simples para uma biblioteca como a 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")Algumas bibliotecas, como a Transformers, suportam o carregamento de código do Hub. Essa é uma maneira de fazer seu modelo funcionar com a Transformers usando a flag trust_remote_code=True. Você pode considerar essa opção em vez de uma integração completa de biblioteca.
Envie um modelo do PyTorch usando huggingface_hub
Caso seu modelo seja um modelo (personalizado) do PyTorch, você pode aproveitar a classe PyTorchModelHubMixin disponível na biblioteca Python huggingface_hub. Trata-se de uma classe mínima que adiciona as capacidades from_pretrained e push_to_hub a qualquer nn.Module, além de métricas de download.
Aqui está como usá-lo (assumindo que você tenha executado 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")Como você pode ver, o único requisito é que seu modelo herde de PyTorchModelHubMixin. Todos os atributos de instância serão serializados automaticamente para um arquivo config.json. Observe que o método init só pode receber argumentos que sejam serializáveis em JSON. Dataclasses do Python são suportadas.
Isso vem com métricas de download automatizadas, o que significa que você poderá ver quantas vezes o modelo é baixado, da mesma forma que estão disponíveis para modelos integrados nativamente nas bibliotecas Transformers, Diffusers ou Timm. Com essa classe mixin, cada checkpoint separado é armazenado no Hub em um único repositório consistindo de 2 arquivos:
- um arquivo
pytorch_model.binoumodel.safetensorscontendo os pesos - um arquivo
config.json, que é uma versão serializada da configuração do modelo. Esta classe é usada para contar métricas de download: sempre que um usuário chamafrom_pretrainedpara carregar umconfig.json, a contagem aumenta em um. Consulte este guia sobre métricas de download automatizadas.
É recomendável adicionar um cartão de modelo a cada checkpoint para que as pessoas possam ler sobre o que o modelo trata, ter um link para o artigo, etc.
Acesse a documentação do huggingface_hub para saber mais.
Alternativamente, também é possível simplesmente fazer o upload de arquivos ou pastas para o hub de forma programática: https://huggingface.co/docs/huggingface_hub/guides/upload.
Usando Git
Por fim, como os repositórios de modelos são apenas repositórios Git, você também pode usar o Git para enviar seus arquivos de modelo para o Hub. Siga o guia em Primeiros passos com repositórios para aprender a usar a CLI git para commitar e enviar seus modelos.