English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

visitante
1 / ?

Quão Surpreso o Modelo Deve Ficar?

Pipeline de Perda: Logits para Entropia Cruzada


De Logits para Probabilidades

Após 12 blocos transformer, ANDREA-120M produz um vetor de vocab_size números por posição de token: os logits. Para ANDREA-120M, vocab_size = 8449, então cada posição gera 8449 logits. Logits são pontuações não normalizadas; alguns positivos, alguns negativos, sem restrição para somar 1.


O Softmax converte logits em uma distribuição de probabilidade:


p_i = exp(logit_i) / sum_j exp(logit_j)

Após o softmax, todos os 8449 números estão entre 0 e 1, somando 1. O modelo atribui probabilidade a cada token possível seguinte.


Perda de Entropia Cruzada

O treinamento requer uma função de perda: um número que mede o quão errada foi a predição do modelo para uma dada resposta correta. A entropia cruzada funciona para modelagem de linguagem:


loss_t = -log(p_correct_token_t)

Pegue a probabilidade prevista pelo modelo para o próximo token real (o que está nos dados de treinamento). Pegue o log negativo dessa probabilidade. Essa é a perda para uma posição.


Por que Log Negativo

Três propriedades fazem de -log(p) uma função de perda natural:


- -log(1) = 0: Quando o modelo prevê o token correto com 100% de confiança, a perda é zero.

- -log(0) = ∞: Quando o modelo atribui probabilidade zero ao token correto, a perda é infinita. (Na prática, o softmax nunca produz exatamente 0; a perda permanece finita, mas grande.)

- Monotônica: À medida que a probabilidade prevista para o token correto aumenta, a perda diminui suavemente.


Maior confiança na resposta correta = menor perda. O objetivo de treinamento é direto: maximizar a probabilidade prevista para o próximo token real.


Perda por Sequência

ANDREA treina em sequências de comprimento 1024 (a janela de contexto). Cada sequência produz 1024 previsões de próximo token. A perda da sequência é a média em todas as posições:


```
sequence_loss = mean(-log(p_correct_t)) for t in 0..1023
```

Então as perdas da sequência são calculadas como média através do lote (ANDREA-120M usa batch_size = 8). Um número escalar por passo de treinamento. Esse número é o que a curva de perda plota.

Calculando a Perda Para Uma Posição

Em uma posição de treinamento, o ANDREA-120M produz probabilidades softmax de 0.4 para o token seguinte real (outros tokens receberam os 0.6 restantes). Calcule a perda de entropia cruzada para esta única posição. Mostre a fórmula & a aritmética. Então, declare em uma frase se isso representa uma previsão confiante ou incerta.

Perplexidade = exp(perda)

Uma Escala Mais Amigável

Valores de perda como 2.0 ou 3.43 não transmitem imediatamente o que o modelo pode fazer. A perplexidade traduz a perda para uma escala mais intuitiva:


perplexidade = exp(perda)

A Perplexidade responde a uma pergunta clara: entre quantos tokens igualmente prováveis o modelo escolhe efetivamente? Uma perplexidade de 7 significa que o modelo se comporta como se estivesse escolhendo entre 7 tokens plausíveis seguintes em cada posição. Uma perplexidade de 1 significa previsão perfeita.


Pares Comuns de Loss-Perplexidade


LossPerplexidadeComo parece
0.01.0Previsão perfeita
1.02.7Escolhendo entre ~3 tokens plausíveis
2.07.4Território final SMMA do ANDREA-12M
3.020.1Texto razoável, mas incerto
3.4330.9Mínimo do ANDREA-120M v1 (antes do polimento)
5.0148Treinamento inicial, aprendendo distribuição de vocabulário
9.048449Linha de base de chance aleatória para o vocabulário do ANDREA-120M

A Perplexidade coloca os valores de perda em contexto: uma perda de 2.0 significa que o modelo escolhe efetivamente entre ~7 tokens, não entre 8449.


A Linha de Base de Chance Aleatória

Um modelo que não sabe nada e adivinha uniformemente atribui probabilidade 1/V a cada token, onde V = vocab_size:


p_uniform = 1 / V
loss      = -log(1/V) = log(V)

Para ANDREA-120M com V = 8449:


loss_uniform = ln(8449) ≈ 9,04

Para ANDREA-12M com V = 2305:


