Recursos/Treinamento de modelo/Tokens e contexto

Conceito

Janela de contexto

O número máximo de tokens que um modelo pode levar em consideração de uma só vez, como esse espaço é compartilhado e como ele difere do limite por exemplo que se aplica durante o treinamento.

Capítulo 23 min de leitura4 referências

O que é

A janela de contexto é a memória de trabalho do modelo para uma única solicitação: o número máximo de tokens que ele pode levar em consideração de uma só vez. Ela é compartilhada por tudo — o prompt de sistema, cada interação anterior da conversa, quaisquer documentos inseridos no prompt, a nova mensagem e a resposta que o modelo está escrevendo. Qualquer coisa que não caiba simplesmente não é vista.

As janelas cresceram rapidamente, de alguns milhares de tokens nos primeiros modelos para centenas de milhares, e cerca de um milhão em alguns modelos atuais. O tamanho é fixado pela forma como o modelo foi construído e treinado; o fine-tuning não o altera.

UMA SOLICITAÇÃOjanela de contextosistematurnos anterioresnova mensagemrespostalivreREGISTRO DE TREINAMENTO · ANTESsysturno 1turno 2turno 3alvoAPÓS O CORTEsysturno 2turno 3alvolimite por exemplomais antigo descartado
Acima: uma solicitação. O prompt do sistema, o histórico, a nova mensagem e a resposta compartilham uma única janela. Abaixo: um registro de treinamento acima do limite por exemplo perde sua interação mais antiga, mantendo o prompt do sistema, o contexto mais recente e o alvo.

Como funciona

Um transformer lê a sua entrada em paralelo e, a cada camada, permite que cada token olhe para trás para todos os tokens anteriores através de um mecanismo chamado atenção. É isso que permite que uma resposta dependa de um detalhe muito anterior na conversa. É também por isso que contextos longos são caros: na atenção padrão, a computação cresce com o quadrado do comprimento, e a memória usada para manter a conversa visível durante a geração cresce a cada token.

A resposta também conta. Se um modelo tem uma janela de 128.000 tokens e a entrada tem 126.000 tokens de comprimento, restam apenas 2.000 tokens para a resposta. A maioria das APIs também limita o comprimento da saída separadamente.

Maior não é sinônimo de melhor

Um modelo pode aceitar uma entrada longa sem fazer um bom uso de toda ela. Estudos sobre contextos longos revelam que os modelos usam as informações no início e no fim da entrada com mais confiabilidade do que as informações enterradas no meio, e que muitos modelos que anunciam janelas muito longas perdem a precisão muito antes do limite declarado. Tanto para o treinamento quanto para o uso, um contexto curto e relevante geralmente tem um desempenho melhor do que um contexto longo e com informações desnecessárias.

O limite de treinamento por exemplo

O treinamento adiciona um segundo limite: o limite de tokens por exemplo, o registro único mais longo no qual um provedor fará o treinamento. Ele é frequentemente menor do que a janela de contexto do modelo, porque treinar em um registro longo exige muito mais memória do que responder a um. Um registro acima do limite precisa ser encurtado ou deixado de fora.

Ajustando uma conversa de suporte longa
  1. Um registro possui um prompt de sistema de 300 tokens, 14 interações anteriores de cerca de 600 tokens cada, e uma pergunta final mais a resposta alvo de 400 tokens: 300 + 8.400 + 400 = 9.100 tokens.
  2. O limite por exemplo do provedor para este modelo é de 8.192 tokens, portanto, o registro excede o limite em 908 tokens.
  3. O corte remove as interações mais antigas primeiro. Descartar duas delas (cerca de 1.200 tokens) reduz o registro para aproximadamente 7.900 tokens.
  4. O prompt de sistema, as doze interações mais recentes e a resposta alvo são mantidos, para que o modelo ainda aprenda a resposta na situação que a produziu.

Erros comuns

  • Presumir que um modelo com uma grande janela de contexto será treinado em registros igualmente longos.
  • Esquecer que a resposta precisa caber na janela junto com a entrada.
  • Preencher o prompt com todos os documentos disponíveis sob a teoria de que mais contexto é sempre melhor.
  • Descartar conversas longas por completo quando cortar as interações mais antigas teria mantido um alvo útil.

Referências e leitura complementar

Fontes externas abrem em uma nova aba.

  1. 01Lost in the Middle: How Language Models Use Long ContextsLiu et al., 2023 · arXiv · arxiv.orgMostra que as informações no meio de uma entrada longa são usadas com menos confiabilidade.
  2. 02RULER: What's the Real Context Size of Your Long-Context Language Models?Hsieh et al., 2024 · arXiv · arxiv.orgMede o quão abaixo de suas janelas anunciadas os modelos permanecem confiáveis.
  3. 03Attention Is All You NeedVaswani et al., 2017 · arXiv · arxiv.orgO artigo sobre transformers, de onde vem a atenção sobre todo o contexto.
  4. 04Context windowsClaude Platform Docs · platform.claude.comA explicação de um provedor sobre como a entrada e a saída compartilham a janela.

Transforme semanas de trabalho especializado em minutos

Veja como o Scalata se adapta à sua equipe, aos seus dados e aos seus Controles.

Fale com vendas