O que é uma janela de contexto?

Carver Apartments em Los Angeles

Autores

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

O que é uma janela de contexto?

A janela de contexto (ou "comprimento do contexto") de um grande modelo de linguagem (LLM) é a quantidade de texto, em tokens, que o modelo pode considerar ou se "lembrar" a qualquer momento. Uma janela de contexto maior permite que um modelo de IA processe entradas mais longas e incorpore uma quantidade maior de informações em cada saída.

A janela de contexto de um LLM pode ser vista como o equivalente à sua memória de trabalho. Ela determina quanto tempo de uma conversa pode ser mantido sem esquecer detalhes de interações anteriores. Também determina o tamanho máximo de documentos ou amostras de código que pode processar de uma vez. Quando um prompt, conversa, documento ou base de código excede a janela de contexto de um modelo de inteligência artificial, ele deve ser truncado ou resumido para que o modelo continue. 

De um modo geral, aumentar o tamanho da janela de contexto de um LLM se traduz em maior precisão, menos alucinações, respostas mais coerentes do modelo, conversas mais longas e uma capacidade aprimorada de analisar sequências de dados mais longas. No entanto, o aumento do comprimento do contexto não é isento de contrapartidas: muitas vezes envolve maiores requisitos de poder computacional e, portanto, custos aumentados e um aumento potencial na vulnerabilidade a ataques adversários.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionados por especialistas e notícias sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Janelas de contexto e tokenização

 MorumaL Em termos do mundo real, o comprimento de contexto de um modelo de linguagem é medido não em palavras, mas em tokens. Para entender como as janelas de contexto funcionam na prática, é importante entender como esses tokens funcionam.

A forma como os LLMs processam a linguagem é fundamentalmente diferente da forma como os humanos o fazem. Considerando que a menor unidade de informação que usamos para representar o idioma é um único caractere, como uma letra, número ou sinal de pontuação, a menor unidade de linguagem que os modelos de IA usam é um token. Para treinar um modelo para entender a linguagem, cada token recebe um número de ID; esses números de ID, em vez das palavras ou mesmo os próprios tokens, são usados para treinar o modelo. Essa tokenização da linguagem reduz significativamente o poder computacional necessário para processar e aprender com o texto.

Há uma grande variância na quantidade de texto que um token pode representar: um token pode representar um único caractere, uma parte de uma palavra (como um sufixo ou prefixo), uma palavra inteira ou até mesmo uma curta frase de várias palavras. Considere os diferentes papéis desempenhados pela letra "a" nos exemplos a seguir:

Jeff drove a car.”  (Jeff dirigiu um carro)

Aqui, "uma" é uma palavra inteira. Nessa situação, seria representado por um token distinto.

Jeff is amoral.” (Jeff é um exemplo de moral)

Aqui,  "uma" não é uma palavra, mas sim sua adição a MorumaL muda significativamente o sentido da palavra. AMorumaL portanto, seria representado por dois tokens distintos: um token para uma e outro para MorumaL.

"Jeff loves his cat." (Jeff ama seu gato)

Aqui, uma é simplesmente uma letra na palavra "cumat." Não contém nenhum significado semântico em si e, portanto, não precisa ser representado por um token distinto.


Não há uma “taxa de câmbio” fixa entre palavras e tokens, e diferentes modelos ou tokenizadores (um subconjunto modular de um modelo maior responsável pela tokenização) podem tokenizar o mesmo trecho de texto de maneira diferente. Uma tokenização eficiente pode ajudar a aumentar a quantidade real de texto que cabe dentro dos limites de uma janela de contexto. Mas, para fins gerais, uma estimativa razoável seria aproximadamente 1,5 token por palavra. O Tokenizer Playgroundno Hugging Face é uma maneira fácil de ver e experimentar como diferentes modelos tokenizam entradas de texto.

As variações na estrutura linguística e na representação dos dados de treinamento podem fazer com que alguns idiomas sejam tokenizados com mais eficiência do que outros. Por exemplo, um estudo de outubro de 2024 explorou um exemplo da mesma frase sendo tokenizada em inglês e telugu. Apesar de a tradução em telugu ter significativamente menos caracteres do que o equivalente em inglês, ela resultou em mais de sete vezes o número de tokens no contexto.

Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Por que os modelos têm um comprimento máximo de contexto?

Embora janelas de contexto sejam geralmente associadas a LLMs usados para sumarização, geração de texto e outras tarefas de processamento de linguagem natural (NLP), o comprimento do contexto como uma consideração técnica não é exclusivo dos modelos de linguagem. A noção de uma janela de contexto é relevante para qualquer modelo de aprendizado de máquina que use a arquitetura de transformação, que compreende a maioria dos modelos modernos de IA generativa, incluindo quase todos os LLMs.