loss_uniform = ln(2305) ≈ 7.74

Qualquer perda acima dessa linha de base significa que o modelo tem desempenho pior que o aleatório. Qualquer perda abaixo dela significa que o modelo aprendeu algo: ele concentra a massa de probabilidade em um subconjunto menor de tokens do que o uniforme faria.

Lendo um Valor de Perda

A ANDREA-120M v1 atingiu seu mínimo de perda EMA de 3.43 no passo 110K (antes de colapsar). Calcule: (a) a perplexidade na perda 3.43; (b) quantas vezes melhor que a linha de base de chance aleatória (ln(8449) ≈ 9.04) esse valor de perda representa, expresso como uma razão de perplexidade. Mostre sua aritmética.

Suavização de Ruído em Nível de Passo

Perda Bruta É Barulhenta

A perda por passo varia. O bandit do ANDREA escolhe uma fonte diferente a cada 7-42 passos; algumas fontes (definições de dicionário) produzem perdas fáceis; outras (parágrafos de gutenberg) produzem perdas mais difíceis. Plotar a perda bruta do passo contra o número do passo produz um espalhamento caótico.


Média Móvel Modificada Suavizada (SMMA) atenua o ruído & revela a tendência. O proxy de treinamento da ANDREA calcula a SMMA como:


SMMA[0]  = loss[0]
SMMA[t]  = (SMMA[t-1] * (N-1) + loss[t]) / N

Com N = 100 (janela de suavização padrão da ANDREA), cada novo valor de SMMA mistura 99% do SMMA anterior com 1% da nova perda do passo. Picos súbitos são absorvidos; mudanças sustentadas aparecem gradualmente.


Por Que Não Apenas Média Simples?

Uma média móvel simples sobre os últimos 100 passos requer armazenar 100 valores de perda. SMMA armazena um valor (a média em execução) & uma constante (o tamanho da janela). Barato em memória, computacionalmente trivial, & suave o suficiente para ler uma curva.


Diferentes pesos de suavização respondem a diferentes perguntas:


- N = 10: rastreia mudanças de curto prazo; útil durante transições de fase

- N = 100: padrão da ANDREA; rastreia progresso de médio prazo

- N = 1000: apenas tendência de longo prazo; útil no final do treinamento


O que a ANDREA Acompanha

A cada 100 passos, o proxy de treinamento escreve loss.json com o SMMA atual, perda bruta, número do passo e análises por fonte. O painel em training.ai.unturf.com/dashboard consulta este arquivo a cada 10 segundos. Visualizadores externos veem o progresso ao vivo; o painel é somente leitura.

Curva Real da ANDREA-12M

A Receita que Alcançou SMMA 2.0


PassosPerda MédiaNotas
0--2.5K4.50Início aleatório, aprendizado inicial
2.5K--5K3.88Declínio rápido na fase de estrutura
5K--10K3.30Aproximando-se do limite de coerência
10K--20K2.80Bandit encontrando mistura ótima
20K--25K2.40Platô --- escassez de dados
25K--30K2.50Dados Hermes introduzidos + reinício de LR
30K--35K2.35Hermes integrado, novos mínimos
35K--40K2.10Foco em 4 braços, descida íngreme
40K--43.6K2.00Território de conhecimento, SMMA abaixo de 2.0

Três fases se destacam:


1. Descida íngreme inicial (0-10K). A perda cai de 4.50 para 3.30 enquanto o modelo aprende a distribuição de vocabulário & estrutura básica de turnos. A linha de base de chance aleatória ln(2305) ≈ 7.74 fica bem acima dessa curva; o modelo concentra a massa de probabilidade rapidamente uma vez que os embeddings se estabilizam.


2. Platô (20K-25K). A perda estagna em 2.40. O bandido havia esgotado o espaço disponível com sua mistura atual de fontes. Dados Hermes sendo adicionados no passo 25K, mais um reinício quente de LR, quebraram o platô.


3. Descida final (35K-43.6K). Currículo reduzido de 16 fontes para 4 (hermes3-general + dictionary + gutenberg + chat). Declínio de perda mais acentuado que o bandit de braço completo. SMMA final: 2.0.


ANDREA-120M v1: Uma Curva de Advertência

Mesmo cálculo de vocabulário: ln(8449) ≈ 9.04. ANDREA-120M v1 alcançou SMMA 3.43 no passo 110K (seu mínimo), depois divergiu:


