Modelo de linguagem GPT-2 ajustado (fine-tuning) para transformar comandos em linguagem natural em tarefas estruturadas, disponibilizado por meio de uma API REST em Flask.
Este projeto demonstra um pipeline completo de engenharia de modelos de linguagem:
curadoria de dados → fine-tuning → inferência → disponibilização via API.
Comandos em linguagem natural são ambíguos e não estruturados, o que dificulta sua integração direta com sistemas de produtividade, agendas ou assistentes virtuais.
Exemplo:
“me lembre de ligar para o médico”
Como transformar isso em algo que um sistema consiga executar?
Este projeto ajusta o modelo GPT-2 utilizando dados no formato de instruções, permitindo que o modelo:
- Entenda a intenção do usuário
- Gere uma resposta clara
- Retorne uma estrutura padronizada de tarefa, contendo:
- Nome da tarefa
- Horário sugerido
O modelo treinado é servido localmente por meio de uma API Flask, pronta para integração com outros sistemas.
Prompt do Usuário
↓
Tokenização
↓
GPT-2 Ajustado por Instruções
↓
Saída Estruturada (TASK + TIME)
↓
API REST (Flask)
- Modelo base: GPT-2
- Técnica: Fine-tuning com instruções (instruction tuning)
- Frameworks: PyTorch, Hugging Face Transformers
- Serviço: Flask (API local)
- Inferência: Pipeline local
curl -X POST http://localhost:5000/generate \
-H "Content-Type: application/json" \
-d '{"prompt": "Crie uma tarefa para ir ao dentista"}'{
"response": "Tarefa de consulta no dentista adicionada.\n[TASK: Consulta no dentista | TIME: 10:00]"
}O modelo é treinado com exemplos no seguinte formato:
{
"text": "Usuário: me lembre de regar as plantas\nAssistente:\nLembrete criado para regar as plantas.\n[TASK: Regar plantas | TIME: 09:00]"
}Esse padrão ensina o modelo a:
- Reconhecer intenções
- Manter consistência na saída
- Sugerir horários coerentes com o contexto da tarefa
- Curadoria e tokenização de um dataset customizado
- Ajuste fino do GPT-2 com o
Trainerda Hugging Face - Exportação do modelo treinado
- Disponibilização via API REST local
- Boa compreensão da intenção do usuário
- Saídas estruturadas consistentes
- Sugestão de horários realistas
- Inferência local estável
Este repositório vai além do uso básico de LLMs e demonstra:
- Criação de datasets orientados a tarefas reais
- Ajuste fino de modelos de linguagem
- Transformação de texto livre em dados estruturados
- Deploy local pronto para integração
Aplicável a:
- Ferramentas de produtividade
- Agendas inteligentes
- Assistentes virtuais
- Backends conversacionais
from transformers import pipeline
generator = pipeline(
"text-generation",
model="./gpt2-tasker",
tokenizer="./gpt2-tasker"
)
prompt = "Usuário: me lembre de ligar para o médico\nAssistente:\n"
output = generator(prompt, max_length=100, do_sample=True)
print(output[0]["generated_text"])Este projeto faz parte da minha exploração prática em:
- Modelos de Linguagem de Grande Escala (LLMs)
- Instruction tuning
- Curadoria de dados para aplicações reais
- Engenharia de IA com foco em produto
Se você busca alguém que una engenharia de modelos com visão prática de sistemas, este projeto reflete exatamente isso.