Modelos de transformação usam um mecanismo de autoatenção para calcular as relações e dependências entre diferentes partes de uma entrada (como palavras no início e no fim de um parágrafo). Matemáticamente falando, um mecanismo de autoatenção calcula vetores de pesos para cada token em uma sequência de texto, na qual cada peso representa a relevância desse token para os outros na sequência. Um LLM autorregressivo consulta iterativamente esses pesos cada vez que gera a próxima palavra de sua saída. O tamanho da janela de contexto determina o número máximo de tokens aos quais o modelo pode "prestar atenção" a qualquer momento.

Vale a pena observar que o texto da entrada real do usuário geralmente não é a única coisa que ocupa espaço na janela de contexto de um modelo. Em muitos casos, como nos chatbots, os modelos também recebem um "prompt do sistema"(frequentemente oculto do usuário), que condiciona seu comportamento e rege outros aspectos da conversa. Informações complementares extraídas de fontes de dados externas para geração aumentada de recuperação (RAG) também são armazenadas dentro da janela de contexto durante a inferência. Caracteres especiais, quebras de linha e outras medidas de formatação também consomem parte do contexto disponível.

Também vale a pena observar que os modelos de linguagem não são as únicas redes neurais que utilizam transformadores. Por exemplo, alguns modelos de difusão usados para geração de imagens incorporam autoatenção em sua arquitetura. No caso deles, o contexto atendido não está entre tokens que representam palavras (ou partes de palavras) no conteúdo escrito, mas entre pixels em uma imagem. Nesse modelo, o comprimento do contexto seria aplicado ao número de pixels cujos relacionamentos o modelo deve entender. Sua janela de contexto pode ser excedida por uma imagem de alta resolução contendo muitos pixels para processar de uma só vez.
 

Janelas de contexto e recursos de computação

Equipar um modelo com uma grande janela de contexto tem um custo, tanto de forma figurativa quanto literal. Os requisitos de processamento aumentam quadraticamente com o comprimento de uma sequência: por exemplo, se o número de tokens de entrada dobrar, o modelo precisará de quatro vezes mais poder de processamento para lidar com isso.

De forma semelhante, aumentar o comprimento do contexto também pode desacelerar as saídas. Cada vez que o modelo prevê de forma autorregressiva o próximo token em uma sequência, ele calcula as relações entre aquele token e todos os tokens anteriores na sequência. A inferência pode ser relativamente rápida no início de uma sequência ou conversa, mas progressivamente tornar-se mais lenta à medida que o comprimento do contexto aumenta. Isso é problemático para casos de uso que exigem inferência quase instantânea em tempo real.

Avanços recentes no comprimento médio do contexto para modelos de linguagem foram parcialmente possibilitados por novas técnicas para aumentar a velocidade e a eficiência da inferência o bastante para compensar suficientemente essas contrapartidas inerentes. Essas técnicas de otimização permitiram que até mesmo pequenos LLMs modernos de código aberto oferecessem janelas de contexto exponencialmente maiores do que as do modelo GPT-3.5 original que lançou o ChatGPT da OpenAI no final de 2022.

 

Desafios de janelas de contexto longas

Mesmo quando medidas adequadas são tomadas para compensar as contrapartidas nos requisitos de computação e velocidade de processamento, estender o limite de comprimento do contexto de um modelo introduz desafios e complicações adicionais.

Desafios de desempenho

Assim como as pessoas, os LLMs podem ficar sobrecarregados por uma abundância de detalhes extras. Elas também podem ficar preguiçosos e usar atalhos cognitivos. Um artigo de 2023 descobriu que os LLMs não "fazem uso robusto de informações em contextos de entradas longas". Mais especificamente, os autores observaram que os modelos têm melhor desempenho quando as informações relevantes estão no início ou no final da entrada. Eles observaram também que o desempenho se degrada quando o modelo deve considerar cuidadosamente as informações no meio de contextos longos.1

Novos métodos para melhorar a eficácia do próprio mecanismo de autoatenção do transformador, como a incorporação de posição rotativa (RoPE), visam modificar a codificação posicional de token em vetores de atenção. A adoção generalizada de métodos baseados em RoPE gerou desempenho aprimorado e velocidade em tarefas envolvendo tokens a uma grande distância uns dos outros.