PassosPerda EMATendência
26K--40K4.29Convergindo
70K--85K3.60Melhor região
85K--110K3.43Mínimo
110K--125K3.54Divergindo
140K--155K4.05Divergindo
155K--165K4.54Colapsado

Valores de perda numericamente razoáveis ao longo de todo o treinamento (3.43 fica bem abaixo da linha de base aleatória de 9.04). Mas as amostras sofreram colapso por repetição: Budy Budy Budy Budy. A perda contou uma história enganosa; auditorias de amostras não.


O early stopping com coherence-gated da v2 (atividade 78) adicionou um sinal paralelo: diversidade de bigramas, diversidade de trigramas, presença de palavras em inglês, diversidade de caracteres. Quando todas as quatro pontuações ficam abaixo de 30 por 5 amostras consecutivas, o treinamento para automaticamente. Esse sinal teria capturado a v1 no passo 132K, economizando 3,8 dias de computação.

O Que Cada Fase Revela

Analisando a curva de perda do ANDREA-12M (4,50 → 3,30 → platô 2,40 → 2,00 final), indique qual fase mostra o modelo aprendendo a distribuição de vocabulário, qual fase indica que o *bandit* esgotou o *headroom* de fontes mistas, e qual fase reflete o foco em currículo estreitado. Uma frase por fase, referenciando intervalos de passos específicos.

A Lição 120M v1

Dois Sinais Independentes

ANDREA-120M v1 alcançou SMMA 3.43 no passo 110K. Numericamente: 273× melhor que o acaso aleatório (perplexidade 31 vs tamanho do vocabulário 8449). Parece ótimo na curva.


Amostra no passo 110K::


''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '

Perda e coerência são sinais independentes. Baixa perda significa que o modelo concentra a massa de probabilidade de forma eficaz. Coerência significa que o modelo produz texto que humanos podem ler. A primeira não implica a segunda.


Por Que a Lacuna Existe

Um modelo pode reduzir a perda por:


1. Aprender padrões reais de linguagem (bom): concordância sujeito-verbo, frases comuns, associações factuais.

2. Memorizar artefatos estruturais (ruim): padrões de repetição de alta frequência, peculiaridades específicas do dataset, atratores degenerados.


Ambos reduzem a perda. O primeiro produz amostras que humanos gostam. O segundo produz Budy Budy Budy Budy. O objetivo de treinamento sozinho não pode distingui-los.


ANDREA-120M v3 Polish: Onde Perda & Coerência se Encontraram

Após o polimento v3 (passo 112K em diante), ANDREA-120M produz:


Passo 112.584, perda 0.30, ppl 1::


> [extinction prompt]
< a aranha-preta montano está viva, o periquito-da-carolina está extinto.

Ambos os fatos corretos. Periquito-da-carolina declarado extinto em 1939; macaco-aranha-preto extant. Baixa perda (0.30) E recall factual coerente.


Etapa 112.500, perda 1.94, ppl 7::


> Como encontro pacotes desatualizados em um projeto Python?
< Use `pip list --outdated` para ver a lista de pacotes pip...

Perda maior (1.94 → ppl 7), mas a ferramenta correta emerge dos dados de treinamento. Fluência na formulação ainda em desenvolvimento na marca de 56% do treinamento.


A Disciplina dos Dois Sinais

Pipelines de treinamento modernos monitoram AMBOS:


- Curva de perda. Diz se o modelo está aprendendo algo quantitativo.

- Auditoria de amostras. Diz se o que o modelo aprendeu é útil.


v2 adicionou parada antecipada com portão de coerência (atividade 78). O polimento v3 foi uma perturbação de currículo acionada por auditorias de amostras, não por valores de perda. A perda sozinha é necessária, mas nunca suficiente.

Diagnóstico de uma Execução Hipotética

Uma nova execução de treinamento mostra perda SMMA diminuindo de 8.0 → 3.5 → 2.8 ao longo de 100K passos. Auditorias de amostras no passo 100K mostram: diversidade bigram 12 (baixa), diversidade trigram 8 (baixa), presença de palavras em inglês 18 (alta), diversidade de caracteres 7 (alta). O que o modelo provavelmente está fazendo? O treinamento deve continuar, parar ou mudar de direção? Justifique sua resposta em 3-4 frases.