LLM:
Large Language Model (LLM) é modelo de linguagem treinado em grandes volumes de parâmetros textuais (sequência de palavras), capaz de gerar e compreender texto de forma contextualizada, sem necessidade de programação (aprendizado autônomo). O apredizado ocorre via padrões e estruturas de linguagem humana, presente nos dados de treinamento. Modelos atuais utilizam Natural Language Processing (NLP ou PLN). LLMs são capazes de responder perguntas (texto, imagens, áudio, vídeos, etc) em diversos formatos de resposta (texto, imagens, áudio, vídeos, etc). Principais LLMs:
- GPT (OpenAI): Usado no ChatGPT. Modelos como GPT-3.5, GPT-4 e GPT-4o são amplamente utilizados;
- Gemini (Google): Inúmeras funcionalidades de multimodalidade;
- Copilot (Microsoft): Assistente de programação que sugere trechos de código;
- LLaMA (Meta): Utilizado em pesquisas e aplicações open source.
- Claude (Anthropic): Modelo com foco em segurança e respostas mais "alinhadas";
LLMs têm limitações, como "alucinação" (inventar respostas falsas com confiança), dificuldade em responder dados extremamente recentes, dependência da qualidade do prompt de entrada, podem reproduzir vieses (vício em resposta específica) oriundos dos dados de treino. Engenharia de Prompt é prática de criar prompts de entrada para LLMs, de forma organizada a fim de obter melhor acurácia de resposta, controlando, consequentemente, comportamento do LLM. Prompts bem estruturados melhoram qualidade das respostas geradas.
Componentes de Prompt:
- Instrução: Especificação que usuário deseja que LLM faça (ex: "Resuma o texto a seguir:");
- Few-shot learning (exemplos): Pares entrada e saída esperadas (ex: "Texto original": "Resumo");
- Role Assignment (contexto ou configuração): Papel ou cenário do LLM (ex: "Você é assistente de pesquisa jurídica");
- Restrições ou Limitações: Limitações de resposta (extensão ou escopo) que LLM deve seguir (ex: "Use até 50 palavras");
- Conteúdo principal: Conteúdo ou informações (anexos, etc) centrais para processamento de LLM (ex: "Texto a ser resumido");
- Modular: dividir prompt em partes ou usar abordagem progressiva (ex: "Primeiro, resuma o texto. Depois, forneça exemplos.");
- Indicações: Diretrizes LLM direcionar saídas específicas (ex: "Mantenha um tom formal");
- Formato de saída: Estrutura ou tipo de resposta que LLM deve gerar (ex: "Resposta em formato Markdown");
- Conteúdo de suporte: Informações extras (datas, anexos, estatísticas, etc) que ajudam LLM entender a tarefa (ex: "Texto de fundo sobre o assunto");
- Feedback: Respostas de LLM que ajudam a ajustar e melhorar prompts futuros (ex: "A resposta foi útil?").
Exemplos:
- Prompt ruim: "Escreva uma redação".
- Prompt bom: "Escreva uma redação de 500 palavras sobre a importância da educação ambiental, incluindo pelo menos três exemplos práticos e propondo soluções para problemas ambientais atuais."
Tipos de Prompt:
- Direct Prompting: instruem LLM realizar tarefa específica de forma clara e direta (ex: "Resuma o texto a seguir");
- Few-shot Prompting: apresenta exemplos antes de fazer solicitação (ex: "Maçã": "Fruta");
- Zero-shot Prompting: não fornece exemplos, mas descreve tarefa (ex: "Classifique o texto a seguir como positivo ou negativo");
- Chain-of-Thought Prompting: induz LLM a explicar raciocínio passo a passo antes da resposta final (ex: "Para resolver este problema, primeiro precisamos entender...");
- Role Prompting: começa com instrução que define quem o LLM deve simular, influenciando tom, vocabulário e foco da resposta (ex: "Você é um especialista em direito ambiental");
- Prompt Templates: prompts com estrutura padrão, através de parâmetros fixos (ex: "Complete o seguinte texto: [texto]");
- Prompt Tuning (Manual/Automático - Iteractive): testar versão inicial do prompt, avaliar sua resposta e fazer ajustes progressivos para melhorá-lo (ex: "A resposta foi útil?").
- Multi-Prompting: usa múltiplos prompts para obter respostas variadas e escolher a melhor (ex: "Resuma o texto de três maneiras diferentes").