Imagine ter acesso a milhares de modelos de IA prontos para usar!
O Hugging Face é como um "GitHub para IA" - uma plataforma onde desenvolvedores do mundo inteiro compartilham seus modelos treinados.
Nesta aula, você vai descobrir como usar essa plataforma incrível para turbinar seus projetos de IA sem precisar treinar modelos do zero!
O Hugging Face democratizou a IA. Antes, só grandes empresas tinham acesso a modelos avançados. Hoje, qualquer pessoa pode usar modelos do nível do GPT, BERT, e muito mais!
🎯 Significado: Você tem acesso a meio milhão de modelos criados pelos melhores pesquisadores do mundo, de graça!
pip install transformers torch torchvision torchaudio
Esta é a biblioteca principal do Hugging Face
Acesse huggingface.co e crie sua conta gratuita
Benefícios: Acesso a modelos privados, upload de modelos próprios, maior limite de downloads
# Teste rápido
from transformers import pipeline
# Criar um classificador de sentimentos
classifier = pipeline("sentiment-analysis")
result = classifier("Eu amo o Hugging Face!")
print(result)
Descubra se um texto é positivo, negativo ou neutro:
from transformers import pipeline
# Criar o pipeline
sentiment_analyzer = pipeline("sentiment-analysis")
# Testar diferentes textos
texts = [
"Eu amo este produto!",
"Que serviço terrível...",
"O atendimento foi ok.",
"Este curso está sendo incrível!"
]
for text in texts:
result = sentiment_analyzer(text)
print(f"Texto: {text}")
print(f"Sentimento: {result[0]['label']} ({result[0]['score']:.2f})")
print("-" * 40)
Traduza textos para qualquer idioma:
from transformers import pipeline
# Tradutor Inglês → Português
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-en-pt")
# Traduzir textos
english_texts = [
"Hello, how are you?",
"Artificial Intelligence is amazing!",
"I am learning about Hugging Face"
]
for text in english_texts:
translation = translator(text)
print(f"🇺🇸 {text}")
print(f"🇧🇷 {translation[0]['translation_text']}")
print("-" * 40)
Crie continuações criativas para seus textos:
from transformers import pipeline
# Gerador de texto
generator = pipeline("text-generation", model="gpt2")
# Prompt inicial
prompt = "A inteligência artificial no futuro será"
# Gerar continuações
results = generator(
prompt,
max_length=100,
num_return_sequences=3,
temperature=0.7
)
print(f"Prompt: {prompt}")
print("=" * 50)
for i, result in enumerate(results, 1):
print(f"Continuação {i}:")
print(result['generated_text'])
print("-" * 40)
Identifique objetos em qualquer foto:
from transformers import pipeline
from PIL import Image
import requests
# Classificador de imagens
classifier = pipeline("image-classification")
# Carregar uma imagem da internet
url = "https://exemplo.com/sua-imagem.jpg"
image = Image.open(requests.get(url, stream=True).raw)
# Classificar a imagem
predictions = classifier(image)
print("🔍 O que vejo na imagem:")
for prediction in predictions[:5]:
confidence = prediction['score'] * 100
print(f"• {prediction['label']}: {confidence:.1f}% de certeza")
Gere legendas automáticas para suas fotos:
from transformers import pipeline
# Pipeline para gerar legendas
captioner = pipeline("image-to-text",
model="Salesforce/blip-image-captioning-base")
# Carregar sua imagem
image = Image.open("sua_foto.jpg")
# Gerar descrição
caption = captioner(image)
print(f"📸 Descrição da imagem: {caption[0]['generated_text']}")
# Você pode processar múltiplas imagens
import os
image_folder = "suas_fotos/"
for filename in os.listdir(image_folder):
if filename.lower().endswith(('.jpg', '.jpeg', '.png')):
img_path = os.path.join(image_folder, filename)
image = Image.open(img_path)
caption = captioner(image)
print(f"📁 {filename}: {caption[0]['generated_text']}")
Boa notícia!
Existem centenas de modelos especificamente treinados para português brasileiro!
Modelo BERT treinado especificamente em português
model="neuralmind/bert-base-portuguese-cased"
Geração de texto em português fluente
model="pierreguillou/gpt2-small-portuguese"
Análise de sentimentos e classificação
model="cardiffnlp/twitter-roberta-base-sentiment-latest"
# Usando modelo português para análise de sentimentos
from transformers import pipeline
# Modelo treinado em português
classifier = pipeline(
"sentiment-analysis",
model="cardiffnlp/twitter-roberta-base-sentiment-latest"
)
# Textos em português
texts = [
"Que dia maravilhoso para aprender IA!",
"Estou muito frustrado com esse código",
"O Brasil tem muito potencial em tecnologia"
]
for text in texts:
result = classifier(text)
sentiment = "😊 Positivo" if result[0]['label'] == 'POSITIVE' else "😢 Negativo"
confidence = result[0]['score'] * 100
print(f"'{text}' → {sentiment} ({confidence:.1f}%)")
Vamos criar um analisador que processa posts das redes sociais e identifica:
import pandas as pd
from transformers import pipeline
from datetime import datetime
class SocialMediaAnalyzer:
def __init__(self):
# Carregar os modelos necessários
print("🔄 Carregando modelos...")
self.sentiment_analyzer = pipeline("sentiment-analysis")
self.language_detector = pipeline("text-classification",
model="papluca/xlm-roberta-base-language-detection")
self.summarizer = pipeline("summarization")
print("✅ Modelos carregados!")
def analyze_post(self, text):
"""Analisa um único post"""
result = {}
# 1. Detectar idioma
language = self.language_detector(text)
result['language'] = language[0]['label']
result['language_confidence'] = language[0]['score']
# 2. Analisar sentimento
sentiment = self.sentiment_analyzer(text)
result['sentiment'] = sentiment[0]['label']
result['sentiment_score'] = sentiment[0]['score']
# 3. Informações básicas
result['text'] = text
result['word_count'] = len(text.split())
result['analyzed_at'] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
return result
def analyze_multiple_posts(self, posts_list):
"""Analisa múltiplos posts"""
results = []
for i, post in enumerate(posts_list, 1):
print(f"📊 Analisando post {i}/{len(posts_list)}")
analysis = self.analyze_post(post)
results.append(analysis)
# Converter para DataFrame para fácil análise
df = pd.DataFrame(results)
return df
def generate_report(self, df):
"""Gera relatório resumido"""
print("\n" + "="*50)
print("📊 RELATÓRIO DE ANÁLISE DE REDES SOCIAIS")
print("="*50)
# Estatísticas gerais
total_posts = len(df)
print(f"📝 Total de posts analisados: {total_posts}")
# Distribuição de sentimentos
sentiment_dist = df['sentiment'].value_counts(normalize=True) * 100
print(f"\n💭 Distribuição de Sentimentos:")
for sentiment, percentage in sentiment_dist.items():
emoji = "😊" if sentiment == "POSITIVE" else "😢"
print(f" {emoji} {sentiment}: {percentage:.1f}%")
# Idiomas detectados
language_dist = df['language'].value_counts()
print(f"\n🌍 Idiomas Detectados:")
for language, count in language_dist.items():
print(f" 🗣️ {language}: {count} posts")
# Posts mais positivos e negativos
most_positive = df.loc[df['sentiment_score'].idxmax()]
most_negative = df.loc[df['sentiment_score'].idxmin()]
print(f"\n🏆 Post Mais Positivo:")
print(f" '{most_positive['text'][:80]}...'")
print(f" Score: {most_positive['sentiment_score']:.3f}")
print(f"\n💔 Post Mais Negativo:")
print(f" '{most_negative['text'][:80]}...'")
print(f" Score: {most_negative['sentiment_score']:.3f}")
# Exemplo de uso
if __name__ == "__main__":
# Dados de exemplo (você pode conectar com APIs reais)
sample_posts = [
"Adorando aprender sobre IA! Cada aula é uma nova descoberta incrível! 🚀",
"Que frustração... o código não funciona de jeito nenhum 😤",
"O futuro da tecnologia brasileira é promissor. Vamos investir em educação!",
"I love learning about artificial intelligence and machine learning!",
"Este curso está superando todas as minhas expectativas! Recomendo muito!",
"Día perfecto para aprender nuevas tecnologías 🌟",
"Não consegui entender nada dessa aula... muito confuso",
"IA vai revolucionar o mercado de trabalho nos próximos anos",
"Amazing how AI can understand different languages so well!",
"Parabéns pelo conteúdo de qualidade! Melhor investimento que fiz este ano!"
]
# Criar o analisador
analyzer = SocialMediaAnalyzer()
# Analisar os posts
results_df = analyzer.analyze_multiple_posts(sample_posts)
# Gerar relatório
analyzer.generate_report(results_df)
# Salvar resultados
results_df.to_csv('analise_redes_sociais.csv', index=False)
print(f"\n💾 Resultados salvos em 'analise_redes_sociais.csv'")
Use os filtros no site do Hugging Face:
Para modelos mais rápidos:
# Use device="cpu" ou "cuda"
pipeline("sentiment-analysis", device=0)
# Cache modelos localmente
from transformers import AutoModel
model = AutoModel.from_pretrained(
"model-name",
cache_dir="./models/"
)
Para múltiplos textos:
# Mais eficiente que loops
classifier = pipeline("sentiment-analysis")
texts = ["texto1", "texto2", "texto3"]
results = classifier(texts) # Processa todos juntos
Sempre trate exceções:
try:
result = classifier(text)
return result
except Exception as e:
print(f"Erro ao processar: {e}")
return None
Você acabou de desbloquear o acesso a meio milhão de modelos de IA criados pelos melhores pesquisadores do mundo!
Na próxima aula, vamos explorar o Stable Diffusion e aprender a gerar imagens incríveis com IA!
"O Hugging Face democratizou a IA. Agora você faz parte dessa revolução!"
- Isaque Victor