Quanto contexto cabe realmente em 32 GB
O contexto é a memória da conversa — tudo o que o modelo tem diante dos olhos quando formula a resposta. É, a seguir aos pesos do modelo, o segundo maior consumidor de memória da placa, e normalmente é ele que decide se a configuração sequer arranca. Fomos ver onde fica o limite com 32 GB. A resposta surpreendeu: na maioria dos casos, não está do lado do hardware.
Em nove perfis em dez, o limite não é a memória — é o próprio modelo
A nossa máquina disponibiliza dez perfis de trabalho prontos. Nove deles assentam em 262 144 tokens de contexto — e isso não é o limite das placas, mas o máximo para o qual estes modelos foram treinados. Acima desse valor não se consegue ir, por mais memória que se acrescente.
É a conclusão mais importante de toda a série de medições: com 32 GB, os modelos atuais da classe dos 26–35 mil milhões de parâmetros cabem com o contexto completo para que foram desenhados. Mais memória não compraria aqui nem um token a mais.
O único perfil limitado pela memória é o modelo de 31 mil milhões com suporte de imagem e vídeo — o módulo de visão e o ficheiro separado do modelo auxiliar comem espaço, pelo que o contexto acaba nos 167 936 tokens. É a configuração mais apertada de todo o conjunto: depois da carga completa, sobram nas placas 464 e 144 MB livres. O degrau seguinte já não carrega.
Quanto custa o contexto
A conta é linear e fácil de fixar: cerca de 200–320 MB em cada placa por cada 8192 tokens de contexto. A variação vem da construção do modelo — com suporte de imagem soma-se ainda a memória do modelo auxiliar. E porque é que a memória conta separadamente em cada uma das duas placas, explicamos no artigo sobre a divisão do modelo entre as placas.
A amplitude entre modelos pode ser grande. Um modelo com atenção de construção híbrida consome cerca de 35 kB por token; um modelo clássico, cerca de 51 kB. É por isso que este último acaba nos 208 mil tokens em vez de 262 mil, apesar de, por si, estar pronto a continuar. A construção do modelo decide, portanto, a capacidade de contexto com tanta força como a quantidade de memória.
Como medimos — e porque é que o método óbvio mente
Três coisas revelaram-se decisivas, e cada uma delas é uma armadilha em que é fácil cair.
A memória livre lê-se depois do trabalho, não depois do carregamento. A biblioteca de cálculo reserva o seu buffer de trabalho preguiçosamente — só na primeira multiplicação de matrizes a sério. O modelo consegue, por isso, «carregar» com uma folga aparente e cair à primeira pergunta.
A memória livre lê-se diretamente, não se calcula. O controlador da placa guarda para si cerca de 423 MB que não podem ser alocados. A popular subtração «total menos ocupado» infla o resultado exatamente nesse valor — mostra 528 MB livres onde na realidade restam 106.
A folga revelou-se estática. Atirámos às configurações pedidos longos — de mil a 227 mil tokens, com recarregamentos do modelo e processamento repetido do contexto completo. Amostragem de meio em meio segundo, 14 771 medições. Oscilação da memória livre: no máximo 2 MB, e em duas configurações exatamente zero. A memória reserva-se à partida e não mexe.
Por isso o nosso limiar de aprovação são uns modestos 100 MB livres em cada placa. Se a ocupação saltasse durante o trabalho, precisaríamos de uma folga contada em gigabytes. Ela não salta.
Surpresa: um contexto mais pequeno pode deixar menos memória
O resultado mais contraintuitivo de toda a série. Num dos modelos medimos a memória livre com três valores de contexto:
| Contexto | Livre na placa 1 | Livre na placa 2 |
|---|---|---|
| 262 144 | 1372 MB | 416 MB |
| 212 992 | 536 MB | 60 MB |
| 180 224 | 1026 MB | 870 MB |
Descer no contexto piorou a situação. Explicação: com certos valores, os buffers de cálculo não cabem e o servidor recua para um modo de trabalho mais simples, que poupa mais do que custa a maior memória de conversa. Cada um destes resultados reproduz-se ao megabyte em carregamentos sucessivos.
Conclusão prática: o contexto escolhe-se por medição numa grelha de valores, não por extrapolação. A regra «menos é mais seguro» aqui não vale.
Duas coisas que devolveram memória de graça
Um slot em vez de quatro. Por omissão, o servidor prepara-se para quatro utilizadores em simultâneo e reserva buffers para isso — mesmo quando o utilizador é um só. Limitar a um slot devolveu 240–770 MB por placa, sem mudar o contexto e sem mudar a velocidade. O preço é a fila: o segundo pedido espera pelo primeiro. Em casa, é uma troca honesta.
Um registo mais económico da memória de conversa. O contexto pode guardar-se em precisão completa ou comprimida. A compressão custa cerca de 12% da exatidão desse buffer e dá visivelmente mais espaço — usamo-la em todo o lado onde lutamos por contexto. A compressão mais forte, rejeitámo-la: estraga a qualidade das respostas de forma percetível.
Quanto são 262 mil tokens
É difícil de imaginar, por isso dois pontos de referência. Um contexto destes comporta várias centenas de páginas de texto de uma vez — a documentação inteira de um projeto médio ou um conjunto de contratos para comparar. No teste de programação, em que o modelo escrevia sozinho projetos multi-módulo, o pico de ocupação do contexto foi, em média, de 107–175 mil tokens. Ou seja: mesmo com trabalho intensivo, sobrava folga.
Para comparação — o único modelo polaco que testámos acaba nos 32 768 tokens. Não por causa das placas, mas porque foi desenhado assim.
Medições em 2 × RTX 5070 Ti 16 GB. Memória livre lida depois da carga completa, limiar de aprovação de 100 MB por placa.