Contexto longo

O Gemini inclui uma capacidade de resposta de 1 milhão de tokens de série. Historicamente, os grandes modelos de linguagem (GMLs) eram significativamente limitados pela quantidade de texto (ou tokens) que podia ser transmitida ao modelo de uma só vez. A capacidade de resposta longa do Gemini, com uma recuperação quase perfeita (>99%), desbloqueia muitos novos exemplos de utilização e paradigmas de programadores.

O código que já usa para casos como a geração de conteúdo ou as entradas multimodais vai funcionar imediatamente com o contexto longo.

Ao longo deste guia, vai explorar brevemente os princípios básicos da capacidade de resposta, como os programadores devem pensar na capacidade de resposta longa, vários exemplos de utilização no mundo real da capacidade de resposta longa e formas de otimizar a utilização da capacidade de resposta longa.

O que é a capacidade de resposta?

A forma básica de usar os modelos Gemini é transmitir informações (contexto) ao modelo, que irá gerar posteriormente uma resposta. Uma analogia para a capacidade de resposta é a memória a curto prazo. Existe uma quantidade limitada de informações que podem ser armazenadas na memória de curto prazo de uma pessoa, e o mesmo se aplica aos modelos generativos.

Pode ler mais sobre como os modelos funcionam nos bastidores no nosso guia de modelos generativos.

Introdução ao contexto longo

A maioria dos modelos generativos criados nos últimos anos só conseguia processar 8000 tokens de cada vez. Os modelos mais recentes foram mais longe ao aceitar 32 000 ou 128 000 tokens. O Gemini é o primeiro modelo capaz de aceitar 1 milhão de tokens e, agora, 2 milhões de tokens com o Gemini 1.5 Pro.

Na prática, 1 milhão de tokens teria o seguinte aspeto:

  • 50 000 linhas de código (com os 80 carateres padrão por linha)
  • Todas as mensagens de texto que enviou nos últimos 5 anos
  • 8 romances em inglês de comprimento médio
  • Transcrição de mais de 200 episódios de podcasts de duração média

Apesar de os modelos poderem receber cada vez mais contexto, grande parte da sabedoria convencional sobre a utilização de modelos de linguagem (conteúdo extenso) pressupõe esta limitação inerente ao modelo, o que, a partir de 2024, já não se aplica.

Algumas estratégias comuns para lidar com a limitação de janelas de contexto pequenas incluem:

  • Eliminar arbitrariamente mensagens / texto antigos da capacidade de resposta à medida que chega novo texto
  • Resumir o conteúdo anterior e substituí-lo pelo resumo quando a capacidade de resposta estiver quase cheia
  • Usar a RAG com a pesquisa semântica para mover dados para fora da capacidade de resposta e para uma base de dados vetorial
  • Usar filtros determinísticos ou generativos para remover determinados carateres de texto dos comandos para poupar tokens

Embora muitos destes ainda sejam relevantes em determinados casos, o ponto de partida predefinido é agora simplesmente colocar todos os tokens na capacidade de resposta. Uma vez que os modelos Gemini foram criados especificamente com uma capacidade de resposta longa, são muito mais capazes de aprendizagem no contexto. Por exemplo, com apenas materiais instrucionais (uma gramática de referência de 500 páginas, um dicionário e ≈ 400 frases paralelas adicionais) todos fornecidos no contexto, o Gemini 1.5 Pro e o Gemini 1.5 Flash são capazes de aprender a traduzir do inglês para kalamang, uma língua papuana com menos de 200 falantes e, por conseguinte, quase sem presença online, com uma qualidade semelhante à de uma pessoa que aprendeu com os mesmos materiais.

Este exemplo realça como pode começar a pensar no que é possível com o contexto longo e as capacidades de aprendizagem no contexto do Gemini.

Exemplos de utilização de contexto longo

Embora o exemplo de utilização padrão para a maioria dos modelos generativos seja ainda a entrada de texto, a família de modelos Gemini permite um novo paradigma de exemplos de utilização multimodais. Estes modelos podem compreender nativamente texto, vídeo, áudio e imagens. São acompanhadas pela API Vertex AI para o Gemini que aceita tipos de ficheiros multimodais para maior conveniência.

Texto de formato longo

O texto revelou-se a camada de inteligência que sustenta grande parte do impulso em torno dos MDIs/CEs. Conforme mencionado anteriormente, grande parte da limitação prática dos MDIs devia-se ao facto de não terem uma janela de contexto suficientemente grande para realizar determinadas tarefas. Isto levou à rápida adoção da geração aumentada de obtenção (RAG) e de outras técnicas que fornecem dinamicamente ao modelo informações contextuais relevantes. Agora, com capacidades de resposta cada vez maiores (atualmente, até 2 milhões no Gemini 1.5 Pro), estão a ficar disponíveis novas técnicas que desbloqueiam novas utilizações.

Alguns exemplos de utilização emergentes e padrão para o contexto longo baseado em texto incluem:

  • Resumir grandes conjuntos de texto
    • As opções de resumo anteriores com modelos de contexto mais pequenos requeriam uma janela deslizante ou outra técnica para manter o estado das secções anteriores à medida que novos tokens eram transmitidos ao modelo
  • Perguntas e respostas
    • Historicamente, isto só era possível com a RAG, dado o número limitado de contexto e a baixa capacidade de memorização factual dos modelos
  • Fluxos de trabalho de agência
    • O texto é a base de como os agentes mantêm o estado do que fizeram e do que precisam de fazer. Não ter informações suficientes sobre o mundo e o objetivo do agente é uma limitação à fiabilidade dos agentes

