Desafio 22: Fundamentos de Engenharia de Prompt
25-30 min | Custo: Gratuito | Domínio: IA Generativa (15-20%)
Habilidades do exame abordadas
- Identificar cenários comuns para IA generativa
- Descrever técnicas de engenharia de prompt
- Identificar recursos e capacidades do Azure OpenAI Service
Visão geral
Engenharia de prompt é a prática de projetar entradas (prompts) eficazes para obter as melhores saídas possíveis de modelos de IA generativa. Como LLMs respondem com base em como você pergunta, a qualidade do seu prompt determina diretamente a qualidade da resposta. Um prompt bem elaborado pode significar a diferença entre uma resposta vaga e inútil e uma resposta precisa e acionável.
A percepção chave é que LLMs respondem a contexto. Uma system message define os limites comportamentais ("Você é um editor profissional de emails"). Exemplos few-shot mostram ao modelo qual formato você espera. Instruções específicas ("Responda em tópicos, limite a 3 itens") restringem a saída. E dados de grounding (documentos ou fatos relevantes) dão ao modelo informações precisas para referenciar em vez de depender de dados de treinamento potencialmente desatualizados.
Engenharia de prompt não é sobre "enganar" a IA — é sobre comunicação clara. Pense nisso como dar instruções a um novo funcionário: quanto mais contexto, exemplos e restrições você fornecer, melhor o resultado. Os parâmetros do Azure OpenAI (temperatura, top-p, max tokens) ajustam ainda mais o comportamento do modelo.
Explorar
Tarefa 1: Entender componentes do prompt
Um prompt eficaz tipicamente inclui alguns ou todos estes elementos:
| Componente | Propósito | Exemplo |
|---|---|---|
| System message | Definir comportamento/persona da IA | "Você é um escritor técnico conciso." |
| Contexto/grounding | Fornecer informações relevantes | "Com base neste documento: [texto]..." |
| Instrução | Dizer ao modelo o que fazer | "Resuma o seguinte em 3 tópicos." |
| Dados de entrada | O conteúdo a processar | [O texto a resumir] |
| Formato de saída | Especificar estrutura desejada | "Formate como lista numerada" ou "Responda em JSON" |
| Exemplos few-shot | Mostrar comportamento esperado | "Exemplo: Entrada: X → Saída: Y" |
| Restrições | Definir limites | "Máximo 100 palavras. Não inclua opiniões." |
Tarefa 2: Comparar prompts bons vs. ruins
Cenário: Você quer uma descrição de produto para um novo fone de ouvido sem fio.
❌ Prompt ruim:
"Escreva sobre fones de ouvido."
Resultado: Texto genérico e sem foco sobre fones de ouvido em geral.
✅ Prompt bom:
"Escreva uma descrição de produto de 50 palavras para fones de ouvido sem fio com cancelamento de ruído voltados para viajantes de negócios. Enfatize conforto para voos longos, duração da bateria e cancelamento de ruído. Tom: profissional mas amigável."
Resultado: Descrição focada e específica que atende aos requisitos.
Mais exemplos:
| Tarefa | Prompt Ruim | Prompt Bom |
|---|---|---|
| Resumir | "Resuma isso" | "Resuma este artigo em 3 tópicos, focando no impacto financeiro" |
| Código | "Escreva código Python" | "Escreva uma função Python que recebe uma lista de inteiros e retorna os dois maiores valores. Inclua docstring e type hints." |
| "Escreva um email" | "Escreva um email profissional recusando uma oferta de emprego educadamente. Mantenha em menos de 100 palavras. Expresse gratidão e deixe a porta aberta para oportunidades futuras." |
Tarefa 3: Pratique prompting few-shot
Zero-shot — Sem exemplos (modelo depende do treinamento):
Classify the following review as Positive, Negative, or Neutral:
"The product arrived on time and works exactly as described."
One-shot — Um exemplo:
Classify reviews as Positive, Negative, or Neutral.
Example:
Review: "Absolutely terrible quality, broke after one day."
Classification: Negative
Now classify:
Review: "The product arrived on time and works exactly as described."
Classification:
Few-shot — Múltiplos exemplos:
Classify reviews as Positive, Negative, or Neutral.
Review: "Absolutely terrible quality, broke after one day."
Classification: Negative
Review: "It's okay, nothing special but does the job."
Classification: Neutral
Review: "Best purchase I've ever made! Highly recommend!"
Classification: Positive
Now classify:
Review: "The product arrived on time and works exactly as described."
Classification:
Percepção chave: Mais exemplos ajudam o modelo a entender o formato esperado e os limites de classificação, mas usam mais tokens (custam mais).
Tarefa 4: Entender efeitos de temperatura e top-p
Estes parâmetros controlam a aleatoriedade e criatividade das saídas:
Temperatura (0 a 2):
| Valor | Comportamento | Melhor Para |
|---|---|---|
| 0 | Determinístico, mesma resposta toda vez | Consultas factuais, extração de dados, classificação |
| 0.3-0.5 | Majoritariamente consistente com leve variação | Suporte ao cliente, escrita profissional |
| 0.7-1.0 | Criativo, respostas variadas | Escrita criativa, brainstorming, storytelling |
| >1.0 | Muito aleatório, potencialmente incoerente | Raramente útil em produção |
Top-p (0 a 1) — Amostragem de núcleo:
- Top-p 0.1: Considera apenas os 10% de tokens mais prováveis → muito focado
- Top-p 0.9: Considera os 90% de tokens mais prováveis → mais diverso
- Funciona como alternativa à temperatura (use um ou outro, não ambos)
Sua tarefa: Para cada cenário, qual temperatura você recomendaria?
- Extrair datas de um contrato jurídico → 0 (precisão importa, sem criatividade)
- Escrever taglines de marketing → 0.8-1.0 (criatividade desejada)
- Responder perguntas FAQ de clientes → 0.3 (consistente mas natural)
- Gerar poesia → 1.0+ (máxima criatividade)
Tarefa 5: Entender grounding e janelas de contexto
Grounding conecta o modelo a dados reais para reduzir alucinações:
System: You are a customer support agent. Only answer based on
the following product documentation. If the answer is not in the
documentation, say "I don't have that information."
Documentation:
- Product X costs $99/month for the basic plan
- Product X supports up to 50 users on the basic plan
- Enterprise plan costs $499/month for unlimited users
User: How much does Product X cost?
Esta abordagem (chamada Retrieval-Augmented Generation / RAG) é preferida porque:
- Reduz alucinações (modelo referencia dados reais)
- Fornece informações atualizadas (não limitado a dados de treinamento)
- Permite respostas verificáveis (você pode conferir com a fonte)
Janela de contexto — o total de tokens que um modelo pode lidar (entrada + saída):
| Modelo | Janela de Contexto |
|---|---|
| GPT-4o | 128.000 tokens |
| GPT-4 Turbo | 128.000 tokens |
| GPT-3.5-Turbo | 16.384 tokens |
Para o exame, lembre-se: system messages definem comportamento, exemplos few-shot mostram formato, grounding fornece precisão, e temperatura/top-p controlam criatividade. Essas são as alavancas fundamentais de engenharia de prompt.
Conceitos-Chave
| Conceito | Definição |
|---|---|
| Engenharia de prompt | Projetar entradas eficazes para otimizar as saídas de modelos de IA generativa |
| System message | Instruções que definem o comportamento, persona e restrições da IA |
| Prompting few-shot | Fornecer exemplos no prompt para mostrar ao modelo o formato de saída esperado |
| Grounding | Fornecer dados fonte relevantes para que o modelo responda com base em fatos em vez de alucinar |
| Janela de contexto | O número máximo de tokens que um modelo pode processar (entrada + saída combinados) |
| RAG (Retrieval-Augmented Generation) | Padrão de recuperar documentos relevantes e incluí-los no prompt para respostas fundamentadas |
Equívocos Comuns
| Equívoco | Realidade |
|---|---|
| Prompts mais longos sempre produzem melhores resultados | Prompts concisos e claros com o contexto certo frequentemente superam os verbosos; comprimento desnecessário desperdiça tokens |
| Temperatura 0 significa que o modelo não vai errar | Temperatura 0 torna a saída determinística (mesma entrada → mesma saída) mas não garante precisão factual |
| Exemplos few-shot ensinam o modelo permanentemente | Exemplos se aplicam apenas à conversa atual; o modelo não retém aprendizado entre sessões |
| Você deve sempre usar a janela de contexto máxima | Incluir contexto irrelevante pode na verdade confundir o modelo; inclua apenas o necessário para responder à pergunta |
| Engenharia de prompt é uma tarefa única | Prompts eficazes requerem testes iterativos e refinamento com base nas saídas reais |
Verificação de Conhecimento
1. Um desenvolvedor quer que um modelo de IA sempre responda em um formato JSON específico. Qual técnica de engenharia de prompt é mais eficaz?
2. Qual é o propósito principal do grounding na engenharia de prompt?
3. Uma aplicação precisa extrair pontos de dados específicos de faturas com alta precisão. Qual configuração de temperatura é mais apropriada?
4. O que é a janela de contexto em um modelo de IA generativa?
5. O que é "prompting few-shot"?