Hub documentation
Usando 🤗 transformers na Hugging Face
Usando 🤗 transformers na Hugging Face
🤗 transformers é uma biblioteca mantida pela Hugging Face e pela comunidade, para Machine Learning de ponta em PyTorch, TensorFlow e JAX. Ela oferece milhares de modelos pré-treinados para executar tarefas em diferentes modalidades, como texto, visão e áudio. Somos um pouco parciais, mas realmente gostamos do 🤗 transformers!
Explorando o 🤗 transformers no Hub
Há mais de 630.000 modelos transformers no Hub, que você pode encontrar filtrando à esquerda de a página de modelos.
Você pode encontrar modelos para muitas tarefas diferentes:
- Extraindo a resposta de um contexto (question-answering).
- Criar resumos a partir de um texto extenso (summarization).
- Classificar texto (por exemplo, como spam ou não spam, text-classification).
- Gere um novo texto com modelos como GPT (text-generation).
- Identifique classes de palavras (verbo, sujeito, etc.) ou entidades (país, organização, etc.) em uma frase (token-classification).
- Transcreva arquivos de áudio para texto (automatic-speech-recognition).
- Classifique o falante ou o idioma em um arquivo de áudio (audio-classification).
- Detecte objetos em uma imagem (object-detection).
- Segmentar uma imagem (image-segmentation).
- Do Aprendizado por Reforço (reinforcement-learning)!
Você pode testar os modelos diretamente no navegador, sem precisar baixá-los, graças aos widgets integrados ao navegador!

Arquivos do repositório Transformers
Um repositório de modelos do Transformers geralmente contém arquivos de modelo e arquivos de pré-processador.

Model
O arquivo
config.jsonarmazena detalhes sobre a arquitetura do modelo, como o número de camadas ocultas, o tamanho do vocabulário, o número de cabeças de atenção, as dimensões de cada cabeça e muito mais. Esses metadados são o plano do modelo.O arquivo
model.safetensorsarmazena as camadas e os pesos pré-treinados dos modelos. Para modelos grandes, o arquivo safetensors é dividido em fragmentos para limitar a quantidade de memória necessária para carregá-lo. Consulte o arquivomodel.safetensors.index.jsonpara ver de qual arquivo safetensors os pesos do modelo estão sendo carregados.{ "metadata": { "total_size": 16060522496 }, "weight_map": { "lm_head.weight": "model-00004-of-00004.safetensors", "model.embed_tokens.weight": "model-00001-of-00004.safetensors", ... } }Você também pode visualizar esse mapeamento clicando no botão ↗ no cartão do modelo.

Safetensors é um formato de serialização mais seguro e rápido - em comparação com pickle - para armazenar pesos de modelos. Você pode encontrar pesos serializados em formatos como
bin,pthouckpt, massafetensorsestá sendo cada vez mais adotado no ecossistema de modelos como uma alternativa melhor.Um modelo também pode ter um arquivo
generation_config.jsonque armazena detalhes sobre como gerar texto, como se deve amostrar, os tokens principais a serem amostrados, a temperatura e os tokens especiais para iniciar e encerrar a geração.
Pré-processador
- O arquivo
tokenizer_config.jsonarmazena os tokens especiais adicionados por um modelo. Esses tokens especiais sinalizam diversas coisas para um modelo, como o início de uma frase, formatação específica para modelos de chat ou a indicação de uma imagem. Este arquivo também exibe o comprimento máximo da sequência de entrada que o modelo pode aceitar, a classe do pré-processador e as saídas que ele retorna. - O arquivo
tokenizer.jsonarmazena o vocabulário aprendido do modelo. - O
special_tokens_map.jsoné um mapeamento dos tokens especiais. Por exemplo, no Llama 3.1-8B-Instruct, o token de início de string é"<|begin_of_text|>".
Para outras modalidades, o arquivo
tokenizer_config.jsoné substituído porpreprocessor_config.json.
Usando modelos existentes
Todos os modelos transformer estão a uma linha de distância de serem usados! Dependendo de como você deseja usá-los, pode usar a API de alto nível com a função pipeline ou usar AutoModel para ter mais controle.
# With pipeline, just specify the task and the model id from the Hub.
from transformers import pipeline
pipe = pipeline("text-generation", model="distilbert/distilgpt2")
# If you want more control, you will need to define the tokenizer and model.
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("distilbert/distilgpt2")
model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2")Você também pode carregar um modelo de uma versão específica (com base no hash do commit, no nome da tag ou no branch) da seguinte forma:
model = AutoModel.from_pretrained(
"julien-c/EsperBERTo-small", revision="v2.0.1" # tag name, or branch name, or commit hash
)Se você quiser ver como carregar um modelo específico, pode clicar em Use in Transformers e receber um trecho de código funcional para carregá-lo! Se precisar de mais informações sobre a arquitetura do modelo, também pode clicar em “Read model documentation” na parte inferior do trecho de código.

Compartilhando seus modelos
Para saber tudo sobre o compartilhamento de modelos com o transformers, consulte o guia Compartilhar um modelo na documentação oficial.
Muitas classes em transformers, como os modelos e tokenizadores, possuem um método push_to_hub que permite enviar facilmente os arquivos para um repositório.
# Pushing model to your own account
model.push_to_hub("my-awesome-model")
# Pushing your tokenizer
tokenizer.push_to_hub("my-awesome-model")
# Pushing all things after training
trainer.push_to_hub()Há muito mais que você pode fazer, por isso sugerimos revisar o guia Compartilhar um modelo.
Recursos adicionais
- Biblioteca Transformers.
- Documentação do Transformers.
- Compartilhe um guia de modelo.