A aprendizagem no contexto com vários exemplos é uma das capacidades mais exclusivas desbloqueadas pelos modelos de contexto longo. A investigação demonstrou que, ao usar o paradigma comum de exemplo de "único disparo" ou "vários disparos", em que o modelo é apresentado com um ou alguns exemplos de uma tarefa, e ao aumentar esse número para centenas, milhares ou mesmo centenas de milhares de exemplos, é possível alcançar novas capacidades do modelo. Esta abordagem de vários exemplos também demonstrou ter um desempenho semelhante ao dos modelos que foram otimizados para uma tarefa específica. Para exemplos de utilização em que o desempenho de um modelo Gemini ainda não é suficiente para uma implementação de produção, pode experimentar a abordagem de vários exemplos. Como pode explorar mais tarde na secção de otimização do contexto longo, o armazenamento em cache do contexto torna este tipo de carga de trabalho de tokens de entrada elevada muito mais economicamente viável e até com uma latência mais baixa em alguns casos.

Vídeos de formato longo

A utilidade do conteúdo de vídeo tem sido limitada pela falta de acessibilidade do próprio meio. Era difícil analisar rapidamente o conteúdo, as transcrições falhavam frequentemente ao captar as nuances de um vídeo e a maioria das ferramentas não processava imagens, texto e áudio em conjunto. Com o Gemini, as capacidades de texto de contexto longo traduzem-se na capacidade de raciocinar e responder a perguntas sobre entradas multimodais com um desempenho sustentado.

Alguns exemplos de utilização emergentes e padrão para o contexto longo de vídeo incluem:

  • Perguntas e respostas em vídeo
  • Memória de vídeo, conforme mostrado com o Project Astra da Google
  • Legendas de vídeos
  • Sistemas de recomendações de vídeos, através do enriquecimento dos metadados existentes com uma nova compreensão multimodal
  • Personalização de vídeos através da análise de um conjunto de dados e metadados de vídeos associados, e remoção de partes dos vídeos que não são relevantes para o visitante
  • Moderação de conteúdo de vídeo
  • Processamento de vídeo em tempo real

Quando trabalha com vídeos, é importante considerar como os vídeos são processados em tokens, o que afeta os limites de faturação e utilização. Pode saber mais sobre como dar comandos com ficheiros de vídeo no guia de comandos.

Áudio de formato longo

Os modelos Gemini foram os primeiros modelos de linguagem (conteúdo extenso) nativamente multimodais que conseguiam compreender áudio. Historicamente, o fluxo de trabalho típico do programador envolvia a combinação de vários modelos específicos do domínio, como um modelo de conversão de voz em texto e um modelo de conversão de texto em texto, para processar áudio. Isto resultou numa latência adicional necessária para realizar vários pedidos de ida e volta e numa diminuição do desempenho geralmente atribuída a arquiteturas desligadas da configuração de vários modelos.

Nas avaliações de áudio padrão, o Gemini 1.5 Pro consegue encontrar o áudio oculto em 100% dos testes, e o Gemini 1.5 Flash consegue encontrá-lo em 98,7% dos testes. O Gemini 1.5 Flash aceita até 9,5 horas de áudio num único pedido e o Gemini 1.5 Pro pode aceitar até 19 horas de áudio através da capacidade de resposta de 2 milhões de tokens. Além disso, num conjunto de testes de clipes de áudio de 15 minutos, o Gemini 1.5 Pro atinge uma taxa de erro de palavras (WER) de ~5,5%, muito inferior à dos modelos de conversão de voz em texto especializados, sem a complexidade adicional da segmentação e do pré-processamento de entradas adicionais.

Alguns exemplos de utilização emergentes e padrão para o contexto de áudio incluem:

  • Transcrição e tradução em tempo real
  • Perguntas e respostas sobre podcasts / vídeos
  • Transcrição e resumo de reuniões
  • Assistentes de voz

Pode saber mais sobre como dar comandos com ficheiros de áudio no guia de comandos.

Otimizações de contexto longo

A otimização principal quando trabalha com contexto longo e os modelos Gemini é usar a colocação em cache de contexto. Além da impossibilidade anterior de processar muitos tokens num único pedido, a outra principal restrição era o custo. Se tiver uma app "conversar com os seus dados" em que um utilizador carrega 10 PDFs, um vídeo e alguns documentos de trabalho, teria de trabalhar com uma ferramenta/estrutura de geração aumentada de obtenção (RAG) mais complexa para processar estes pedidos e pagar um valor significativo pelos tokens movidos para a janela de contexto. Agora, pode colocar em cache os ficheiros que o utilizador carrega e pagar para os armazenar por hora. O custo de entrada / saída por pedido é inferior ao custo de entrada / saída padrão. Por isso, se o utilizador conversar com os respetivos dados o suficiente, torna-se uma enorme poupança de custos para si como programador.

Limitações de contexto longo

Em várias secções deste guia, falámos sobre como os modelos Gemini alcançam um elevado desempenho em várias avaliações de recuperação de agulhas no palheiro. Estes testes consideram a configuração mais básica, em que tem uma única agulha que está a procurar. Nos casos em que pode ter várias "agulhas" ou informações específicas que procura, o modelo não tem o mesmo desempenho em termos de precisão. O desempenho pode variar muito consoante o contexto. Isto é importante ter em conta, uma vez que existe uma compensação inerente entre obter as informações certas e o custo. Pode obter ~99% numa única consulta, mas tem de pagar o custo do token de entrada sempre que enviar essa consulta. Assim, para obter 100 informações, se precisasse de um desempenho de 99%, provavelmente teria de enviar 100 pedidos. Este é um bom exemplo de onde a colocação em cache do contexto pode reduzir significativamente o custo associado à utilização de modelos Gemini, mantendo o desempenho elevado.

O que se segue?