Transformer Core é uma implementação educacional e compacta do Decoder da arquitetura Transformer, projetada para tarefas de NLP como geração de texto e perguntas/respostas. Leve, interpretável e pronta para personalização, ela é ideal para estudantes, entusiastas e experimentos locais.
Transformer é uma arquitetura de rede neural que mudou fundamentalmente a abordagem da Inteligência Artificial. Foi introduzida no artigo seminal "Attention is All You Need" em 2017 e desde então se tornou a principal arquitetura para modelos de deep learning, impulsionando modelos de geração de texto como o GPT da OpenAI, o Llama da Meta e o Gemini do Google. Além do texto, o Transformer também é aplicado na geração de áudio, reconhecimento de imagens, previsão de estrutura de proteínas e até em jogos, demonstrando sua versatilidade em diversos domínios.
Fundamentalmente, modelos Transformers de geração de texto operam com base no princípio de previsão da próxima palavra: dado um prompt textual do usuário, qual é a próxima palavra mais provável? A inovação central e o poder dos Transformers residem no uso do mecanismo de autoatenção (self-attention), que permite processar sequências inteiras e capturar dependências de longo alcance com mais eficácia do que arquiteturas anteriores.
A família GPT-2 é um exemplo proeminente do decoder da arquiterura Transformers para geração de texto. O Transformer Core se inspira nesses modelos e compartilha muitos dos mesmos componentes e princípios arquiteturais fundamentais encontrados nos modelos atuais de ponta, tornando-o ideal para aprendizado e compreensão básica.
Todo Decoder da arquitetura Transformer é composto por três componentes principais:
- 
Embedding: A entrada textual é dividida em unidades menores chamadas tokens, que podem ser palavras ou subpalavras. Esses tokens são convertidos em vetores numéricos chamados embeddings, que capturam o significado semântico das palavras.
 - 
Bloco Transformer: É o bloco fundamental do modelo que processa e transforma os dados de entrada. Cada bloco inclui:
- Mecanismo de Atenção (Attention Mechanism): permite que os tokens se comuniquem entre si, capturando informações contextuais e relações entre palavras.
 - Camada MLP (Multilayer Perceptron): uma rede feed-forward que opera em cada token de forma independente. Enquanto a atenção roteia informações entre tokens, o MLP refina a representação de cada token.
 
 - 
Probabilidades de Saída: As camadas finais lineares e softmax transformam os embeddings processados em probabilidades, permitindo que o modelo preveja o próximo token na sequência.
 
O Transformer Core é composto pelos seguintes blocos principais:
Embedding: embedding de palavras e posiçõesTransformerBlock: bloco completo com LayerNorm, residual e atenção + MLPMultiHeadSelfAttention: atenção com projeção conjunta QKV, máscara causal e concatenação de cabeçasTransformerMLP: MLP com GELU e projeções linearesSimpleTransformer: empilhamento de blocos, seguido por uma projeção linear para logits
Exemplo de configuração:
model = SimpleTransformer(
    vocab_size=len(vocab),
    embed_dim=128,
    num_heads=8,
    num_layers=4
)- Arquitetura Transformer simplificada com PyTorch puro
 - Camada de atenção multi-cabeça (multi-head self-attention)
 - Conexões residuais com normalização e MLP
 - Projeções integradas de Q, K e V
 - Geração de texto com temperatura, top-k e top-p
 - Dataset estilo QA baseado em texto plano
 
transformer_core_project/
├── transformer_app_playground   # App Playground
├── transformer_train            # App Transforme Train 
├── model.py                     # Arquitetura do Transformer Core
├── train_transformer.py         # Script de treino e geração via terminal
├── textDataset.txt              # Dados de treinamento com pares QA
├── modelo_transformer.pt        # Modelo treinado
├── vocab_transformer.json       # Vocabulário serializado
├── TransformerCoreTreino.ipynb  # Versão notebook interativo
└── requirements.txt             # Dependências 
# Criar e ativar o ambiente virtual
python -m venv myenv
.\myenv\Scripts\activate
# Instalar as Depedências
pip install torch streamlit numpy pillow matplotlib
ou
pip install -r requirements.txt
# Rodar app Playground 
cd transformer_app_playground
streamlit run main.py
# Rodar app Transformer Train
cd transformer_train
streamlit run train_transformer_app.py
ou
# Treinar modelo via terminal
python train_transformer.pyO app Transformer Train é responsável por treinar um modelo Transformer simples para tarefas de geração de texto com base em pares de pergunta e resposta. Ele segue uma arquitetura compacta e educacional, ideal para fins de aprendizado, prototipagem e experimentação.
- Pré-processamento do dataset (
textDataset.txt). - Definição do modelo Transformer com número ajustável de camadas, cabeças, embeddings.
 - Treinamento supervisionado com otimização via 
Adamecross_entropy. - Salvamento dos pesos do modelo e vocabulário treinado.
 - Geração de texto a partir de um prompt, usando top-k e top-p sampling.
 - Geração de gráfico: um gráfico com a curva de perda (loss) para facilitar a análise do desempenho do modelo.
 - Exibe o batch atual: mostra os tokens numéricos e as palavras reais.
 - Gera um heatmap da atenção: gera um heatmap da atenção da última camada e primeira cabeça de atenção.
 - Exibe a loss: Exibe a loss média a cada época.
 - Atualiza o progresso batch: Atualiza o progresso batch a batch em tempo real.
 
O projeto inclui uma interface interativa desenvolvida com Streamlit chamada Playground, que permite explorar e testar o modelo treinado pelo Transformer Train diretamente no navegador. O modelo treinado é salvo no modelo_transformer.pt. Para usar o modelo treinado basta copiar o modelo_transformer.pt para a pasta transformer_app_playground.
A interface é intuitiva e oferece os seguintes recursos:- 
Entrada de texto para perguntas abertas
 - 
Sliders interativos para configurar os parâmetros da geração:
- Número de palavras a gerar
 - Temperatura (controla a aleatoriedade)
 - Top-k (seleção dos k tokens mais prováveis)
 - Top-p (nucleus sampling, controle de diversidade)
 
 - 
Visualização clara da resposta gerada
 - 
Exibição lateral do número total de parâmetros do modelo
 
Essa interface é ideal para testes rápidos e demonstrações, permitindo que estudantes e entusiastas compreendam na prática como os ajustes de parâmetros afetam a saída do modelo.
prompt: pergunta: quanto é 2 mais 2? resposta:
output: 4 <eos>
- Attention Is All You Need
 - The Annotated Transformer
 - Baseado em práticas de modelos como GPT-2
 
📘 Transformer Core foi desenvolvido pelo Prof. Dr. Fabio Santos ([email protected]) docente da Escola Superior de Tecnologia (EST), pesquisador do Laboratório de Sistemas Inteligentes (LSI) da Universidade do Estado do Amazonas (UEA), com foco em ensino, prototipagem e experimentação de modelos de linguagem baseados na arquitetura Transformer.
Este projeto é distribuído exclusivamente para fins educacionais e não comerciais.
O uso é permitido para estudo, pesquisa e prototipagem, com a devida atribuição de crédito ao autor.
Qualquer uso comercial ou redistribuição requer permissão prévia por escrito.
Licença adaptada da [Educational Community License (ECL 2.0) https://opensource.org/license/ecl2/).





