DEV Community

Cover image for Desvendando a Comunicação com LLMs: O Poder da Engenharia de Prompts
Pachi 🥑
Pachi 🥑

Posted on

Desvendando a Comunicação com LLMs: O Poder da Engenharia de Prompts

Você já se viu em uma conversa com uma inteligência artificial que não parecia te entender muito bem? Ou pediu algo a um LLM (Large Language Model) e o resultado não era bem o que você esperava?
Se a resposta for sim, você não está sozinho.
A forma como interagimos com esses modelos poderosos, por meio de prompts, faz toda a diferença. Compreender o potencial dos prompts, e também suas limitações, é o segredo para se tornar muito mais produtivo e tirar o máximo proveito da inteligência artificial.

Neste post, vamos falar sobre:

  • Como os LLMs funcionam e como seus prompts são processados.

  • Estratégias para criar prompts que realmente funcionam.

  • Como ajustar suas instruções quando o resultado inicial não atende às suas expectativas.

Bora?


O que é um LLM?

Modelos de Linguagem de Larga Escala (LLMs) são um tipo de inteligência artificial treinada com uma quantidade gigantesca de dados de texto. Essa vasta quantidade de informações permite que eles compreendam e gerem linguagem de forma notavelmente parecida com a humana.

Eles funcionam prevendo qual será a próxima palavra em uma frase, com base no contexto das palavras anteriores. Pense nisso como um "autocompletar" super inteligente! É exatamente por isso que eles conseguem gerar textos tão coerentes e contextuais.

Três conceitos importantes para usar LLMs:

  • Contexto: É a informação que você fornece e que ajuda o modelo a entender do que você está falando. Assim como em uma boa conversa com um amigo, quanto mais contexto você oferece, mais sentido a conversa fará.

  • Tokens: O texto que você insere ou que o modelo gera é dividido em unidades menores chamadas tokens. Um token pode ser uma palavra, parte de uma palavra ou até uma única letra. O modelo processa esses tokens para gerar respostas. Usar poucos tokens pode deixar o contexto fraco; usar demais pode confundir o modelo, ultrapassar o limite máximo de processamento ou até gerar custos maiores em alguns serviços.

  • Limitações: É importante entender que LLMs não são mágicos. Eles não "entendem" como humanos. Eles apenas identificam padrões nos dados em que foram treinados. Por isso, a qualidade e a diversidade dos dados de treinamento são cruciais, e preconceitos presentes nos dados originais podem levar a vieses nas respostas do LLM. Eles podem errar, "alucinar" respostas (inventar informações) ou gerar algo sem sentido.


O que é um prompt?

Um prompt é essencialmente um pedido ou instrução em linguagem natural que você faz a um LLM para que ele execute uma tarefa específica. Ele é a ponte entre o que você quer e o que o modelo pode oferecer, fornecendo o contexto necessário através de tokens e ajudando o modelo a contornar suas limitações.

Exemplo: Se você escrever "Crie uma função em JavaScript para calcular o fatorial de um número", o modelo utilizará o conhecimento adquirido durante seu treinamento para gerar essa função.

É importante notar que modelos diferentes (como o GPT da OpenAI, Claude da Anthropic ou Gemini do Google) podem processar prompts de maneiras distintas. Além disso, até o mesmo modelo pode gerar resultados ligeiramente variados para o mesmo prompt, devido a fatores como a arquitetura interna e os parâmetros de aleatoriedade que podem ser configurados.


O que é engenharia de prompts?

Pense na engenharia de prompts como a arte de se comunicar de forma eficaz com uma inteligência artificial. Imagine que você está pedindo ajuda a um amigo para fazer uma tarefa. Se quiser um resultado específico, você vai dar instruções claras e detalhadas, certo?

Com os LLMs, a lógica é a mesma. Um prompt bem elaborado é a chave para ajudar o modelo a entregar exatamente o que você precisa. Essa habilidade de criar prompts otimizados é o que chamamos de engenharia de prompts.

Um bom prompt é:

  • Claro e objetivo: A ambiguidade pode confundir o modelo, levando a respostas indesejadas.

  • Rico em contexto: Forneça informações suficientes para o modelo entender a profundidade da sua solicitação, mas evite exagerar nos detalhes irrelevantes.

  • Iterativo e testável: Se o resultado inicial não for o esperado, não desista! Ajuste o prompt e tente de novo. A engenharia de prompts é, em sua essência, um processo contínuo de tentativa e erro e aprimoramento.


Exemplo: refinando prompts para ter melhores resultados

Vamos imaginar que você está usando o GitHub Copilot e escreve:

"Crie uma função que eleva os números de uma lista ao quadrado."

