Introdução a Prompt Engineering para Inteligência Artificial

“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  /  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:

  •  Escreva um parágrafo pequeno explicando a lei da oferta e da demanda
  •  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:

  •  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:

  •  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:

  •  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:

  •  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:

  •  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:

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.

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:

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: 

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.

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:

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.

Quer aprender mais?

Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Transfer Learning: mostrando porque o Python está na ponta do desenvolvimento

A aprendizagem por transferência (transfer learning) é o reuso de um modelo pré-treinado em um novo problema. Portanto, sua utilização torna-se um avanço enorme para a previsão de diferentes tipos de variáveis, principalmente para aquelas ordenadas no tempo. Mostramos nesta postagem o uso do Transfer Learning com o Python para o caso de Séries Temporais.

Criando Tabelas com o Python: mostrando o poder da linguagem sobre o Excel

Nos dias atuais, pessoas que trabalham com dados estão constantemente confrontados com um dilema: criar uma tabela não tão genial no Excel ou manter em um formato ainda pior, como um dataframe, mas mantendo a flexibilidade de obtenção dos dados. Podemos resolver esse grande problema, unindo a flexibilidade e beleza ao usar a biblioteca great_tables do Python.

Análise do Censo Demográfico com o R

Como podemos analisar dados do Censo Demográfico para produzir pesquisas e implementar políticas públicas? Mostramos nesta postagem o resultado de uma breve análise dos dados preliminares do Censo Demográfico de 2022 usando o R.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.