Model Card for chatbot-canarim-ptbr
Chatbot de perguntas e respostas em português, obtido via fine-tuning do
pierreguillou/gpt2-small-portuguese
no dataset dominguesm/Canarim-Instruct-PTBR-Dataset.
Projeto desenvolvido para a Prova Substitutiva da Fase 4 (Machine Learning Engineering) da pós-graduação em ML Engineering da FIAP.
Model Details
Model Description
Este modelo é uma versão fine-tuned do GPorTuguese-2 (GPT-2 adaptado para
português), ajustada para seguir o padrão Pergunta: ... / Resposta: ...
e responder perguntas abertas em português de forma expositiva.
- Developed by: gabifcavalheiro
- Model type: Causal Language Model (GPT-2 small), fine-tuned para geração de respostas no formato pergunta/resposta
- Language(s) (NLP): Português (pt-BR)
- License: cc-by-nc-4.0 (herdada do dataset de fine-tuning, que é não-comercial; o modelo base é MIT)
- Finetuned from model: pierreguillou/gpt2-small-portuguese
Model Sources
- Repository: https://github.com/gabicavalheiro/chatbot-canarium-huggingface
- Demo: app Streamlit incluído no repositório acima (
app.py)
Uses
Direct Use
Uso educacional/demonstrativo em um playground interativo (Streamlit), para
explorar como fine-tuning e parâmetros de geração (temperature, top_p,
repetition_penalty) afetam a qualidade de respostas de um modelo de
linguagem pequeno em português.
Out-of-Scope Use
- Não é confiável para fatos (datas, números, eventos específicos) — o modelo tende a alucinar informação quando testado com perguntas factuais precisas.
- Não deve ser usado em produção ou em qualquer contexto que exija respostas corretas, seguras ou verificadas (ex: aconselhamento médico, legal, financeiro).
- Não segue bem instruções compostas (ex: perguntas com duas partes) nem formatos criativos específicos (ex: pedir um poema retorna prosa).
- Uso comercial não é permitido, devido à licença não-comercial (cc-by-nc-4.0) do dataset de fine-tuning.
Bias, Risks, and Limitations
- O modelo foi fine-tuned com apenas uma fatia de 3.000 exemplos (de mais de 316 mil disponíveis no dataset original), o que limita a variedade de padrões aprendidos.
- Respostas tendem a começar coerentes e relevantes, mas divagam e perdem precisão conforme crescem (observado a partir de ~2-3 frases).
- O modelo é sensível à formulação da pergunta: perguntas curtas, informais ou sem pontuação (ex. "o que é ia") tendem a gerar respostas com relevância muito menor do que a mesma pergunta escrita de forma completa.
- Como o modelo base foi treinado em dados da Wikipedia em português, ele herda os vieses e lacunas de cobertura típicos desse tipo de corpus.
- Repete padrões discursivos (ex: uso excessivo do conector "Além disso") mesmo com
repetition_penaltyativo, já que essa penalidade atua sobre tokens repetidos, não sobre estrutura discursiva.
Uma avaliação qualitativa detalhada, com exemplos reais de pergunta/resposta
e análise crítica, está disponível no repositório do GitHub em
avaliacao_qualitativa.md.
Recommendations
Use este modelo apenas para fins exploratórios/educacionais. Não utilize as respostas geradas como fonte de informação factual sem verificação independente.
How to Get Started with the Model
from transformers import GPT2LMHeadModel, GPT2TokenizerFast
MODEL_ID = "gabifcavalheiro/chatbot-canarim-ptbr"
tokenizer = GPT2TokenizerFast.from_pretrained(MODEL_ID)
model = GPT2LMHeadModel.from_pretrained(MODEL_ID)
model.eval()
pergunta = "O que é inteligência artificial?"
prompt = f"Pergunta: {pergunta}\nResposta:"
entrada = tokenizer.encode(prompt, return_tensors="pt")
saida = model.generate(
entrada,
max_length=entrada.shape[1] + 120,
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.3,
pad_token_id=tokenizer.eos_token_id,
)
texto = tokenizer.decode(saida[0], skip_special_tokens=True)
resposta = texto.split("Resposta:", 1)[-1].strip()
print(resposta)
Training Details
Training Data
dominguesm/Canarim-Instruct-PTBR-Dataset —
dataset de instrução/resposta em português (mais de 316 mil exemplos no
split de treino). Este modelo foi treinado com uma fatia de 3.000
exemplos, escolhida para viabilizar o treinamento em hardware doméstico
dentro do prazo do projeto.
Training Procedure
Cada par (instruction, output) do dataset foi formatado como o texto:
Pergunta: {instruction}
Resposta: {output}<eos>
Os textos formatados foram tokenizados e concatenados em uma sequência
única, depois divididos em blocos de tamanho fixo (block_size=128) para
o treinamento — abordagem padrão para modelagem de linguagem causal.
Training Hyperparameters
| Parâmetro | Valor |
|---|---|
| Modelo base | pierreguillou/gpt2-small-portuguese |
| Épocas | 3 |
| Batch size (por dispositivo) | 2 |
| Block size | 128 |
| Objetivo de treino | Causal Language Modeling (mlm=False) |
| Framework | 🤗 transformers.Trainer |
Evaluation
A avaliação foi qualitativa, com 4 exemplos de pergunta/resposta analisados
quanto a coerência, relevância e repetição, além de testes comparativos do
efeito da temperature (0.3 vs. 1.3). O documento completo está disponível
em avaliacao_qualitativa.md no repositório do GitHub.
Resumo dos resultados: o modelo produz respostas coerentes e relevantes
no início, mas tende a divagar em respostas longas; não segue bem
instruções compostas ou formatos criativos específicos; e é sensível à
formulação da pergunta. O melhor equilíbrio de parâmetros de geração
encontrado foi temperature=0.7, top_p=0.9, repetition_penalty=1.3.
Technical Specifications
Model Architecture and Objective
GPT-2 small (arquitetura Transformer decoder-only), com objetivo de modelagem de linguagem causal (prever o próximo token dado o contexto anterior).
Compute Infrastructure
Hardware
Treinado localmente em máquina com CPU (sem GPU dedicada de alta capacidade), Windows.
Software
- 🤗
transformers - 🤗
datasets - PyTorch
- Python 3.12
Model Card Contact
Dúvidas ou sugestões: abra uma issue no repositório do GitHub.
- Downloads last month
- -
Model tree for gabifcavalheiro/chatbot-canarim-ptbr
Base model
pierreguillou/gpt2-small-portuguese