Essa solicitação parece direta, mas na verdade, ela deixa várias perguntas no ar, como:

  • Em qual linguagem de programação a função deve ser criada?

  • A função deve incluir números negativos?

  • E se a lista contiver outros tipos de dados além de números?

  • A função deve modificar a lista original ou criar uma nova?

Agora, vamos refinar o prompt para torná-lo muito mais eficaz:

"Escreva uma função em Python que receba uma lista de inteiros e retorne uma nova lista com os quadrados de cada número, excluindo os negativos."

Com este prompt revisado, somos claros, específicos e com restrições bem definidas. Ao fornecer mais contexto e detalhes, o Copilot conseguirá gerar uma resposta muito mais alinhada ao que você realmente precisa!

Dica extra: Para tarefas mais complexas ou quando você precisa de um formato de saída muito específico, adicionar exemplos diretamente no prompt pode ser extremamente útil. Por exemplo, se você quer a saída em formato JSON, inclua um pequeno exemplo de como o JSON deve ser estruturado.

💡 No fundo, engenharia de prompts é sobre boa comunicação.


Como melhorar os resultados ao usar LLMs

Mesmo com prompts bem escritos, às vezes o resultado inicial não é o que esperávamos. Vamos ver como lidar com os problemas mais comuns e otimizar suas interações:

1. Prompt confuso

Pedir "Corrija os erros deste código e otimize" pode ser muito ambíguo. O modelo deve corrigir primeiro? Otimizar o quê, desempenho ou legibilidade?

Como resolver: Seja explícito no que você deseja e divida a tarefa em etapas claras:

  • "Corrija os erros do código fornecido."

  • "Agora, otimize o código corrigido para melhorar seu desempenho."

  • "Por fim, adicione testes unitários para a função principal."

2. Limite de tokens

Se seu prompt for muito longo ou você pedir uma saída excessivamente extensa, o modelo pode travar, cortar a resposta ou até "alucinar" (gerar informações inventadas ou sem sentido).

Como resolver:

  • Quebre pedidos grandes em partes menores e envie-os sequencialmente.

  • Envie apenas o contexto necessário. Em vez de mandar um arquivo inteiro, forneça somente a função ou o trecho de código relevante. Seja objetivo e vá direto ao ponto, eliminando informações irrelevantes para a tarefa.

3. Suposições erradas

Dizer "Adicione autenticação ao meu app" pode não funcionar se o modelo não tiver informações sobre qual framework você está usando ou como a arquitetura do seu aplicativo funciona. Ele fará suposições que podem não ser válidas para o seu contexto.

Como resolver:

  • Especifique o que deseja com clareza e detalhes técnicos: "Adicione autenticação com JWT em um app Node.js usando Express e MongoDB."

  • Forneça detalhes técnicos importantes, mencione boas práticas específicas e esteja preparado para iterar conforme o resultado. Lembre-se de que o modelo se beneficia quando você o orienta com restrições e formatos de saída específicos. Por exemplo: "Retorne a resposta em formato JSON" ou "A lista de itens deve ser ordenada alfabeticamente".


Boas práticas de engenharia de prompts

Para maximizar a eficácia de suas interações com LLMs, adote estas práticas:

  • Forneça contexto suficiente, mas evite sobrecarregar o modelo com detalhes desnecessários.

  • Escreva de forma clara, concisa e precisa.

  • Divida tarefas complexas em partes menores e gerenciáveis.

  • Explique requisitos e restrições com total clareza.

  • Seja educado e direto: embora os LLMs não possuam sentimentos, um tom respeitoso e direto geralmente resulta em respostas mais úteis.

  • Use formatação (quando aplicável): Em alguns casos, empregar aspas, listas, marcadores ou cabeçalhos dentro do próprio prompt pode ajudar o LLM a entender melhor a estrutura das suas instruções e o que você espera.


Próximos passos

Hoje você deu um grande passo para melhorar sua comunicação com LLMs! Você aprendeu

  • O que são LLMs e a importância crucial do contexto.
  • O que é engenharia de prompts e como escrever prompts verdadeiramente eficazes.
  • Como evitar os erros mais comuns e ajustar suas estratégias ao usar modelos de linguagem.

Encare cada prompt como uma oportunidade de aprendizado. Quanto mais você pratica, mais intuitiva se torna a comunicação com essas inteligências artificiais. Continue experimentando, testando e refinando, e você vai ver o impacto direto na sua produtividade.

Top comments (2)

Collapse
 
shadowruge profile image
izaias

maravilhoso, nota 1000

Collapse
 
dotallio profile image
Dotallio

That note about adding examples right in the prompt totally matches my experience, it’s wild how much clearer and more helpful the output gets when you do that. Have you noticed any prompts that work surprisingly well for tricky tasks?

Some comments may only be visible to logged-in visitors. Sign in to view all comments.