Otimizando tarefas com técnicas de Engenharia de Prompt aplicadas em IA generativa

Imagine que você queria contratar um profissional para prever séries temporais na sua empresa. Que tipo de perfil você deveria procurar?

Economistas, Cientistas de Dados, Estatísticos, Engenheiros, etc., são todos perfis candidatos para essa tarefa. Como são muitas possibilidades e o seu tempo é limitado, alguns filtros devem ser feitos. E é neste ponto que entra em cena a Inteligência Artificial (IA), atuando no apoio para a tomada de decisão de quem contratar.

Para entender como a IA pode ajudar a otimizar este tipo de tarefa, precisamos entender três coisas:

  • O que é engenharia de prompt?
  • O que é a técnica Árvore de Pensamento?
  • Como aplicar técnicas de engenharia de prompt para otimizar tarefas de decisão?

Em suma, neste artigo vamos mostrar como fazer a Inteligência Artificial pensar como um ser humano!

Aprenda a coletar, processar e analisar dados na formação de Do Zero à Análise de Dados Econômicos e Financeiros com Python.

O que é engenharia de prompt?

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, com 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

Associado aos fundamentos básicos do prompt, as técnicas de engenharia de prompt podem otimizar ainda mais os resultados.

O que é a técnica Árvore de Pensamento?

Em essência, a técnica de engenharia de prompt conhecida como Árvore de Pensamento (Chain-of-Thought) solicita ao modelo de IA generativa um processo de pensamento etapa por etapa, considerando caminhos alternativos que podem levar a algum lugar ou não. Ao implementar esta técnica, modelos de IA generativa conseguem resolver problemas mais complexos e corrigir seus próprios erros, em um processo iterativo.

Yao et al. (arXiv:2305.10601)
Yao et al. (arXiv:2305.10601)
Quando há a necessidade de resolver um problema complexo, um ser humano tende a explorar uma árvore de soluções/pensamentos, avaliando o que pode funcionar e o que pode não funcionar, retornando a “ramificações” anteriores se necessário e corrigindo erros de análise para encontrar a melhor solução. A técnica Árvore de Pensamento faz com que o modelo de IA generativa utilize este mesmo processo.E o que tudo isso tem a ver com contratar um profissional para prever séries temporais?

Como aplicar técnicas de engenharia de prompt para otimizar tarefas de decisão?

Podemos utilizar a técnica Árvore de Pensamento para solicitar a um modelo de IA generativa uma simulação de como seria o desempenho de cada perfil candidato no trabalho, possibilitando rankear melhores perfis. Tomando como exemplo uma tarefa como prever séries temporais, podemos instruir o modelo da seguinte forma:

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.

  • Instruções:Identify and behave as three different experts, an Economist, an Data Scientist and a Statistician, that are appropriate to forecasting a time series.All experts will write down their forecast for the asked date period and their thinking about the forecasting value, then share it with the group. Then, all experts will go on to the next date period, etc.

    At each date period, whenever possible, each expert refines their forecasting strategy and builds upon the thoughts and past forecast errors of others and itself, acknowledging their contributions. At each date period, the user will provide 1) the last forecast error, 2) the date period to be forecasted and 3) the historical data available.

    They continue until the user says to stop. For clarity, your entire response should be in CSV table like format with 3 columns: expert, forecast value, and thinking. Return the CSV table with a “;” delimiter for columns and nothing more.

    The question is:

Dessa forma, fazemos com que o modelo explore múltiplos caminhos, por múltiplas perspectivas diferentes, possibilitando análise e avaliação de erros entre cada possibilidade. Essa é uma estrutura de pensamento similar à humana.

Em seguida, fornecemos o seguinte prompt ao modelo para começar o processo:

  • Prompt:User input: I want to forecast Brazil’s inflation rate, measured in monthly % variation by IPCA from IBGE. Provide a forecast value for May 2023. The historical available data is attached in this CSV file. Answer:

Com estes inputs, teremos como primeira rodada de resposta do modelo o seguinte:

expert;forecast value;thinking
Economist;0.5;Inflation is slowing down, but core inflation is still high. Considering the recent monetary policy decisions, I expect a gradual decrease in the upcoming months, although external shocks could change the scenario.
Data Scientist;0.65;Based on a simple ARIMA model using the last 12 months of data, the forecast for May 2023 is 0.65.
Statistician;0.6;Using an ETS model, my forecast is 0.6. The model suggests a decreasing trend in inflation, which aligns with the economist's view, but we also need to be careful with external shocks.

Cada ramificação desta Árvore de Pensamentos tomou uma decisão sobre a tarefa proposta, além de fornecer suas linhas de raciocínio. Os valores, obviamente, não são oriundas de estimativas baseadas em modelos ajustados/treinados. Até então, os modelos LLM não possuem a capacidade de estimar um modelo de machine learning, por exemplo, para então fornecer uma previsão.

Se continuarmos para a próxima etapa, podemos informar ao modelo o “erro” na resposta individual anterior e solicitar uma nova previsão para o futuro. Fazendo isso, iterativamente, para o período de um ano, teremos:

