Saltar para o conteúdo
V-Smart.

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:

ContextoLivre na placa 1Livre na placa 2
262 1441372 MB416 MB
212 992536 MB60 MB
180 2241026 MB870 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.