“Um especialista sabe todas as respostas, se você fizer as perguntas certas” - Claude Lévi-Strauss
Este é o mesmo princípio usado nas técnicas de Prompt Engineering, com objetivo de otimizar as respostas de aplicações de IA generativa, como chatbots, geradores de imagem/vídeo/áudio e outros. Quando este princípio em conjunto com as técnicas corretas não é aplicado, o usuário acaba recebendo respostas vazias, incorretas ou sem sentido. Afinal, quem nunca teve que conversar com um robô por chat automatizado de uma grande empresa e passou raiva implorando por atendimento humano?
Situações como essa são comuns e isso provavelmente é um reflexo da nossa educação: não somos treinados em como fazer as perguntas certas; somos treinados em responder perguntas para passar em testes. Para fazer uma contraposição a esta situação, o objetivo deste artigo é:
- Aprender a se comunicar com IAs generativas
- Explorar as técnicas de Prompt Engineering
- Extrair respostas efetivas de IAs generativas
Faremos isso utilizando o modelo Gemini do Google como exemplo, através da linguagem Python. Para facilitar a leitura, colocaremos a marcação Prompt / Resultado em todos os exemplos de prompts ao longo do artigo.
Aprenda a coletar, processar e analisar dados na formação de Do Zero à Análise de Dados com Python.
O que é um prompt?
Uma das capacidades significativas de IAs generativas é que suas respostas podem ser extremamente parecidas com o que um ser humano poderia produzir, em termos de relevância, contexto, nuance, imaginação e acurácia. Um dos fatores mais críticos para obter respostas eficazes de IAs generativas é o prompt.
Um prompt é qualquer entrada (input) que você fornece para uma IA generativa para obter uma saída (output) de interesse. Você pode pensar no prompt como uma instrução dada ao modelo. Por exemplo:
- Prompt Escreva um parágrafo pequeno explicando a lei da oferta e da demanda
- Prompt Escreva um código em Python para importar um arquivo de dados em CSV
Estes prompts são bastante diretos e são usados para obter respostas específicas.
O prompt também pode ser uma série de instruções para refinar a resposta conforme um resultado desejado. Por exemplo:
- Prompt Escreva um pequeno texto sobre um matemático estudando teoria dos jogos. Quais foram suas principais contribuições para a literatura econômica?
Note que, conforme estes exemplos, os prompts podem conter perguntas, contextualizações, padrões norteadores e exemplos para o modelo generativo. Estas instruções ajudam o modelo a produzir respostas relevantes e lógicas ou respostas baseadas no input fornecido.
O que é Prompt Engineering?
O processo de construir prompts de maneira efetiva para gerar resultados melhores e desejáveis por um modelo de IA generativa é chamado de Prompt Engineering. Esse processo é melhor aplicado se combinado com habilidades como senso crítico, criatividade e conhecimento técnico.
Prompt Engineering não se trata apenas de fazer a pergunta certa, mas elaborar a pergunta em um contexto adequado com as informações certas e com uma expectativa de resultado desejado para obter a resposta mais efetiva.
O processo de Prompt Engineering é iterativo, como tentativas e erros, e envolve as seguintes etapas:
- Definir o objetivo
- Criar rascunho inicial de prompt
- Testar o prompt
- Analisar a resposta
- Refinar o prompt
- Iterar até alcançar o resultado desejado
Como estruturar prompts?
Para que o prompt alcance o resultado desejado, alguns elementos importantes precisam estar presentes.
Instrução
Forneça orientações claras sobre a tarefa desejada. Por exemplo:
- Prompt Escreva um artigo de 500 palavras analisando os efeitos da pandemia da Covid-19 sobre a economia brasileira.
Contexto
Defina as circunstâncias sob as quais o resultado desejado deve ser formado. Por exemplo:
- Prompt No final de 2019 um novo vírus chamado Covid-19, altamente transmissível, foi descoberto na China e começou a se espalhar por diversos outros países, incluindo o Brasil. Com o surto de casos e de mortes, governos locais tomaram medidas de restrição de circulação de pessoas, implementando lockdown e imposição de uso de máscaras. Diversas empresas ou tiveram suas atividades paralisadas por longos períodos ou fecharam totalmente. Escreva um artigo de 500 palavras analisando os efeitos da pandemia da Covid-19 sobre a economia brasileira.
Dados
É qualquer informação fornecida como parte do prompt. Por exemplo:
- Prompt Você recebeu uma tabela de dados contendo informações do número de casos e de mortes por Covid-19 e indicadores de conjuntura econômica a nível de Brasil. Escreva um artigo de 500 palavras analisando os efeitos da pandemia da Covid-19 sobre a economia brasileira.
Saída
Indique o tom, estilo, tamanho e outros atributos desejáveis para o resultado gerado pelo modelo. Por exemplo:
- Prompt Escreva um artigo de 500 palavras, em português do Brasil, analisando os efeitos da pandemia da Covid-19 sobre a economia brasileira.
A presença destes elementos ajuda o modelo de IA generativa a compreender os requisitos da tarefa para gerar o resultado desejado.
Boas práticas de Prompt Engineering
Existem 4 princípios básicos que guiam as boas práticas de Prompt Engineering em modelos de IA generativa. Estes princípios ajudam a gerar respostas em conformidade com o estilo, tom, tamanho e conteúdo desejado.
- Clareza: escreva o prompt de maneira simples, direta ao ponto, sem espaço para ambiguidades. O uso de jargões ou termos complexos pode “atrapalhar” o modelo, preferia uma linguagem simples e acessível.
- Contexto: defina o contexto para que o modelo entenda a situação ou tema do prompt. Inclua informações relevantes, detalhes, pessoas, locais, eventos ou conceitos para melhor compreensão do prompt.
- Precisão: seja específico e inclua exemplos no prompt para que o modelo entregue a resposta desejada. Instruções genéricas geram respostas genéricas.
- Persona: instrua o modelo para assumir um determinado papel, como uma figura histórica, uma profissão, um personagem fictício, etc., para que as respostas geradas estejam em linha com este papel.
Técnicas de Prompt Engineering
Apesar de não existir uma forma certa ou errada de escrever prompts para IAs generativas, algumas técnicas são comumente utilizadas para refinar os resultados dos modelos.
Importante: as respostas dos modelos podem variar, mesmo que você utilize o mesmo prompt.
Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.
Técnica zero-shot
Ao escrever o prompt usando a técnica zero-shot, o usuário não fornece nenhum exemplo para que o modelo possa identificar padrões e ou relações ao gerar a resposta. Por exemplo, o prompt abaixo só fornece uma instrução:
Prompt
Escolha a melhor explicação para a pergunta:
Pergunta: como a taxa de desemprego é calculada?
Explicação1: Divide-se o número de desempregados pelo total da população economicamente ativa (PEA) e multiplica-se por 100.
Explicação2: A taxa de desemprego é calculada pelo IBGE (Instituto Brasileiro de Geografia e Estatística) através da Pnad Contínua (Pesquisa Nacional por Amostra de Domicílios Contínua). A pesquisa é realizada trimestralmente e abrange cerca de 211 mil domicílios em todo o país.
Resultado
Explicação1: Divide-se o número de desempregados pelo total da população economicamente ativa (PEA) e multiplica-se por 100.
Técnica few-shot
Ao escrever o prompt usando a técnica few-shot, o usuário fornece alguns exemplos para que o modelo possa identificar padrões e ou relações ao gerar a resposta. Por exemplo, o prompt a seguir fornece exemplos que enfatizam preferência por respostas curtas:
Prompt
Escolha a melhor explicação para a pergunta:
Pergunta: como a taxa de desemprego é calculada?
Explicação1: Divide-se o número de desempregados pelo total da população economicamente ativa (PEA) e multiplica-se por 100.
Explicação2: A taxa de desemprego é calculada pelo IBGE (Instituto Brasileiro de Geografia e Estatística) através da Pnad Contínua (Pesquisa Nacional por Amostra de Domicílios Contínua). A pesquisa é realizada trimestralmente e abrange cerca de 211 mil domicílios em todo o país.
Resposta: Explicação1
Pergunta: o que é taxa de inflação?
Explicação1: A taxa de inflação é um indicador econômico que mede a variação percentual do nível geral de preços de bens e serviços em um período específico, geralmente um ano. Ela é calculada através de índices de preços, como o IPCA (Índice Nacional de Preços ao Consumidor Amplo) no Brasil, que acompanham a evolução dos preços de uma cesta de produtos e serviços representativa do consumo das famílias.
Explicação2: A taxa de inflação mede o aumento dos preços de produtos e serviços em um determinado período.
Resposta: Explicação2
Pergunta: o que é curva de Phillips?
Explicação1: Uma relação inversa entre desemprego e inflação, ou seja, quanto menor o desemprego, maior a inflação.
Explicação2: A curva de Phillips é um conceito econômico que descreve uma relação entre a taxa de desemprego e a taxa de inflação de um país. Geralmente, presume-se que exista uma relação inversa entre essas duas variáveis, sugerindo que quando a taxa de desemprego é baixa, a taxa de inflação tende a ser alta, e vice-versa.
Resposta: Explicação1
Pergunta: o que é hiato do produto?
Explicação1: O hiato do produto é um indicador macroeconômico que mede a diferença entre o Produto Interno Bruto (PIB) real e o PIB potencial. O PIB real é a produção de bens e serviços da economia em um determinado período, enquanto o PIB potencial é a produção máxima que a economia poderia alcançar se todos os seus recursos estivessem sendo utilizados de forma eficiente.
Explicação2: O hiato do produto mede a diferença entre a produção real da economia e seu potencial máximo.
Resposta:
Resultado
Explicação2
Técnica cadeia de pensamento (Chain-of-Thought)
Ao escrever o prompt usando a técnica cadeia de pensamento, o usuário encoraja o modelo para que o mesmo explique suas decisões ao gerar a resposta, usualmente para resolver tarefas mais complexas. Por exemplo, o prompt a seguir instrui o modelo a resolver uma pergunta e fornece uma outra pergunta e sua resposta lógica para que o modelo identifique corretamente o padrão lógico da resposta desejada.
Prompt
Pergunta: A média do PIB no ano de 2009 foi de $262082 e no último trimestre do ano o PIB foi de $271231. Qual é o carry over (carrego estatístico) do PIB para o ano de 2010?
Resposta: Se o PIB do último trimestre de 2010 foi de $271231 e a média do ano foi de $262082, então a variação do PIB do último trimestre em relação a média foi de $271231 - $262082 = $9149. Supondo que o PIB não cresça em 2010, o carry over é de $9149 / $262082 * 100 = 3,49%.
Pergunta: A média do PIB no ano de 2019 foi de $301140 e no último trimestre do ano o PIB foi de 303295. Qual é o carry over (carrego estatístico) do PIB para o ano de 2020?
Resposta:
Resultado
Se o PIB do último trimestre de 2019 foi de $303295 e a média do ano foi de $301140, então a variação do PIB do último trimestre em relação a média foi de $303295 - $301140 = $2155. Supondo que o PIB não cresça em 2020, o carry over é de $2155 / $301140 * 100 = 0,71%.
Existem algumas outras técnicas de Prompt Engineering, além de novas abordagens serem criadas constantemente. As técnicas expostas aqui fornecem uma boa base para obter melhores respostas de modelos de IA generativa e para se aprofundar em outras abordagens mais complexas e avançadas.
Conclusão
“Um especialista sabe todas as respostas, se você fizer as perguntas certas”. Este é o mesmo princípio usado nas técnicas de Prompt Engineering, com objetivo de otimizar as respostas de aplicações de IA generativa. Neste artigo apresentamos algumas destas técnicas com exemplos práticos em Python.
Tenha acesso ao código e suporte desse e de mais 500 exercícios no Clube AM!
Quer o código desse e de mais de 500 exercícios de análise de dados com ideias validadas por nossos especialistas em problemas reais de análise de dados do seu dia a dia? Além de acesso a vídeos, materiais extras e todo o suporte necessário para você reproduzir esses exercícios? Então, conheça o Clube AM clicando aqui.