Prompt e Contexto
Prompt e contexto são conceitos fundamentais na engenharia de prompt para grandes modelos de linguagem (LLMs).
O contexto é um componente criticamente importante do prompt, determinando a capacidade do LLM de gerar respostas precisas, relevantes e úteis. A engenharia de prompt eficaz consiste em grande parte na arte de coletar, filtrar, estruturar e apresentar o contexto correto ao modelo no momento certo, superando ao mesmo tempo as limitações dos LLMs modernos.
Definição de Prompt
Prompt (do inglês prompt) é o conjunto completo de dados de entrada fornecido a um LLM para gerar uma resposta. Não é apenas uma pergunta ou um comando, mas um texto estruturado que pode incluir:
- Instruções: Orientações diretas ao modelo sobre o que fazer, em que formato, estilo ou tom.
- Consulta principal (Query): A pergunta direta do usuário ou a descrição da tarefa principal.
- Contexto: Informações adicionais necessárias para a correta execução da consulta.
- Exemplos (Few-shot examples): Demonstração do formato ou estilo de resposta desejado em tarefas semelhantes.
A qualidade e a completude do prompt determinam diretamente a relevância, a precisão e a utilidade da resposta do LLM.
Definição de Contexto
Contexto, no âmbito da engenharia de prompt, é qualquer informação dentro do prompt que ajuda o modelo a entender melhor a tarefa, as especificidades da situação ou as expectativas do usuário, mas que não faz parte de seus dados de treinamento originais. O contexto fornece os detalhes situacionais necessários para gerar uma resposta adequada.
O contexto pode incluir:
- Histórico do diálogo anterior (em chatbots).
- Dados extraídos de fontes externas (documentos, bancos de dados, páginas da web) — a base do RAG.
- Informações sobre o usuário (perfil, preferências).
- Detalhes específicos da tarefa ou situação atual.
- Exemplos de execução de tarefas semelhantes (como parte do few-shot prompting).
É importante distinguir o contexto fornecido no prompt do conhecimento geral adquirido pelo modelo durante seu pré-treinamento. A engenharia de prompt foca na provisão eficaz de contexto especificamente situacional.
Relação e Influência
Prompt e contexto são conceitos fundamentais no funcionamento dos transformadores, determinando como o modelo percebe os dados de entrada e com base em que gera o resultado. Arquitetonicamente, um transformer não distingue especificamente entre "prompt" e "contexto" – ambos são partes da sequência de tokens de entrada, que são convertidos em embeddings, enriquecidos com informações posicionais e processados coletivamente pelas camadas de autoatenção.
Prompt e contexto estão intrinsecamente ligados: o contexto é uma parte integrante do prompt.
- O contexto molda o prompt: O engenheiro seleciona e estrutura o contexto relevante para inclusão no prompt.
- O contexto direciona o modelo: A informação fornecida permite que o LLM restrinja o espaço de respostas possíveis, foque nos aspectos relevantes e evite alucinações.
- A qualidade do contexto determina a qualidade da resposta: Um contexto insuficiente, irrelevante ou contraditório leva a respostas imprecisas, genéricas ou errôneas. Um contexto preciso e completo aumenta a especificidade e a utilidade da geração.
- Influência na interpretação das instruções: O contexto pode refinar ou modificar a interpretação de instruções gerais no prompt.
A eficácia de um prompt depende em grande parte do sucesso do engenheiro em coletar, filtrar e apresentar o contexto relevante ao modelo.
Tipos de Contexto
O contexto pode ser classificado por diferentes critérios:
Por fonte:
- Fornecido pelo usuário: A entrada explícita do usuário, sua pergunta ou descrição da tarefa.
- Do histórico do diálogo: Mensagens anteriores do usuário e do assistente (memória de curto prazo).
- Recuperado (Retrieved): Dados de fontes externas (documentos, bancos de dados, web) por meio de RAG.
- Do perfil/base de conhecimento: Informações de longo prazo sobre o usuário ou o domínio.
- Estático/Instrutivo: Informações inseridas pelo engenheiro no template do prompt (instruções, exemplos, definições de papéis).
Por dinamicidade:
- Contexto estático: Parte invariável do prompt (instruções, definições, exemplos). Define a tarefa geral.
- Contexto dinâmico: Informações que mudam de uma consulta para outra (dados do usuário, resultados de RAG, hora atual). Fornece detalhes específicos.
Por tempo de armazenamento (Memória):
- Contexto de curto prazo: Histórico da sessão de diálogo atual.
- Contexto de longo prazo: Dados salvos sobre o usuário ou interações anteriores, que exigem mecanismos de armazenamento e recuperação.
Gerenciamento de Contexto
O gerenciamento eficaz do contexto é uma tarefa chave na engenharia de prompt, especialmente à luz das limitações da janela de contexto dos LLMs. Os principais métodos são:
- RAG: O método mais comum para trabalhar com grandes volumes de informação. Permite encontrar e incluir dinamicamente no prompt apenas os fragmentos mais relevantes de uma vasta base de conhecimento. Requer um banco de dados vetorial e mecanismos de busca eficientes (lexicais ou semânticos).
- Chunking (Divisão em blocos): Divisão de documentos grandes em partes semanticamente relacionadas ou de tamanho fixo para indexação e posterior recuperação via RAG.
- Sumarização: Compressão de um longo histórico de diálogo ou de documentos volumosos para transmitir o sentido principal dentro da janela de contexto limitada.
- Gerenciamento de Memória (Memory Management): Uso de várias estratégias para armazenar e recuperar o histórico de diálogos em chatbots e agentes (por exemplo, ConversationBufferMemory, ConversationSummaryBufferMemory em LangChain).
- Janela deslizante (Sliding Window): Manter apenas as N últimas mensagens do diálogo no contexto.
- Filtragem e Priorização: Seleção dos fragmentos de contexto mais relevantes com base em sua importância (por exemplo, usando pontuações de relevância fornecidas pela busca) antes de montar o prompt final.
O Papel do Contexto na Engenharia de Prompt
- Aumento da Relevância: O contexto permite que o modelo gere respostas que correspondem precisamente à consulta e à situação do usuário.
- Redução de Alucinações: Fornecer informações factuais (via RAG) força o modelo a se basear nelas em vez de inventar fatos.
- Personalização: O contexto sobre o usuário (preferências, histórico) permite adaptar as respostas.
- Gerenciamento de Estado: Em diálogos e processos de múltiplos passos, o contexto (histórico) garante a continuidade e a consciência do modelo sobre os passos anteriores.
- Superação das Limitações de Conhecimento do Modelo: O RAG permite que o modelo responda a perguntas sobre eventos que ocorreram após seu treinamento ou sobre dados específicos/privados.
Limitações
- Limite da Janela de Contexto: Apesar do aumento para 1-2 milhões de tokens nos modelos modernos, o processamento de tais volumes pode ser caro e lento. Exige estratégias eficientes de compressão e seleção (RAG, sumarização).
- Busca por Contexto Relevante: A eficácia do RAG depende da qualidade da busca. Um contexto recuperado incorretamente pode confundir o modelo ("lixo na entrada, lixo na saída").
- "Vale da Indiferença" (Valley of Meh): Informações localizadas no meio de um prompt muito longo podem ser ignoradas pelo modelo. Requer a estruturação do prompt (por exemplo, a "técnica do sanduíche").
- Risco de Injeção de Contexto: Se o contexto for extraído de fontes não confiáveis (por exemplo, páginas da web), ele pode conter instruções maliciosas (injeções de prompt).
Ver também
- Grandes modelos de linguagem
- Janela de contexto
- Bancos de dados vetoriais
- LangChain
Literatura
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
- Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
- Chen, S. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
- Packer, C. et al. (2023). MemGPT: Towards LLMs as Operating Systems. arXiv:2310.08560.
- Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
- Sahoo, P. et al. (2024). A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications. arXiv:2402.07927.
- Kim, S. H. et al. (2024). Theanine: Revisiting Memory Management in Long-term Conversations with Timeline-augmented Response Generation. arXiv:2406.10996.
- Chen, S. et al. (2024). StruQ: Defending Against Prompt Injection with Structured Queries. arXiv:2402.06363.
- Zhong, M. et al. (2024). Understanding the RoPE Extensions of Long-Context LLMs: An Attention Perspective. arXiv:2406.13282.
- Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
- Self-Instruct (2025). Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.