Zubnet AIAprenderWiki › Pesos
Treinamento

Pesos

Também conhecido como: Pesos do modelo, pesos da rede neural
Os valores numéricos dentro de uma rede neural que são ajustados durante o treinamento para minimizar o erro. Cada conexão entre neurônios tem um peso que determina quão influente um neurônio é para o próximo. Quando você baixa um arquivo de modelo — um arquivo .safetensors, .gguf ou .pt — você está baixando seus pesos. "Releasing the weights" significa publicar esses arquivos para que qualquer pessoa possa executar o modelo. Os pesos SÃO o modelo; tudo o mais é apenas a arquitetura que te diz como organizá-los.

Por que isso importa

Quando a indústria de IA diz "pesos abertos" vs "código aberto", a distinção importa. Os pesos sozinhos permitem que você execute e sintonize um modelo, mas sem o código de treinamento, dados e receita, você não pode recriá-lo do zero. Entender os pesos ajuda você a compreender a distribuição do modelo, a quantização (redução da precisão dos pesos) e por que um modelo de 7B precisa de ~14GB de espaço em disco em fp16.

Em profundidade

Um peso é um número de ponto flutuante. É isso. Cada conexão entre dois neurônios em uma rede carrega um desses números, e um modelo de linguagem moderno grande possui bilhões deles — organizados em matrizes enormes, uma por camada. Antes do treinamento começar, essas matrizes são preenchidas com valores que parecem essencialmente aleatórios (mais sobre inicialização em um momento). Depois disso, a rede vê dados, calcula quão erradas são suas previsões por meio de uma função de perda, e a backpropagation flui o gradiente desse erro para trás por meio de cada camada, empurrando cada peso um pouco na direção que teria feito a previsão ser menos errada. Repita isso algumas bilhões de vezes em terabytes de texto e você obtém um modelo que pode escrever poesia, explicar mecânica quântica ou depurar seu código. Os pesos são onde toda essa capacidade aprendida vive. Não há um armazenamento de conhecimento separado, nenhuma base de dados de fatos — apenas matrizes de números que, por meio da pressão estatística pura, se organizaram em algo que parece muito como compreensão.

Formatos e Precisão

O formato em que você armazena esses números importa mais do que você talvez espere. Pesos de precisão total usam fp32 — ponto flutuante de 32 bits — que lhe dá aproximadamente 7 dígitos decimais de precisão e uma grande faixa dinâmica. Isso é o que os pesquisadores usaram por anos e ainda é o padrão ouro para estabilidade numérica. Mas fp32 é caro: um modelo de 7 bilhões de parâmetros em fp32 consome 28 GB apenas para os pesos, antes mesmo de pensar nos estados do otimizador ou ativações. A precisão reduzida fp16 reduz isso pela metade, mas sua faixa limitada de expoente o torna propenso a overflow e underflow durante o treinamento. Entre em cena o bf16 — bfloat16 — que mantém a faixa de expoente do fp32, mas trunca a mantissa para 16 bits. O Google desenvolveu especificamente para aprendizado profundo e tornou-se o padrão de facto para treinamento porque raramente explode numericamente enquanto usa metade da memória do fp32. Para inferência, você pode ir mais longe: a quantização int8 empacota pesos em inteiros de 8 bits (um quarto do tamanho do fp32) com perda de qualidade surpreendentemente pequena, e int4 — pioneirado pelos métodos GPTQ e AWQ — reduz isso pela metade novamente. Um modelo de 70B que exigiria 140 GB em fp16 se encaixa em cerca de 35 GB com precisão de 4 bits, o que explica por que a quantização é a razão pela qual você pode executar modelos sérios em GPUs de consumo.

Formatos de Arquivo do Modelo

Quando você baixa um modelo, o formato do arquivo determina como essas matrizes de peso são serializadas no disco. Por anos, o padrão foi o formato .bin do PyTorch, que é apenas a serialização do Python pickle aplicada a tensores. Funciona, mas o pickle tem um problema de segurança bem conhecido: um arquivo .bin malicioso pode executar código arbitrário quando você o carrega. A Hugging Face criou o safetensors especificamente para corrigir isso — é um formato simples, mapeado na memória, que contém apenas dados de tensor e metadados, sem possibilidade de execução de código. O safetensors também carrega mais rápido porque suporta carregamento preguiçoso e leituras sem cópia. Tornou-se o padrão para distribuir modelos na Hugging Face e além. Depois está o GGUF, que é o formato usado pelo llama.cpp e pelo ecossistema mais amplo de inferência local. O GGUF embala pesos, configuração do tokenizador e metadados do modelo em um único arquivo autocontido, frequentemente com quantização integrada. Se você está executando um modelo localmente no seu laptop ou em uma GPU de consumo, você provavelmente está usando um arquivo GGUF. A versão curta: safetensors para distribuição e ajuste fino, GGUF para inferência local e .bin apenas quando você encontrar checkpoints legados.

Por que a Inicialização Importa

Antes mesmo que o treinamento comece, os valores que você coloca nessas matrizes de peso moldam tudo que segue. Inicialize-os todos para zero e a rede não pode aprender — cada neurônio em uma camada calcula a mesma coisa, então os gradientes são idênticos e a simetria nunca quebra. Inicialize-os muito grandes e as ativações explodem; muito pequenos e os gradientes desaparecem para zero antes de atingir as camadas iniciais. A inicialização de Xavier (2010) resolveu isso para redes com sigmoid e tanh escalando os pesos iniciais com base no fan-in e fan-out — o número de conexões entrando e saindo de cada camada. A inicialização de Kaiming (2015, do artigo de He et al.) adaptou a ideia para ativações ReLU, que se comportam de forma diferente porque zeroam metade de seus inputs. Transformers modernos geralmente usam variantes dessas, às vezes com fatores de escala adicionais ajustados para camadas de atenção. Há também a hipótese do bilhete da loteria (Frankle & Carlin, 2019), que mostrou que dentro de uma rede inicializada aleatoriamente, existem sub-redes pequenas — "bilhetes vencedores" — que podem ser treinadas isoladamente para corresponder ao desempenho da rede completa. A implicação é marcante: a maioria desses bilhões de pesos iniciais pode ser desnecessária, e a inicialização esparsa certa teoricamente poderia lhe dar o mesmo modelo em uma fração do tamanho. Na prática, encontrar confiavelmente esses bilhetes vencedores ainda é caro, mas a ideia moldou como os pesquisadores pensam sobre podagem e arquiteturas eficientes.

Pesos, Parâmetros e "O Modelo"

Pessoas usam "pesos" e "parâmetros" quase que interchangeavelmente, e para a maioria dos propósitos isso está bem — mas tecnicamente, parâmetros incluem vieses (uma constante pequena adicionada após a soma ponderada em cada neurônio) e quaisquer outros valores aprendidos como escalas de normalização de camada. Em um Transformer típico, os vieses contam para uma fração mínima dos parâmetros totais, então quando alguém diz que um modelo tem 70 bilhões de parâmetros, efetivamente significa 70 bilhões de pesos. O ponto mais profundo é que quando você baixa o arquivo de peso de um modelo, você está baixando tudo que o modelo aprendeu. A arquitetura — quantas camadas, quão larga, quais funções de ativação — é apenas um plano. Os pesos são o próprio edifício. Dois modelos com arquiteturas idênticas, mas pesos diferentes, se comportarão completamente diferente se forem treinados em dados diferentes ou por durações diferentes. É por isso que "liberar os pesos" é um ato tão significativo: você não está compartilhando um design

Conceitos relacionados

← Todos os termos
← Wan-AI Xiaomi →
ESC