Chronotope Transformer e o “Espírito NanoGPT”
No meu último texto, “Inteligência Artificial e Visões de Futuro”, compartilhei a proposta de criar “Espaços de Especulação Crítica”. A teoria e o debate são fundamentais, mas acredito que a especulação ganha corpo e profundidade quando nos atrevemos a construir. É nesse espírito que anunciei a formação de alguns grupos de estudo, incluindo o “Espírito NanoGPT”, cujo objetivo é precisamente este: desmistificar tecnologias complexas não apenas pela análise, mas pela prática de dissecar, adaptar e, crucialmente, remixar os modelos que moldam nosso presente.
Hoje, quero compartilhar um artefato que nasceu nesse espaço (Chronotope Transformer): um experimento prático que busca traduzir reflexões críticas em código. Este é um “Objeto-para-pensar-com”, uma tentativa de materializar a pergunta: como podemos, de fato, ir dos algoritmos convencionais aos algorhythms?
A Provocação: Inserindo Outros Ritmos e Tempos em um Transformer
A arquitetura Transformer, como a do GPT, é uma maravilha, mas não é neutra. Como todo design, ela carrega visões de mundo e impõe uma forma de ser. Seu processamento estritamente sequencial e sua janela de contexto finita o forçam a um ritmo constante, uma leitura linear e, de certa forma, logocêntrica do mundo. Inspirado pela noção de cronotopo de Bakhtin — a fusão entre tempo e espaço na narrativa — e pelo conceito de algorhythms de Michelle Lee Brown, me pergunto:
É possível recombinar a arquitetura de um transformer para que ele se torne sensível a diferentes temporalidades, a diferentes cadências? Poderíamos arquitetar no próprio Transformer uma relação temporal diferente, uma que seja mais texturizada?
Em vez de apenas teorizar, decidi construir e testar.
Acompanhe aqui, no github desta experiência (e de outras que virão), o código do Chronotope Transformer
Minha abordagem foi a da Estética do Sampling, mas aplicada ao código. Peguei uma base funcional de um transformer “decoder-only” — no espírito do NanoGPT de Andrej Karpathy — e o tratei como matéria-prima para um remix antropofágico. Não se trata de otimizar, mas de “devorar” a estrutura existente para digeri-la e dar à luz algo que carregue minhas próprias questões e intenções.
O Processo: Dissecando e Recombinando a Máquina
Em vez de criar algo do zero, foquei em intervir no coração do modelo: o Bloco Transformer. Foi dentro dele que inseri dois novos módulos, cada um projetado para introduzir uma temporalidade distinta.
Módulo 1: DualPathwayModule — O Ritmo Rápido e o Ritmo Lento
Parti da premissa de que todo texto opera em pelo menos dois ritmos simultâneos. Imagine ler um romance: há o ritmo rápido de decodificar a gramática e o significado de cada frase, e há o ritmo lento de absorver a atmosfera, o desenvolvimento dos personagens e o arco narrativo. Para espelhar essa dualidade, criei dois caminhos de processamento paralelos:
- Fast Path (Caminho Rápido): Um fluxo projetado para capturar padrões locais, a relação imediata entre palavras. É o ritmo do “agora” do texto, o entendimento sintático.
- Slow Path (Caminho Lento): Um segundo fluxo, com uma dinâmica de ativação diferente, pensado para modelar padrões mais estáveis e de longo prazo. É o ritmo do “contexto geral”, do cronotopo que ancora a narrativa, responsável por manter a coerência temática e estilística.
O ponto crucial, no entanto, é que não há uma hierarquia. O que temos é um Portão Adaptativo (Adaptive Gate), um pequeno mecanismo de decisão que permite ao próprio modelo aprender, a cada momento, qual a combinação ideal entre esses dois ritmos. Em uma passagem de diálogo rápido, talvez o Fast Path domine; em uma descrição de paisagem, o Slow Path pode ganhar proeminência. É um convite para que a máquina desenvolva uma forma rudimentar de discernimento estilístico, uma sensibilidade própria à cadência do texto.
Módulo 2: TemporalMemory — Reenraizando a Memória
Um transformer padrão sofre de uma amnésia estrutural por design: sua memória está limitada à sua janela de contexto. Para desafiar essa limitação não apenas quantitativamente (aumentando a janela), mas qualitativamente, buscamos um reenraizamento do modelo em uma temporalidade mais longa. Foi assim que nasceu a TemporalMemory.
Este módulo funciona como uma memória externa, um “rascunho” persistente. A cada passo, o modelo pode:
- Ler da memória: Consultar informações contextuais importantes que foram vistas muito antes, para além de sua janela de visão imediata. É como um leitor que pode, instintivamente, lembrar-se de um detalhe crucial mencionado dez capítulos atrás.
- Escrever na memória: Atualizar suavemente esse banco de memória com novos aprendizados, garantindo que o “passado” do texto continue a informar o “presente” de forma dinâmica.
É crucial entender que esta não é uma solução de engenharia para um contexto infinito, mas sim uma intervenção poética. Em vez de força bruta, é uma tentativa de dar ao modelo uma forma de “memória ancestral” textual, um laço com sua própria linhagem de processamento. É um design que valoriza não apenas o que foi dito, mas o eco do que foi dito.
O Resultado: Um Transformer como Objeto para Pensar
O modelo resultante, que apelidamos de Chronotope Transformer, funciona. Ele aprende, gera texto. Mas seu valor não reside apenas em métricas de performance, e sim em sua existência como um artefato crítico. Para este novo teste, uma decisão estratégica foi tomada: treiná-lo com o mesmo dataset shakespeare_char usado no projeto NanoGPT original. Esta escolha permite-nos dialogar diretamente com a referência que nos inspirou, estabelecendo uma base de comparação clara para entender o impacto das nossas modificações.
Claro, este é um passo. Futuramente, a exploração deve ir além, questionando a própria matéria-prima. O próximo passo será usar um dataset condizente com a nossa realidade, com as nossas práticas e línguas/linguagens locais, intervindo também no processamento do texto. Mas por agora, vamos ver o que este “Shakespeare rítmico” nos diz.
Analisando os Resultados: O Que os Números e Gráficos nos Dizem?
Após o treinamento, obtivemos um conjunto de dados que nos permite espiar o comportamento interno do nosso modelo.

