25 pontos por GN⁺ 2023-12-17 | 2 comentários | Compartilhar no WhatsApp
  • Um guia que compartilha estratégias e técnicas para obter melhores resultados com grandes modelos de linguagem (também chamados de modelos GPT)
  • Os métodos explicados aqui às vezes podem ser combinados para gerar um efeito ainda maior, e é recomendável experimentar para encontrar a abordagem mais adequada
  • É possível explorar prompts de exemplo para aprender o que o modelo é capaz de fazer

Seis estratégias para obter melhores resultados

Escreva instruções claras

  • Como o modelo não consegue ler pensamentos, é preciso pedir com clareza o que você deseja.
  • Inclua detalhes para obter respostas mais relevantes, peça ao modelo para interpretar uma persona específica ou use delimitadores para indicar claramente partes distintas da entrada.
  • Especifique as etapas necessárias para concluir a tarefa, forneça exemplos e defina o tamanho desejado da saída.

Forneça texto de referência

  • Modelos de linguagem podem inventar respostas falsas com confiança, especialmente ao lidar com temas obscuros ou quando se pede citações e URLs.
  • Instrua o modelo a responder usando um texto de referência ou a responder citando trechos do texto de referência.

Divida tarefas complexas em subtarefas simples

  • Assim como decompor sistemas complexos em componentes modulares é uma boa prática em engenharia de software, o mesmo vale para tarefas submetidas a modelos de linguagem.
  • Tarefas complexas têm taxas de erro mais altas e muitas vezes podem ser redefinidas como um fluxo de trabalho de tarefas simples.
  • Use classificação de intenção para identificar as instruções mais relevantes para a consulta do usuário e, em aplicações conversacionais que exigem diálogos muito longos, resuma ou filtre conversas anteriores.
  • Resuma documentos longos em partes e construa recursivamente um resumo geral.

Dê ao modelo "tempo para pensar"

  • Em vez de apressar uma resposta, pedir uma "cadeia de pensamento" antes de formular a resposta pode levar a respostas mais confiáveis.
  • Instrua o modelo a elaborar primeiro sua própria solução e use um monólogo interno ou uma série de consultas para ocultar o processo de raciocínio do modelo.
  • Pergunte ao modelo se ele deixou passar algo na etapa anterior.

Use ferramentas externas

  • Forneça ao modelo a saída de outras ferramentas para compensar suas limitações.
  • Implemente recuperação eficiente de conhecimento com busca baseada em embeddings, faça cálculos mais precisos com execução de código ou chame APIs externas.
  • Permita que o modelo tenha acesso a funções específicas.

Teste mudanças de forma sistemática

  • Melhorias de desempenho são mais fáceis quando podem ser medidas.
  • É necessário definir uma suíte de testes abrangente (ou "eval") para verificar se uma mudança tem impacto positivo no desempenho geral.
  • Avalie comparando a saída do modelo com respostas de referência.

Opinião do GN⁺

  • Ponto mais importante: engenharia de prompts é um método central para otimizar o desempenho de modelos de linguagem, oferecendo instruções concretas para compreender com precisão a intenção do usuário e obter os resultados desejados.
  • Por que é interessante: essas estratégias tornam o uso de modelos de linguagem de IA mais eficaz e permitem desempenho ainda melhor, especialmente em modelos mais recentes como o GPT-4.
  • O que chama atenção: este guia apresenta exemplos e estratégias concretas que ajudam a resolver problemas comuns que engenheiros de software iniciantes podem enfrentar ao usar modelos de linguagem, mostrando como aproveitá-los de forma mais eficaz em tarefas reais.

2 comentários

 
GN⁺ 2023-12-17
Opinião do Hacker News
  • Discussão sobre o prompt de sistema do ChatGPT

    • Os modelos mais recentes do ChatGPT são eficazes em seguir regras complexas.
    • Pela experiência, dar instruções mais rígidas é melhor do que usar apenas o prompt de sistema.
    • Chamada de funções e suporte a dados estruturados são uma forma de engenharia de prompt e são muito mais poderosos do que usar apenas o prompt de sistema.
    • Há um exemplo de demonstração interessante comparando prompt de sistema e resultados com dados estruturados.
  • Relato de uma experiência ao pedir um cheeseburger em espanhol

    • O atendente reagiu de forma estranha à tradução em espanhol sugerida pelo ChatGPT e pelo Google Tradutor.
    • Como havia interesse em melhorar a tradução, foi pedido um ajuste para um espanhol direcionado a mexicano-americanos.
    • No dia seguinte, ao pedir usando a frase "Cheeseburger sin pepinillos", o atendente disse que assim estava melhor.
  • Discussão sobre as características dos LLMs (Large Language Models)

    • Quase não há distinção entre entrada e instrução, então a entrada do usuário é tratada como parte do prompt.
    • Isso leva à conhecida vulnerabilidade de "prompt injection", mas isso decorre da característica intrínseca de o modelo não distinguir entre instruções e entrada.
    • A combinação de prompt e entrada se torna a entrada total do programa, o que dificulta ter confiança no comportamento do programa.
    • Esse é um dos motivos pelos quais os LLMs ainda não são usados de forma confiável para tarefas complexas.
  • Hesitação em investir no aprendizado de escrita de prompts

    • Há receio de dedicar muito tempo a aprender perfeitamente a escrever prompts, porque novas versões e diferentes LLMs reagem de maneiras distintas.
    • À medida que os sistemas ficarem mais inteligentes, talvez prompts complexos deixem de ser necessários.
  • Comparação entre engenharia de prompt e consultas avançadas de busca no Google

    • Para perguntas básicas, chatbots funcionam bem, mas quanto mais complexa a informação desejada, mais difícil fica obter dados precisos.
    • Na busca do Google também é fácil obter informações básicas, mas quando se quer resultados menos óbvios, usam-se operadores avançados de busca.
  • Comparação entre prompts para busca no Google e prompts para LLMs

    • As pessoas se acostumaram a digitar palavras-chave simples no Google para obter o que precisam na internet.
    • Agora, ter de escrever frases complexas vai levar tempo para se tornar natural, e isso pode ser apenas uma fase temporária.
  • Falhas de comunicação entre humanos e os limites dos LLMs

    • A comunicação entre humanos falha com frequência, e a maioria das pessoas não é comunicadora eficaz.
    • Também é difícil esperar que máquinas sejam melhores em ler a mente e as intenções humanas.
    • A engenharia de prompt deveria existir para melhorar a capacidade de comunicação entre pessoas.
  • Crítica ao termo "engenharia de prompt"

    • Foi apresentada a opinião de que a palavra "engenharia" está sendo usada em excesso.
  • O papel dos LLMs em ensinar comunicação clara aos humanos

    • Por meio dos LLMs, os humanos estão aprendendo a se comunicar com mais clareza.
  • Facilidade de implementação de chat apps baseados em LLM

    • Há muitas vantagens em implementar chat apps baseados em LLM mesmo sem avanços teóricos.
    • Ainda é necessário esforço dos desenvolvedores para obter resultados melhores do que os atuais.