Muitos modelos do Gemini vêm com janelas de contexto grandes de um milhão ou mais tokens. Historicamente, os modelos de linguagem grandes (LLMs) estavam significativamente limitados pela quantidade de texto (ou tokens) que podia ser transmitida ao modelo de uma só vez. A janela de contexto longo do Gemini libera muitos novos casos de uso e paradigmas de desenvolvedor.
O código que você já usa para casos como geração de texto ou entradas multimodais vai funcionar sem mudanças com contexto longo.
Este documento apresenta uma visão geral do que é possível fazer usando modelos com janelas de contexto de 1 milhão ou mais tokens. A página oferece uma breve visão geral de uma janela de contexto e explica como os desenvolvedores devem pensar sobre o contexto longo, vários casos de uso reais para contexto longo e maneiras de otimizar o uso do contexto longo.
Para saber os tamanhos da janela de contexto de modelos específicos, consulte a página Modelos.
O que é uma janela de contexto?
A maneira básica de usar os modelos do Gemini é transmitindo informações (contexto) ao modelo, que vai gerar uma resposta. Uma analogia com a janela de contexto é a memória de curto prazo. Há uma quantidade limitada de informações que podem ser armazenadas na memória de curto prazo, e o mesmo vale para modelos generativos.
Leia mais sobre como os modelos funcionam no nosso guia de modelos generativos.
Introdução ao contexto longo
As versões anteriores de modelos generativos só conseguiam processar 8.000 tokens por vez. Os modelos mais recentes avançaram ainda mais, aceitando 32.000 ou até 128.000 tokens. O Gemini é o primeiro modelo capaz de aceitar 1 milhão de tokens.
Na prática, 1 milhão de tokens seria:
- 50.000 linhas de código (com o padrão de 80 caracteres por linha)
- Todas as mensagens de texto que você enviou nos últimos cinco anos
- 8 romances ingleses de tamanho médio
- Transcrição de mais de 200 episódios de podcast de duração média
As janelas de contexto mais limitadas, comuns em muitos outros modelos, geralmente exigem estratégias como a exclusão arbitrária de mensagens antigas, o resumo do conteúdo, o uso da RAG com bancos de dados vetoriais ou a filtragem de comandos para salvar tokens.
Embora essas técnicas continuem sendo valiosas em cenários específicos, a janela de contexto extensa do Gemini convida a uma abordagem mais direta: fornecer todas as informações relevantes de uma vez. Como os modelos Gemini foram criados especificamente com recursos de contexto enormes, eles demonstram uma aprendizagem em contexto poderosa. Por exemplo, usando apenas materiais instrucionais no contexto (uma gramática de referência de 500 páginas, um dicionário e cerca de 400 frases paralelas), o Gemini aprendeu a traduzir do inglês para o Kalamang, uma língua papuana com menos de 200 falantes, com qualidade semelhante a um aprendiz humano usando os mesmos materiais. Isso ilustra a mudança de paradigma possibilitada pelo contexto longo do Gemini, abrindo novas possibilidades com o aprendizado robusto no contexto.
Casos de uso de contexto longo
Embora o caso de uso padrão para a maioria dos modelos generativos ainda seja a entrada de texto, a família de modelos Gemini possibilita um novo paradigma de casos de uso multimodais. Eles podem entender textos, vídeos, áudios e imagens de maneira nativa. São acompanhados pela API Gemini, que aceita tipos de arquivos multimodais por conveniência.
Texto longo
O texto provou ser a camada de inteligência que sustenta grande parte do impulso em torno dos LLMs. Como mencionado anteriormente, grande parte da limitação prática dos LLMs se deve à falta de uma janela de contexto grande o suficiente para realizar determinadas tarefas. Isso levou à rápida adoção da geração aumentada de recuperação (RAG, na sigla em inglês) e outras técnicas que fornecem dinamicamente ao modelo informações contextuais. Agora, com janelas de contexto cada vez maiores, novas técnicas são disponibilizadas, o que possibilita novos casos de uso.
Alguns casos de uso emergentes e padrão para contexto longo baseado em texto incluem o seguinte:
- Resumir grandes corpus de texto
- As opções de resumo anteriores com modelos de contexto menores exigiam uma janela deslizante ou outra técnica para manter o estado das seções anteriores à medida que novos tokens eram transmitidos para o modelo.
- Perguntas e respostas
- Historicamente, isso só era possível com o RAG, devido à quantidade limitada de contexto e à baixa recuperação de fatos dos modelos.
- Fluxos de trabalho agente
- O texto é a base de como os agentes mantêm o estado do que fizeram e o que eles precisam fazer. Não ter informações suficientes sobre o mundo e o objetivo do agente é uma limitação na confiabilidade dos agentes
A aprendizagem em contexto com muitas tentativas é um dos recursos mais exclusivos liberados pelos modelos de contexto longo. As pesquisas mostram que usar o exemplo de paradigma de "tentativa única" comum ou "muitas tentativas", em que o modelo é apresentado com um ou alguns exemplos de uma tarefa e escalonando-o até centenas, milhares ou mesmo centenas de milhares de exemplos, pode levar a novos recursos do modelo. Essa abordagem de várias fotos também apresentou um desempenho semelhante ao de modelos ajustados para uma tarefa específica. Para casos de uso em que a performance de um modelo do Gemini ainda não é suficiente para um lançamento em produção, tente a abordagem de várias tentativas. Como você pode explorar mais tarde na seção de otimização de contexto longo, o armazenamento em cache de contexto torna esse tipo de alta carga de trabalho de token de entrada muito mais viável e com latência ainda menor em alguns casos.
Vídeo mais longo
A utilidade do conteúdo de vídeo é, há muito tempo, limitada pela falta de acessibilidade da própria mídia. Era difícil ler o conteúdo, as transcrições muitas vezes não conseguiam capturar as nuances de um vídeo e a maioria das ferramentas não processava imagem, texto e áudio juntos. Com o Gemini, os recursos de texto de contexto longo se traduzem na capacidade de raciocinar e responder a perguntas sobre entradas multimodais com desempenho sustentável.
Alguns casos de uso emergentes e padrão para contexto de vídeo longo incluem:
- Perguntas e respostas sobre vídeos
- Memória de vídeo, como mostrado com o Project Astra do Google
- Legendas em vídeos
- Sistemas de recomendação de vídeo, enriquecendo os metadados com nova compreensão multimodal
- Personalização de vídeo, analisando um conjunto de dados e metadados de vídeos associados e, em seguida, removendo partes dos vídeos que não são relevantes para o leitor
- Moderação de conteúdo em vídeo
- Processamento de vídeo em tempo real
Ao trabalhar com vídeos, é importante considerar como os vídeos são processados em tokens, o que afeta os limites de faturamento e uso. Saiba mais sobre comandos com arquivos de vídeo no Guia de comandos.
Áudio de longa duração
Os modelos Gemini foram os primeiros modelos de linguagem grandes multimodais nativos que pudessem entender áudio. Historicamente, o fluxo de trabalho típico de um desenvolvedor envolve unir vários modelos específicos de domínio, como um modelo de conversão de voz em texto e de conversão de texto em texto para processar o áudio. Isso levou a uma latência adicional necessária ao realizar várias solicitações de ida e volta e reduziu o desempenho, geralmente atribuído a arquiteturas desconexas da configuração de vários modelos.
Alguns casos de uso emergentes e padrão para contexto de áudio incluem o seguinte:
- Transcrição e tradução em tempo real
- Perguntas e respostas sobre podcasts / vídeos
- Transcrição e resumo de reuniões
- Assistentes por voz
Saiba mais sobre comandos com arquivos de áudio em Guia de comandos.
Otimizações de contexto longo
A otimização principal ao trabalhar com contexto longo e os modelos do Gemini é usar o armazenamento em cache de contexto. Além da impossibilidade anterior de processar muitos tokens em uma única solicitação, a outra restrição principal era o custo. Se você tiver um app de "conversa com seus dados" em que um usuário carrega 10 PDFs, um vídeo e alguns documentos de trabalho, historicamente, você teria que trabalhar com uma ferramenta / framework de geração aumentada de recuperação (RAG) mais complexa para processar essas solicitações e pagar um valor significativo por tokens que foram movidos para a janela de contexto. Agora, é possível armazenar em cache os arquivos que o usuário envia e pagar para armazená-los por hora. O custo de entrada / saída por solicitação com o Gemini Flash, por exemplo, é cerca de quatro vezes menor do que o custo padrão de entrada / saída. Portanto, se o usuário conversar bastante com os dados, isso vai gerar uma grande economia de custos para você como desenvolvedor.
Limitações de contexto longo
Em várias seções deste guia, falamos sobre como os modelos do Gemini alcançam alta performance em várias avaliações de recuperação de agulha no palheiro. Esses testes consideram a configuração mais básica, em que há apenas uma agulha que você está procurando. Nos casos em que você pode ter várias "agulhas" ou partes específicas de informações que está procurando, o modelo não tem o mesmo desempenho. A performance pode variar bastante dependendo do contexto. É importante considerar isso, pois há uma compensação inerente entre obter a recuperação de informações e custos corretos. Você pode receber cerca de 99% em uma única consulta, mas precisa pagar o custo do token de entrada sempre que enviar essa consulta. Portanto, para que 100 pedaços de informações sejam recuperadas, se você precisar de 99% de performance, provavelmente terá que enviar 100 solicitações. Este é um bom exemplo de quando o armazenamento em cache do contexto pode reduzir significativamente o custo associado ao uso de modelos do Gemini mantendo o alto desempenho.
Perguntas frequentes
Qual é o melhor lugar para colocar minha consulta na janela de contexto?
Na maioria dos casos, especialmente se o contexto total for longo, o desempenho do modelo será melhor se você colocar a consulta / pergunta no final do comando (depois de todo o outro contexto).
A performance do modelo é afetada quando adiciono mais tokens a uma consulta?
Em geral, se você não precisar que os tokens sejam transmitidos ao modelo, é melhor evitar a transmissão deles. No entanto, se você tiver um grande número de tokens com algumas informações e quiser fazer perguntas sobre elas, o modelo será capaz de extrair essas informações (até 99% de precisão em muitos casos).
Como posso reduzir meu custo com consultas de contexto longo?
Se você tiver um conjunto semelhante de tokens / contexto que quer reutilizar várias vezes, o armazenamento em cache de contexto pode ajudar a reduzir os custos associados a fazer perguntas sobre essas informações.
O comprimento do contexto afeta a latência do modelo?
Há uma quantidade fixa de latência em qualquer solicitação, independentemente do tamanho, mas, geralmente, consultas mais longas têm latência maior (tempo até o primeiro token).