forecast value thinking data
expert
Economist 0.15 All forecasts were too high last time. This su... 2023-06-01
Data Scientist 0.40 It seems that the ARIMA model is not capturing... 2023-06-01
Statistician 0.30 My forecast is 0.3, lowering the smoothing par... 2023-06-01
Economist 0.05 The disinflation process seems to be even stro... 2023-07-01
Data Scientist 0.10 Adding a seasonal component didn't improve the... 2023-07-01
Statistician 0.10 I will follow the economist's reasoning about ... 2023-07-01
Economist -0.10 The lower-than-expected July result confirms t... 2023-08-01
Data Scientist 0.05 Adding the interest rate significantly improve... 2023-08-01
Statistician 0.03 Despite the recent success, relying solely on ... 2023-08-01
Economist 0.25 My deflation prediction did not materialize. W... 2023-09-01
Data Scientist 0.10 My model, incorporating the interest rate, pre... 2023-09-01
Statistician 0.15 The recent uptick in inflation might indicate ... 2023-09-01
Economist 0.35 The recent inflation numbers seem to confirm a... 2023-10-01
Data Scientist 0.20 After incorporating relevant economic indicato... 2023-10-01
Statistician 0.28 My previous upward adjustment seems to have be... 2023-10-01
Economist 0.30 Although last month's inflation was lower than... 2023-11-01
Data Scientist 0.32 My model, incorporating economic indicators, c... 2023-11-01
Statistician 0.25 While the recent trend suggests increasing inf... 2023-11-01
Economist 0.35 Although recent inflation figures have been sl... 2023-12-01
Data Scientist 0.30 My model, incorporating economic indicators, s... 2023-12-01
Statistician 0.30 Given the recent stability in inflation and co... 2023-12-01
Economist 0.40 The higher-than-expected inflation in December... 2024-01-01
Data Scientist 0.45 The December result also surprised my model. I... 2024-01-01
Statistician 0.40 The significant jump in December's inflation i... 2024-01-01
Economist 0.45 The January inflation figure was slightly abov... 2024-02-01
Data Scientist 0.40 After reviewing and adjusting the weights of t... 2024-02-01
Statistician 0.43 The January result confirms the upward trend, ... 2024-02-01
Economist 0.60 We significantly underestimated inflation in F... 2024-03-01
Data Scientist 0.55 The February result highlights the limitations... 2024-03-01
Statistician 0.50 While the February result was surprising, I am... 2024-03-01
Economist 0.25 The sharp drop in March inflation was unexpect... 2024-04-01
Data Scientist 0.30 The March result reinforces the need for a mor... 2024-04-01
Statistician 0.20 The significant change in March's inflation ne... 2024-04-01

Com estes resultados podemos avaliar que tipo de perfil profisional desempenharia melhor na tarefa proposta (considerando as limitações do exercício e que isso se trata apenas de uma simulação).

Os erros de previsão de cada profissional foram os seguintes:

                    expert  erro
2023-06-01       Economist -0.23
2023-06-01  Data Scientist -0.48
2023-06-01    Statistician -0.38
2023-07-01       Economist  0.07
2023-07-01  Data Scientist  0.02
2023-07-01    Statistician  0.02
2023-08-01       Economist  0.33
2023-08-01  Data Scientist  0.18
2023-08-01    Statistician  0.20
2023-09-01       Economist  0.01
2023-09-01  Data Scientist  0.16
2023-09-01    Statistician  0.11
2023-10-01       Economist -0.11
2023-10-01  Data Scientist  0.04
2023-10-01    Statistician -0.04
2023-11-01       Economist -0.02
2023-11-01  Data Scientist -0.04
2023-11-01    Statistician  0.03
2023-12-01       Economist  0.21
2023-12-01  Data Scientist  0.26
2023-12-01    Statistician  0.26
2024-01-01       Economist  0.02
2024-01-01  Data Scientist -0.03
2024-01-01    Statistician  0.02
2024-02-01       Economist  0.38
2024-02-01  Data Scientist  0.43
2024-02-01    Statistician  0.40
2024-03-01       Economist -0.44
2024-03-01  Data Scientist -0.39
2024-03-01    Statistician -0.34
2024-04-01       Economist  0.13
2024-04-01  Data Scientist  0.08
2024-04-01    Statistician  0.18

O que leva a um erro mediano de:

expert

Data Scientist    0.04
Economist         0.02
Statistician      0.03
dtype: float64

E um erro médio de:

expert
Data Scientist    0.020909
Economist         0.031818
Statistician      0.041818
dtype: float64

Sendo assim, poderíamos focar no processo de contratação de economistas se quisermos previsões acuradas para a taxa de inflação.

Conclusão

Convidamos um Economista, um Cientista de Dados e um Estatístico para uma competição de previsão. A cada mês, por um ano, eles deveriam compartilhar suas previsões e suas estratégias entre si, viabilizando calibragens. Neste artigo mostramos como foi o desempenho de cada um e o que isso tudo tem a ver com IA e Engenharia de Prompt.

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

Como treinar e selecionar os melhores modelos de previsão no Python?

Em previsão, há uma infinidade de modelos que podem ser usados. O processo de escolha do(s) modelo(s) deve ser empírico-científico, usando métodos que visem avaliar a generalização dos algoritmos para dados novos. Neste artigo, mostramos como implementar a metodologia de validação cruzada com algoritmos de machine learning no Python, exemplificando para a previsão do IPCA.

Como selecionar variáveis para modelos de previsão no Python?

Em oposição à crença popular, grande parte dos modelos de machine learning não produzem previsões magicamente. É papel do cientista de dados executar uma boa engenharia de variáveis para não cair no clássico problema de “garbage in, garbage out” (GIGO) em aprendizado de máquina. Neste sentido, aprender a fazer uma boa seleção de variáveis é fundamental e neste artigo exploramos algumas possibilidades práticas usando o Python.

Resultado IPCA-15 - Novembro/2024

A Análise Macro apresenta os resultados do IPCA-15 de Novembro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

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.