Pesquisas em andamento produziram uma série de benchmarks projetados para medir a capacidade de um LLM de encontrar e usar informações relevantes em passagens longas, como needle-in-a-haystack (NIAH), RULER e LongBench.


Segurança e desafios de cibersegurança

Uma janela de contexto mais longa também pode ter o efeito não intencional de apresentar uma superfície de ataque mais longa para prompts adversários. Pesquisas recentes da Anthropic demonstraram que aumentar o comprimento do contexto de um modelo também aumenta sua vulnerabilidade a "jailbreaking" e (posteriormente) ser provocado a produzir respostas prejudiciais.2

 

Tamanhos da janela de contexto de LLMs proeminentes

A janela de contexto média de um grande modelo de linguagem cresceu exponencialmente desde que os transformadores pré-treinados generativos (GPTs) originais foram lançados. Até o momento, cada geração sucessiva de LLMs normalmente envolvia comprimentos de contexto significativamente maiores. Atualmente, a maior janela de contexto oferecida por um modelo comercial proeminente é de mais de um milhão de tokens. Resta saber se as janelas de contexto continuarão a se expandir ou se já estamos nos aproximando do limite superior da necessidade prática.  

Para referência, veja a seguir os comprimentos de contexto atuais oferecidos por alguns modelos e famílias de modelos comumente citados em outubro de 2024.

A série GPT da OpenAI:

  • O modelo GPT-3.5, que impulsionou o lançamento do ChatGPT, tinha um limite máximo de contexto de 4.096 tokens, posteriormente ampliado para 8.192 tokens com o GPT-3.5-Turbo.
  • No lançamento, o GPT-4 tinha a mesma capacidade de 8.192 tokens no comprimento de contexto. Embora a janela de contexto tanto do GPT-4 quanto do GPT-4-Turbo tenha sido ampliada para 128.000 tokens, o número máximo de tokens de saída continua limitado a 4.096 tokens.
  • Tanto o GPT-4o quanto o GPT-4o mini têm uma janela de contexto de 128.000 tokens, com saída limitada a 16.384 tokens.

A nova família de modelos o1 também oferece uma janela de contexto de 128.000 tokens, embora ofereça um tamanho de contexto de saída maior.

Modelos Meta Llama

Os modelos originais do Llama tinham um comprimento máximo de contexto de 2.048 tokens, que foi duplicado para 4.096 tokens para o Llama 2. Durante o lançamento em abril de 2024, os modelos Llama 3 ofereciam uma janela de contexto de aproximadamente 8.000 tokens.

O comprimento do contexto do Llama aumentou significativamente com o lançamento dos modelos Llama 3.1, que ofereciam janelas de contexto de 128.000 tokens. Os modelos Llama 3.2 também têm um comprimento máximo de contexto de 128.000 tokens.

Mistral Large 2

Mistral Large 2, o principal modelo oferecido pela Mistral AI, tem uma janela de contexto de 128.000 tokens.

Modelos do Google Gemini

A série de modelos Gemini do Google oferece o que é atualmente a maior janela de contexto entre os modelos de linguagem comerciais. O Gemini 1.5 Pro, o principal modelo do Google, oferece um comprimento de contexto de até dois milhões de tokens. Outros modelos Gemini 1.5, como o Gemini 1.5 Flash, têm uma janela de contexto de um milhão de tokens.

Modelos Claude da Anthropic

Os mais recentes modelos Claude da Anthropic , como o Claude 3.5 Sonnet, oferecem uma janela de contexto padrão de cerca de 200.000 tokens. No início de setembro de 2024, a Anthropic anunciou que os modelos acessados por meio de seu novo plano "Claude Enterprise" ofereceriam uma janela de contexto ampliada de 500.000 tokens.

Notas de rodapé

1. "Lost in the Middle: How Language Models Use Long Contexts," arXiv, 6 de julho de 2023
2
"Many-shot jailbreaking," Anthropic, 2 de abril de 2024

Soluções relacionadas
IBM watsonx Orchestrate

Projete assistentes e agentes de IA escaláveis com facilidade, automatize tarefas repetitivas e simplifique processos complexos com o IBM® watsonx Orchestrate.

Conheça o watsonx Orchestrate
Ferramentas e APIs de processamento de linguagem natural

Acelere o valor comercial da inteligência artificial com um portfólio poderoso e flexível de bibliotecas, serviços e aplicativos.

Explore as soluções de PNL
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Projete assistentes e agentes de IA escaláveis com facilidade, automatize tarefas repetitivas e simplifique processos complexos com o IBM® watsonx Orchestrate.

Conheça o watsonx Orchestrate Explore as soluções de PLN