Pre-trained Models Iniciante ~45 min

Hugging Face

Topico 15 de 35
hugging-face modelos open-source
AÇÕES
Progresso do Topico 0%

Hugging Face

Hugging Face e a principal plataforma e comunidade para modelos de machine learning open source. Conhecida como o "GitHub do ML", oferece ferramentas, bibliotecas e um hub com milhares de modelos pre-treinados para NLP, visao computacional e muito mais.

O Ecossistema Hugging Face#

Hub#

Repositorio central com mais de 500.000 modelos, datasets e espacos (demos).

Transformers#

Biblioteca Python que simplifica o uso de modelos como BERT, GPT, T5, LLaMA e CLIP.

Datasets#

Biblioteca para carregar e processar datasets de ML facilmente.

Spaces#

Plataforma para hospedar demos e aplicacoes de ML gratuitamente.

Inference API#

API para usar modelos sem precisar de infraestrutura propria.

Primeiros Passos#

Instalacao#

Bash
pip install transformers torch

Uso Basico - Pipeline#

A forma mais simples de usar modelos:

Python
from transformers import pipeline

# Analise de sentimento
classifier = pipeline("sentiment-analysis")
result = classifier("I love this product!")
print(result)  # [{'label': 'POSITIVE', 'score': 0.9998}]

# Geracao de texto
generator = pipeline("text-generation", model="gpt2")
text = generator("Once upon a time", max_length=50)
print(text)

# Resumo
summarizer = pipeline("summarization")
summary = summarizer("Texto longo aqui...", max_length=100)

# Traducao
translator = pipeline("translation_en_to_pt", model="Helsinki-NLP/opus-mt-en-pt")
result = translator("Hello, how are you?")

Pipelines Disponiveis#

PipelineDescricaoExemplo de Modelo
text-classificationClassificacao de textodistilbert-base-uncased
sentiment-analysisAnalise de sentimentonlptown/bert-base-multilingual
text-generationGeracao de textogpt2, meta-llama/Llama-2
summarizationResumo de textofacebook/bart-large-cnn
translationTraducaoHelsinki-NLP/opus-mt-*
question-answeringPerguntas e respostasdeepset/roberta-base-squad2
fill-maskCompletar lacunasbert-base-uncased
image-classificationClassificar imagensgoogle/vit-base-patch16-224
object-detectionDetectar objetosfacebook/detr-resnet-50

Usando Modelos Especificos#

Carregando Modelos Diretamente#

Python
from transformers import AutoModelForCausalLM, AutoTokenizer

# Carregar modelo e tokenizer
model_name = "mistralai/Mistral-7B-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Gerar texto
inputs = tokenizer("Explain quantum computing:", return_tensors="pt")
outputs = model.generate(**inputs, max_length=100)
print(tokenizer.decode(outputs[0]))

Modelos para Embeddings#

Python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer('all-MiniLM-L6-v2')

sentences = [
    "Isso e um exemplo",
    "Cada frase vira um vetor",
    "Vetores similares ficam proximos"
]

embeddings = model.encode(sentences)
print(embeddings.shape)  # (3, 384)

Hugging Face Hub#

  1. Acesse huggingface.co/models
  2. Filtre por tarefa, biblioteca, licenca
  3. Veja model cards com documentacao e exemplos
  4. Confira metricas e benchmarks

Autenticacao para Modelos Privados#

Python
from huggingface_hub import login

# Login com token (obtenha em huggingface.co/settings/tokens)
login(token="hf_xxxxx")

# Ou via variavel de ambiente
# export HUGGING_FACE_HUB_TOKEN=hf_xxxxx

Inference API#

Use modelos sem baixar localmente:

Python
import requests

API_URL = "https://api-inference.huggingface.co/models/gpt2"
headers = {"Authorization": "Bearer hf_xxxxx"}

def query(payload):
    response = requests.post(API_URL, headers=headers, json=payload)
    return response.json()

output = query({"inputs": "The answer to life is"})

Spaces - Hospedando Demos#

Criar um Space com Gradio#

Python
# app.py
import gradio as gr
from transformers import pipeline

classifier = pipeline("sentiment-analysis")

def analyze(text):
    result = classifier(text)[0]
    return f"{result['label']}: {result['score']:.2%}"

demo = gr.Interface(fn=analyze, inputs="text", outputs="text")
demo.launch()

Deploy#

  1. Crie um repositorio no Hugging Face Spaces
  2. Faca upload do app.py e requirements.txt
  3. O Space sera construido e hospedado automaticamente

Dicas de Performance#

Quantizacao para Modelos Grandes#

Python
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    "mistralai/Mistral-7B-v0.1",
    load_in_8bit=True,  # Reduz uso de memoria
    device_map="auto"
)

Cache de Modelos#

Bash
# Definir diretorio de cache
export HF_HOME=/path/to/cache

# Ou em Python
import os
os.environ["HF_HOME"] = "/path/to/cache"

Recursos#


Checklist#

5 recursos

Este topico tambem pode ser acessado em /topicos/hugging-face