Como criar um modelo de linguagem de geração de texto (like GPT)
Bom, primeiramente criar um modelo completamente do zero é extremamente custoso mas também nao queríamos pegar um modelo com 30 bilhões de parametros como base porque seria meio "cheat".
Tudo aconteceu em um hackaton interno da nossa empresa.
A proposta era criar um modelo de geração de texto que seja melhor adaptado ao nosso idioma, já que outros modelos como GPT, Gemini, etc, tem como base datasets extremamente grandes e em sua maior parte em inglês. Por isso o entendimento de sotaques, gírias é tão superficial e "bobo" com a maioria das IA's.
Criar do zero acabou ficando pra trás... R$
A decisão foi, pegar um modelo base em pt-br, ou multi-lingual, pequeno, e fazer um processo de fine-tunning com dataset melhorado.
Em suma foi isso que aconteceu, pegamos o modelo Tucano BR (para prod) um dos modelos mais bem preparados ultimamente em idioma pt-br, os desenvolvedores vem fazendo um ótimo trabalho, inclusive com novos modelos sendo lançados. (para apresentar no hackaton)
Mais sobre TucanoBR
Eu decidi ir por outro caminho, utilizar um modelo multi-lingual.
Dito isso, obviamente nao iriamos conseguir fazer um super modelo que responde tudo, pensa, escreve código, enfim, sejamos realistas precisariamos de alguns milhares de doláres em GPU para isso acontecer de fato.
Vou colocar abaixo alguns dados e insights que tivemos durante a criação disso tudo.
Pois inicialmente no modelo em que criei o Llama-3.2-1B-Instruct-bnb-4bit e fazer o fine tunning em portugues, esse modelo apesar de "pequeno" tem algumas otimizações para uso de memória quantização entre outros.
Já adiantando que no final acabamos criando 3 modelos de linguagem (eu e mais um desenvolvedor criou cada 1 para si, na fase de aprendizado, e criamos um para apresentar nosso hackaton, poso falar mais dele posteriormente)
Sobre o modelo que criei vou colocar meio aleatoriamente os dados, se quiserem podem me perguntar algo específico também que respondo nos comentários.
O que é um fine tunning ?
- é um processo de treinar um modelo de inteligência artificial pré-treinado (como GPT, Tucano, etc) com um conjunto de dados menor e específico (dataset)
Onde criamos o fine tunning ?
- Iniciamos no Google notebook e passamos a parte mais pesada do fine tunning e benchmark na vertex colab (utiliza a mesma interface jupyter notebook), mas sim tudo feito em python, e não, antes disso nunca tinha programado em produção com python.
Qual a configuração da máquina que utilizamos para fazer o fine tunning e benchmark do modelo?
- VM Google Workbench, 16 vCPUs, 60 GB de RAM, NVIDIA T4 x 2 (é uma maquina mais robusta, utilizamos créditos de start up do gooogle cobriu e sobrou)
📌 Informações do Fine-Tuning
Modelo base: unsloth/llama-3.2-1b-instruct-bnb-4bit
Dataset de fine-tuning: thejpdev/atlantica-dts-572k-pt-br
Tamanho do dataset: ~572k exemplos
Idioma: Português Brasileiro
Método: Supervised Fine-Tuning (LoRA / QLoRA)
Framework: Hugging Face Transformers + Unsloth
O dataset atlantica-dts-572k-pt-br foi construído a partir da agregação, normalização e padronização de múltiplos conjuntos públicos em português, com foco em instruções e respostas.
🧠 Objetivo do Modelo
O Atlantica-1B-PT-BR foi ajustado para:
Seguir instruções em português brasileiro
Responder perguntas abertas e contextuais
Classificação simples de texto
Tarefas educacionais e benchmarks em PT-BR
Inferência local leve (ex: LM Studio, GGUF)
Devido ao seu tamanho, o modelo é mais adequado para tarefas gerais e ambientes com recursos limitados.
Atlantica-1B-PT-BR é um modelo de linguagem instruct com aproximadamente 1 bilhão de parâmetros, ajustado especificamente para português brasileiro por meio de fine-tuning supervisionado.
📌 Informações do Fine-Tuning
Desenvolvedor: thejpdev (Linkedin)
Modelo base: unsloth/llama-3.2-1b-instruct-bnb-4bit
Dataset de fine-tuning: thejpdev/atlantica-dts-572k-pt-br
Tamanho do dataset: ~572k exemplos
Idioma: Português Brasileiro
Método: Supervised Fine-Tuning (LoRA / QLoRA)
Framework: Hugging Face Transformers + Unsloth
O dataset atlantica-dts-572k-pt-br foi construído a partir da agregação, normalização e padronização de múltiplos conjuntos públicos em português, com foco em instruções e respostas.
🧠 Objetivo do Modelo
O Atlantica-1B-PT-BR foi ajustado para:
Seguir instruções em português brasileiro
Responder perguntas abertas e contextuais
Classificação simples de texto
Tarefas educacionais e benchmarks em PT-BR
Inferência local leve (ex: LM Studio, GGUF)
Devido ao seu tamanho, o modelo é mais adequado para tarefas gerais e ambientes com recursos limitados.
🧪 Avaliação
O modelo foi avaliado utilizando benchmarks em português, incluindo:
ENEM (challenge)
TweetSentBR (análise de sentimentos)
Bluex
Os resultados indicam desempenho consistente com modelos de pequeno porte treinados especificamente para instruções em português.
💻 Uso Local
Versões convertidas para GGUF estão disponíveis para uso em ferramentas como LM Studio.
Configuração recomendada:
Contexto máximo: até 2048 tokens
Temperatura: 0.3 – 0.8
LINK DO MODELO: hugging face
LINK DO DATASET: hugging face
Train/Loss
https://i.imgur.com/paQTQPV.png
Testando no LM Studio
https://i.imgur.com/NSFOZAP.png
caso queira baixar e testar no LM Studio é só fazer o download direto colocando o endereço do modelo -> thejpdev/atlantica-1b-pt-br-v1.0
Não é um super modelo de inferência mas é basicamente o v0 do Atlantica(vamos seguir a trilha dos grandes, o primeiro gpt também nao era aquelas coisas). Provavelmente a versão 2.0 do Atlântica ja vai ter grandes saltos. Depois posso fazer outros artigos falando sobre outras técnicas com SFT, LoRa, unsloth para otimizar treino, memória e performance (é uma balança entre otimizar modelo, otimizar uso de memória, etc, etc, nao tem como se ter tudo nessa vida)
Se tu tem algum projeto parecido manda aí também, se tiver alguma dúvida joga nos comentários que eu respondo.
Meus contatos
Email: [email protected]
Linkedin: https://www.linkedin.com/in/thejpdev
Github: https://github.com/thejpdev