glassllmDocumentação
DocumentaçãoProjeto e referências

Projeto e referências

Glossário e notação

Os termos e símbolos usados na interface, nas equações e nas assinaturas da biblioteca.

glassllm 0.1.05 min de leitura · estimativa

Texto e vocabulário

Termo Significado no glassllm
Token Unidade do tokenizer: caractere, subpalavra ou token especial. Não corresponde necessariamente a uma palavra
ID Inteiro que identifica uma entrada no vocabulário de um tokenizer específico
Vocabulário Tabela entre representações de tokens e IDs; cada modelo distribuído tem 1024 entradas
BPE Byte Pair Encoding: aqui, aprende fusões de pares frequentes sobre símbolos de texto; não é um tokenizer completo de todos os bytes
▁ Representação visual do espaço dentro dos tokens
↵ Representação visual de uma quebra de linha na interface
UNK Token desconhecido para símbolos que o vocabulário não representa; o decode usa a representação definida pelo tokenizer
BOS / EOS Tokens especiais de início/fim presentes no vocabulário; a API não os insere automaticamente nem encerra ao gerar EOS
Prompt Texto inicial fornecido à geração
Contexto IDs utilizados para prever o próximo token, limitado pela janela do modelo

O ID é local ao vocabulário. Não combine IDs de um tokenizer PT com o modelo EN. Tokenização também não determina um significado fixo de cada vetor; os embeddings são parâmetros aprendidos. Veja tokens e BPE.

Dimensões e eixos

Símbolo Significado Valor padrão ou relação
B Número de sequências no batch O trace de GlassLM.forward requer B = 1
n Posições novas processadas neste forward Prefixo inicial ou 1 token no avanço com cache
m Posições disponíveis nas chaves/valores Cache anterior + posições novas
d / d_model Dimensão do vetor de cada token 128
H_Q Cabeças de consulta 4
H_KV Cabeças de chave/valor 2
d_k Dimensão por cabeça d / H_Q = 32
d_ff Dimensão interna da FFN floor(8d/3) = 341
V Tamanho do vocabulário, quando usado como dimensão 1024
L Número de blocos, quando usado como contagem 4
N Número de alvos da perda média B × n

Um array B × n × d contém um vetor de d números para cada posição de cada sequência. Uma matriz n × m de atenção relaciona posições de consulta às posições disponíveis no contexto. O tracer remove o eixo de batch; selecionar uma cabeça também remove seu eixo. Por isso a forma no inspetor pode ter menos eixos que a variável dentro da camada.

O vocabulário V como dimensão e a matriz de valores V da atenção compartilham uma letra convencional, mas são objetos diferentes. Da mesma forma, L pode indicar número de blocos e 𝓛 a perda; o contexto da equação identifica o uso.

Matrizes, operações e parâmetros

Símbolo Leitura
E Matriz de embedding V × d, também usada como transposta na saída
X, H Representações das posições do texto dentro do modelo
Q, K, V Consultas, chaves e valores da atenção
W_Q, W_K, W_V, W_O Matrizes das projeções da atenção
S Compatibilidades QKᵀ/√d_k, antes da máscara
M Máscara causal: 0 nas posições permitidas, −∞ nas futuras
A Pesos de atenção após softmax
γ Escala aprendida da RMSNorm, uma por dimensão
ε Estabilizador numérico da RMSNorm: 1e-6 por padrão
T Temperatura positiva utilizada antes do softmax de saída
ᵀ Transposta: troca os eixos de uma matriz
⊙ Produto elemento a elemento
@ / · Produto matricial no código / notação das equações

Uma projeção como Q = X @ W_Q combina as dimensões de cada vetor; a atenção combina posições usando A @ V. A FFN aplica suas projeções independentemente a cada posição. Atenção causal detalha essa diferença.

Saída, aprendizado e inspeção

Logit é uma pontuação sem normalização para um token candidato. Softmax transforma pontuações em probabilidades que somam 1 ao longo do eixo escolhido. Atenção também usa softmax, mas sua distribuição é sobre posições de contexto, e não sobre tokens do vocabulário. Greedy escolhe argmax; sampling sorteia segundo a distribuição.

Perda mede a incompatibilidade entre previsão e alvo. Gradiente é a derivada da perda em relação a uma variável ou parâmetro. Backpropagation aplica a regra da cadeia em sentido reverso; autograd registra as operações e organiza essa propagação. Parâmetro é um Tensor do modelo que recebe gradiente no treino; ativação é um valor intermediário calculado com esses parâmetros.

Cache K/V guarda chaves rotacionadas e valores já calculados para evitar recomputar todo o prefixo a cada token. Checkpoint é o arquivo de configuração e pesos; não inclui tokenizer nem estado AdamW. Trace é a sequência de snapshots de uma execução. Snapshot é uma cópia numérica feita no ponto marcado. Slow motion é a reprodução visual dessa sequência no site.

Precisão numérica e recortes

float16, float32 e float64 usam diferentes números de bits para representar valores. Um checkpoint float16 carregado como float32 não garante que todos os intermediários permaneçam float32. −∞ é um valor não finito intencional na máscara; NaN indica um resultado indefinido. O inspetor conta esses valores e os exclui das estatísticas finitas.

itemsize informa o número de bytes por elemento de um array; nbytes informa os bytes de seus elementos. Esses valores permitem medir parâmetros, cache e snapshots sem supor que todos tenham o mesmo dtype. Bytes de objetos Python e do runtime não entram em nbytes.

As últimas 8 × 8 entradas são um recorte de leitura, não todo o tensor. Mínimo, média e máximo se referem aos elementos finitos do tensor selecionado inteiro. A numeração visível do seletor de cabeças começa em 1, enquanto o índice Python e a legenda resumida da atenção começam em 0. Consulte o inspetor para interpretar seus rótulos e a API para as convenções de chamada.

Fontes no projeto

docs/equacoes.mdsrc/glassllm/config.pysrc/glassllm/steps.py