É fundamental abordar esses resultados não com a mentalidade de quem busca quebrar recordes, mas com a curiosidade de quem quer saber se a nossa intervenção poética surtiu efeito num cenário comparável.
Aqui estão os principais indicadores:
- Best Validation Loss: 1.1304: A “perda” (Loss) mede o quão surpreso o modelo fica com dados que ele nunca viu. Um valor mais baixo é melhor. O nosso resultado de 1.13 é excelente e diretamente comparável aos resultados de um NanoGPT padrão de tamanho similar. Isto é um achado importante: as nossas modificações “poéticas” não só não prejudicaram o desempenho, como permitiram que o modelo aprendesse a estrutura complexa da linguagem shakespeariana de forma muito eficaz.
- Pathway Statistics (Final Fast Weight: 0.426, Final Slow Weight: 0.574): Este é o coração do nosso experimento! Os números mostram que o modelo aprendeu a usar ativamente tanto o “ritmo rápido” (42,6%) quanto o “ritmo lento” (57,4%). O gráfico “Pathway Dynamics” ilustra essa dança, mostrando uma clara preferência pelo caminho lento, o que faz sentido para a linguagem mais cadenciada e estruturada de Shakespeare. A “Pathway Variance” (0,1291), bem acima do nosso alvo, confirma que o portão adaptativo está vivo, variando a importância de cada caminho conforme o texto.
- Memory Utilization (Mean Utilization: 0.308): O gráfico “Memory Utilization” mostra um comportamento fascinante: o modelo aprende a usar a sua “memória de longo prazo” progressivamente. No início, ele depende pouco dela, mas à medida que o treino avança, a utilização aumenta de forma consistente, chegando a quase 40% no final. Isso sugere que o modelo descobre o valor de consultar o passado para entender o presente.
O que tudo isso significa?
Significa que a minha hipótese se materializou de forma ainda mais forte. Conseguimos criar um modelo que não apenas funciona, mas cujo comportamento interno reflete as ideias que queríamos explorar, e tudo isso mantendo um desempenho competitivo num benchmark conhecido.
Este experimento é um pequeno, mas significativo, lembrete de que podemos participar e imaginar outras possibilidades para a tecnologia. Podemos intervir em todas as etapas: desde a concepção e construção de bancos de dados mais justos, passando pelo processamento dos textos, pelo design da arquitetura (como fizemos aqui), pelo treinamento e até pela análise pós-treinamento. Não se trata de buscar um desempenho superior, mas de construir ferramentas que sejam mais condizentes com a gente, com as nossas perguntas e com os mundos que desejamos habitar.
Que outros conceitos, de outras matrizes culturais — como noções de tempo cíclico ou narrativas não lineares presentes em cosmologias não-ocidentais — poderiam ser traduzidos em design de sistemas?
Este experimento é um pequeno passo na direção de um “Espaço de Especulação Crítica”. É a prática do nosso grupo “Espírito NanoGPT” em ação, um ato de desnaturalizar a tecnologia para devolvê-la ao terreno que lhe é próprio: o da escolha coletiva e da imaginação crítica. O convite para participar dessa construção, para pegar este código e remixá-lo com as suas próprias questões, é claro, continua aberto. Fiquem atentos, semana que vem ele entrará no ar 😉
Se você se interessa por como a IA impacta a sociedade e deseja contribuir para um debate que promova uma tecnologia mais justa e inclusiva, junte-se aos nossos Espaços


Deixe uma resposta