Engenharia de Prompt: algumas observações introdutórias
Na era da Inteligência Artificial (IA), a Engenharia de Prompt emerge como uma disciplina crucial. Ela se concentra no design estratégico de instruções ou "prompts" para maximizar a eficácia com que os modelos de IA, especialmente os de Processamento de Linguagem Natural (PLN), respondem às solicitações das pessoas usuárias. Neste artigo, exploraremos o conceito de Engenharia de Prompt, suas técnicas e como você pode aplicá-lo para obter respostas mais precisas e úteis.
O que é a Engenharia de Prompt?
A Engenharia de Prompt é uma prática essencial para otimizar a interação com modelos de linguagem de Inteligência Artificial (IA). Imagine conversar com um chatbot ou assistente virtual: a maneira como você formula uma pergunta pode influenciar drasticamente a resposta que recebe. Um prompt bem projetado pode levar a respostas mais relevantes e precisas, enquanto um prompt mal formulado pode resultar em informações vagas ou fora do contexto. Então, o usuário precisa atentar para o seguinte:
1. Formulação Precisa: A Engenharia de Prompt não se trata apenas de escolher as palavras certas. Ela também envolve incluir contexto adequado e aplicar técnicas específicas para refinar a resposta. O objetivo é guiar o modelo de IA na direção correta e obter a melhor resposta possível para um caso específico.
2. Contexto Relevante: Ao criar um prompt, considere o contexto da interação. Perguntas claras e específicas, com informações relevantes, tendem a gerar respostas mais úteis.
3. Estrutura e Formato: Além das palavras, a estrutura do prompt é crucial. Use subtítulos, listas e parágrafos bem organizados para facilitar a compreensão e destacar os pontos-chave.
4. Exemplo de Prompt Bem Projetado:
○ Tópico: "Melhores Práticas de Programação em Python"
○ Prompt: "Quais são as principais dicas para escrever código Python eficiente e limpo? Explique com exemplos."
○ Características:
■ Especificidade: O prompt aborda um tópico específico (melhores práticas em Python).
■ Contexto: Informa que deseja dicas e exemplos.
■ Clareza: A pergunta é direta e objetiva.
Destarte, é preciso elaborar os prompts conforme procedimentos técnicos, visto que:
● Relevância: Um prompt bem elaborado direciona o modelo de IA para informações relevantes, evitando respostas genéricas.
● Eficiência: Reduz a necessidade de iterações adicionais para obter a resposta desejada.
● Personalização: Permite adaptar a interação com base nas necessidades específicas do usuário.
Enfim, a Engenharia de Prompt é uma habilidade valiosa para aproveitar ao máximo os modelos de linguagem inteligente, garantindo que suas perguntas sejam interpretadas corretamente e que as respostas sejam precisas e úteis.
Few-Shot para Engenharia de Prompt
A Engenharia de Prompt é uma técnica essencial para otimizar a interação com modelos de linguagem, como o GPT-4. Uma das abordagens mais eficazes dentro dessa técnica é o few-shot prompting. Vamos explorar o conceito e fornecer exemplos práticos para que você possa aplicar imediatamente.
Few-shot prompting é uma técnica onde fornecemos ao modelo alguns exemplos de entrada e saída para que ele possa aprender a tarefa desejada. Isso é especialmente útil quando queremos que o modelo realize tarefas específicas sem a necessidade de um treinamento extenso. Ao fornecer exemplos no prompt, estamos condicionando o modelo a entender o padrão desejado. Esses exemplos servem como uma espécie de "treinamento rápido" que ajuda o modelo a gerar respostas mais precisas.
Exemplos Práticos
Exemplo 1: Tradução de Idiomas
Prompt:
Traduza as seguintes frases do inglês para o português:
1. Hello, how are you? -> Olá, como você está?
2. What is your name? -> Qual é o seu nome?
3. I love programming. -> Eu amo programar.
4. Can you help me? ->
Saída esperada:
Você pode me ajudar?
Exemplo 2: Classificação de Sentimentos
Prompt:
Classifique o sentimento das seguintes frases como Positivo ou Negativo:
1. I am very happy today. -> Positivo
2. This is the worst day ever. -> Negativo
3. I love this place. -> Positivo
4. I hate waiting in long lines. ->
Saída esperada:
Negativo
Escolha de Exemplos: Selecione exemplos que sejam representativos da tarefa que você deseja que o modelo realize.
Formato Consistente: Mantenha um formato consistente nos exemplos para facilitar o aprendizado do modelo.
Número de Exemplos: Experimente com diferentes números de exemplos (2, 3, 5, etc.) para ver qual quantidade gera os melhores resultados.
Chain-of-Thought Prompting para Engenharia de Prompt
O Chain-of-Thought (CoT) Prompting possibilita que o modelo efetue raciocínios complexos através de etapas intermediárias: é uma técnica que envolve a decomposição de um problema em etapas menores e mais gerenciáveis, permitindo que o modelo de linguagem realize raciocínios complexos de forma mais eficaz. Essa técnica pode ser combinada com few-shot prompting para obter melhores resultados em tarefas que exigem raciocínio antes de responder.
Exemplo de Chain-of-Thought Prompting
Vamos considerar um problema simples de aritmética:
Prompt:
Eu fui ao mercado e comprei 10 maçãs. Dei 2 maçãs ao vizinho e 2 ao reparador. Depois, comprei mais 5 maçãs e comi 1. Com quantas maçãs eu fiquei?
Resposta sem CoT:
11 maçãs
Resposta com CoT:
Vamos pensar passo a passo. Primeiro, você começou com 10 maçãs. Você deu 2 maçãs ao vizinho e 2 ao reparador, então você ficou com 6 maçãs. Depois, você comprou mais 5 maçãs, então agora você tem 11 maçãs. Finalmente, você comeu 1 maçã, então você ficou com 10 maçãs.
Benefícios do Chain-of-Thought Prompting:
· Melhoria no Raciocínio: Permite que o modelo realize raciocínios complexos de forma mais eficaz, decompondo o problema em etapas menores.
· Flexibilidade: Pode ser usado em combinação com zero-shot e few-shot prompting para melhorar a precisão das respostas.
· Aplicabilidade: Útil em tarefas que exigem múltiplas etapas de raciocínio, como problemas matemáticos, análise de texto e tomada de decisões complexas.
RAG (Retrieval-Augmented Generation) para Engenharia de Prompt
A Geração Aumentada por Recuperação (RAG) é uma técnica que combina modelos de linguagem pré-treinados com uma base de conhecimento externa e pesquisável. Essa abordagem permite que o modelo recupere dados relevantes de fontes confiáveis antes de gerar uma resposta, aumentando a precisão e relevância das respostas geradas.
Como Funciona o RAG:
· Separação da Base de Conhecimento: A base de conhecimento é dividida em blocos de tamanho fixo.
· Vetorização: Cada bloco é vetorizado usando um modelo de embeddings.
· Busca Vetorial: Durante a inferência, a entrada/consulta é vetorizada e usada para encontrar os blocos relevantes.
· Incorporação no Prompt: Os blocos relevantes são adicionados ao prompt do modelo de linguagem.
· Benefícios do RAG Precisão Melhorada: Ao utilizar dados atualizados e específicos, o modelo gera respostas mais precisas.
· Relevância: As respostas são mais relevantes ao contexto da consulta.
· Economia: Não há necessidade de treinar novamente o modelo com novos dados.
Exemplos de Prompts
Exemplo 1: Perguntas e Respostas
Prompt:
Pergunta: Qual é a capital da França?
Contexto: [Bloco de texto relevante sobre a França]
Resposta:
Exemplo 2: Geração de ConteúdoPrompt:
Tópico: Benefícios da Computação em Nuvem
Contexto: [Bloco de texto relevante sobre computação em nuvem]
Texto:
Para implementar um pipeline RAG, siga estes passos:
· Criação da Base de Conhecimento: Colete e organize os dados relevantes.
· Vetorização: Utilize um modelo de embeddings para vetorizar os dados.
· Configuração da Busca Vetorial: Configure um mecanismo de busca para encontrar os blocos relevantes.
· Engenharia de Prompt: Crie prompts que incorporem os blocos de contexto relevantes.
Role Playing para Engenharia de Prompt
A engenharia de prompt é a arte de criar instruções precisas para modelos de linguagem de IA, como o GPT-4, a fim de obter respostas desejadas. Uma técnica eficaz para aprimorar essa habilidade é o role playing, onde o engenheiro de prompt assume diferentes papéis para simular cenários variados e testar a eficácia dos prompts.
Role playing envolve a simulação de diferentes contextos e personagens para criar prompts que direcionem a IA a gerar respostas específicas. Essa técnica ajuda a entender como a IA responde a diferentes tipos de instruções e a refinar os prompts para obter resultados mais precisos e relevantes.
Exemplos de Role Playing
Professor de História
Prompt: "Você é um professor de história especializado na Revolução Francesa. Explique os principais eventos que levaram à queda da Bastilha."
Resposta Esperada: Uma explicação detalhada sobre os eventos históricos que culminaram na queda da Bastilha.
Consultor de Negócios
Prompt: "Você é um consultor de negócios. Quais são as melhores estratégias para uma startup de tecnologia crescer no mercado atual?"
Resposta Esperada: Estratégias de crescimento, incluindo marketing digital, inovação de produto e parcerias estratégicas.
Médico
Prompt: "Você é um médico especializado em cardiologia. Quais são os sintomas e tratamentos comuns para a insuficiência cardíaca?"
Resposta Esperada: Descrição dos sintomas da insuficiência cardíaca e os tratamentos recomendados.
Benefícios do Role Playing
· Versatilidade: Permite testar a IA em diferentes cenários e ajustar os prompts conforme necessário.
· Precisão: Ajuda a criar prompts mais específicos e claros, resultando em respostas mais precisas.
· Criatividade: Estimula a criatividade ao explorar diferentes contextos e personagens.
Exemplos de Prompts para Testar
Jornalista
Prompt: "Você é um jornalista investigativo. Escreva um artigo sobre os impactos das mudanças climáticas nas comunidades costeiras."
Resposta Esperada: Um artigo detalhado sobre os efeitos das mudanças climáticas nas áreas costeiras, incluindo dados e testemunhos.
Desenvolvedor de Software
Prompt: "Você é um desenvolvedor de software. Explique como implementar uma API RESTful em Python."
Resposta Esperada: Instruções passo a passo sobre a implementação de uma API RESTful usando Python.
Role playing é uma técnica poderosa na engenharia de prompt, permitindo criar instruções mais eficazes e obter respostas mais precisas de modelos de IA. Ao simular diferentes papéis e cenários, os engenheiros de prompt podem refinar suas habilidades e maximizar o potencial das ferramentas de IA.
Princípios para a Criação de um Prompt
Se você está começando a explorar o mundo da Inteligência Artificial (IA), entender como criar prompts eficientes é fundamental. Um prompt é a entrada que fornecemos a um modelo de linguagem, como o ChatGPT. A ideia é que, ao receber essa entrada, o modelo a processe em sua rede neural e nos forneça uma resposta. Vamos abordar os princípios essenciais para criar prompts que gerem respostas precisas e úteis:
1. Clareza e Especificidade:
Um prompt claro e específico evita ambiguidades e garante que o modelo compreenda corretamente.
○ Exemplo de Prompt:
■ "Resuma este artigo em 100 palavras, destacando os principais argumentos e conclusões."
■ "Explique os benefícios da energia solar em três parágrafos, focando em economia, sustentabilidade e inovação tecnológica."
Prompts claros e específicos ajudam a IA a entender exatamente o que é esperado, resultando em respostas mais precisas e relevantes. A clareza na formulação do prompt reduz ambiguidades e direciona a IA para fornecer informações mais úteis e focadas.
○ Exemplos de Prompts FewShot:
■ "Liste três vantagens da inteligência artificial na medicina e explique cada uma com um exemplo prático."
■ "Descreva dois desafios enfrentados pela educação online e proponha soluções para cada um."
○ Exemplos de Prompts Chain of Thought:
■ "Explique o processo de fotossíntese passo a passo, começando pela absorção de luz solar até a produção de glicose."
■ "Descreva como a Revolução Industrial influenciou a urbanização, detalhando as mudanças sociais e econômicas em três etapas."
○ Exemplos de Prompts Combinados (FewShot + Chain of Thought):
■ "Liste três impactos positivos da globalização na economia mundial e, em seguida, explique cada impacto detalhadamente, incluindo exemplos históricos."
■ "Descreva duas teorias sobre a origem do universo e, para cada teoria, explique os principais argumentos e evidências em três etapas."
○ Uso de Variáveis e Role Playing:
■ Variáveis: "Explique o conceito de {tecnologia} e como ela pode ser aplicada na {indústria}."
■ Role Playing: "Imagine que você é um consultor de sustentabilidade. Explique para um grupo de empresários como a adoção de práticas ecológicas pode beneficiar seus negócios."
Esses exemplos mostram como a clareza e especificidade nos prompts podem ser aplicadas em diferentes contextos, utilizando técnicas como few-shot, chain of thought e combinações, além de variáveis e role playing para enriquecer a interação com a IA.
2. Contexto Relevante:
○ Fornecer contexto externo ajuda o modelo a atingir melhores respostas.
○ Exemplo de Prompt:
■ "Explique o conceito de machine learning como se estivesse falando com um estudante do ensino médio."
■ "Descreva a importância da biodiversidade para um grupo de alunos do ensino fundamental, usando exemplos simples e claros."
Fornecer contexto sobre o público-alvo ou o nível de detalhe desejado pode melhorar significativamente a qualidade da resposta. A contextualização ajuda a IA a adaptar a linguagem, o nível de complexidade e os exemplos utilizados, tornando a resposta mais relevante e compreensível para o destinatário.
○ Exemplos de Prompts Few-Shot:
■ "Liste três aplicações de machine learning na vida cotidiana e explique cada uma de forma que um estudante do ensino médio possa entender."
■ "Descreva dois impactos ambientais da poluição do ar e proponha soluções simples para um público de jovens estudantes."
○ Exemplos de Prompts Chain of Thought:
■ "Explique como funciona o aprendizado supervisionado em machine learning, começando pela coleta de dados até a criação do modelo preditivo, como se estivesse ensinando um estudante do ensino médio."
■ "Descreva o ciclo da água, detalhando cada etapa do processo, para um grupo de alunos do ensino fundamental."
○ Exemplos de Prompts Combinados (Few-Shot + Chain of Thought):
■ "Liste três benefícios da energia renovável e, em seguida, explique cada benefício detalhadamente, incluindo exemplos práticos, para um público de estudantes do ensino médio."
■ "Descreva duas teorias sobre a origem do universo e, para cada teoria, explique os principais argumentos e evidências em três etapas, como se estivesse falando com alunos do ensino médio."
○ Uso de Variáveis e Role Playing:
■ Variáveis: "Explique o conceito de {tecnologia} e como ela pode ser aplicada na {indústria}, adaptando a explicação para um público de estudantes do ensino médio."
■ Role Playing: "Imagine que você é um professor de ciências. Explique para seus alunos do ensino fundamental como a fotossíntese funciona, usando exemplos simples e analogias do dia a dia."
3. Dados de Entrada:
○ Os dados de entrada direcionam a resposta do modelo e podem ser modificados conforme necessário.
4. Indicador de Saída:
○ Define o tipo ou formato da resposta esperada.
5. Iteratividade no Desenvolvimento de Prompts:
○ A criação de um bom prompt é um processo iterativo.
○ Refine o prompt com base nas respostas experimentais do modelo até obter resultados consistentemente bons.
Exemplo de Prompt:
○ "Revise a resposta anterior para incluir mais detalhes sobre a segurança dos dados."
○ "Aprimore a explicação fornecida anteriormente sobre a teoria da relatividade, adicionando exemplos práticos."
Refinar e iterar sobre prompts anteriores pode ajudar a melhorar a qualidade das respostas ao longo do tempo. Essa técnica permite que a IA aprimore suas respostas com base em feedback e novas informações, garantindo uma evolução contínua na precisão e profundidade das respostas.
Exemplos de Prompts FewShot:
○ "Revise os três benefícios da energia solar mencionados anteriormente e adicione um exemplo prático para cada um."
○ "Aprimore a lista de métodos de conservação de água fornecida anteriormente, incluindo mais detalhes sobre a implementação de cada método."
Exemplos de Prompts Chain of Thought:
○ "Revise a explicação do processo de fotossíntese fornecida anteriormente, detalhando cada etapa com mais precisão e adicionando exemplos específicos."
○ "Aprimore a descrição do ciclo de vida de uma estrela, explicando cada fase com mais detalhes e fornecendo exemplos de estrelas conhecidas em cada estágio."
Exemplos de Prompts Combinados (FewShot + Chain of Thought):
○ "Revise os impactos positivos da inteligência artificial na medicina mencionados anteriormente, detalhando cada impacto com exemplos práticos e explicando o processo de implementação em três etapas."
○ "Aprimore as teorias sobre a formação do universo discutidas anteriormente, explicando os principais argumentos e evidências em três etapas e fornecendo exemplos históricos."
Uso de Variáveis e Role Playing:
○ Variáveis: "Revise a explicação sobre {tecnologia} fornecida anteriormente, adicionando mais detalhes sobre sua aplicação na {indústria} e exemplos práticos."
○ Role Playing: "Imagine que você é um consultor de segurança de dados. Revise a política de segurança de uma empresa fictícia, adicionando recomendações detalhadas para melhorar a proteção dos dados."
6. Encadeamento de Prompts (Chaining):
○ Quebre um prompt maior em prompts menores e mais específicos.
○ Isso melhora a qualidade das respostas.
Exemplo de Prompt:
■ "Liste os principais benefícios da computação em nuvem e, em seguida, explique cada um em detalhes."
■ "Descreva as etapas para resolver uma equação quadrática, detalhando cada passo."
Dividir tarefas complexas em partes menores e mais gerenciáveis pode ajudar a IA a fornecer respostas mais completas e organizadas. Essa abordagem permite que a IA aborde cada parte da tarefa de forma sistemática, garantindo que todos os aspectos sejam cobertos de maneira clara e detalhada.
○ Exemplos de Prompts FewShot:
■ "Liste cinco vantagens do uso de energias renováveis e explique cada uma brevemente."
■ "Descreva três métodos de conservação de água e forneça um exemplo prático para cada método."
○ Exemplos de Prompts Chain of Thought:
■ "Explique como funciona o processo de fotossíntese, começando pela absorção de luz solar até a produção de glicose, detalhando cada etapa."
■ "Descreva o ciclo de vida de uma estrela, desde a formação até a fase de supernova, explicando cada fase em detalhes."
○ Exemplos de Prompts Combinados (FewShot + Chain of Thought):
■ "Liste três impactos positivos da inteligência artificial na medicina e, em seguida, explique cada impacto detalhadamente, incluindo exemplos práticos."
■ "Descreva duas teorias sobre a formação do universo e, para cada teoria, explique os principais argumentos e evidências em três etapas."
○ Uso de Variáveis e Role Playing:
■ Variáveis: "Explique o conceito de {tecnologia} e como ela pode ser aplicada na {indústria}, detalhando cada aplicação em três etapas."
■ Role Playing: "Imagine que você é um consultor ambiental. Explique para uma comunidade local as etapas para implementar um programa de reciclagem, detalhando cada passo e seus benefícios."
Ao interagir com modelos de IA, como o ChatGPT, refine seus prompts para obter respostas mais assertivas. Por exemplo, ao pedir um resumo de um artigo, use um prompt como "Resuma este artigo em 100 palavras, destacando os principais argumentos e conclusões". Isso guiará o modelo para produzir informações mais precisas e de maior qualidade.
Um exemplo de projeto feito com Engenharia de Prompts é o laboratório Explore Microsoft Copilot in Microsoft Edge do Microsoft Learn. Inclusive, o leitor pode conferir o conferir o repositório Plano de negócios desenvolvido com assistência da I.A. MS Copilot através do browser MS Edge no GitHub para ver um exercício deste laboratório.
Outro exemplo que pode ser encontrado no GitHub é o Projeto de Elaboração de um Star Schema; este projeto foi feito com assistência de Inteligência Artificial. Eis o prompt que foi usado:
<input>
<requirements>
<view>
diagrama do modelo
</view>
</requirements>
<reference>
Descrição do desafio de modelagem dimensional
Objetivo:
Criar o diagrama dimensional – star schema – com base no diagrama relacional disponibilizado.
Foco:
Professor – objeto de análise
Vocês irão montar o esquema em estrela com o foco na análise dos dados dos professores. Sendo assim, a tabela fato deve refletir diversos dados sobre professor, cursos ministrados, departamento ao qual faz parte.... Por aí vocês já têm uma ideia do que deve compor a tabela fato do modelo em questão.
Obs.: Não é necessário refletir dados sobre os alunos!
O que deve ser feito?
Deverá ser criada a tabela Fato que contêm o contexto analisado. Da mesma forma, é necessária a criação das tabelas dimensão que serão compostas pelos detalhes relacionados ao contexto.
Por fim, mas não menos importante, adicione uma tabela dimensão de datas. Para compensar a falta de dados de datas do modelo relacional, suponha que você tem acesso aos dados e crie os campos necessários para modelagem.
Ex: data de oferta das disciplinas, data de oferta dos cursos, entre outros. O formato, ou melhor, a granularidade, não está fixada. Podem ser utilizados diferentes formatos que correspondem a diferentes níveis de granularidade.
<attachment>
Utilize a imagem anexa como parte da referência.
</attachment>
</reference>
<about>
<scope>
Modelagem do banco de dados para análise de dados utilzando o Power BI
<observação>
a modelagem deve ser um para muitos, i.e., 1:N
a modelagem precisa ser Star Schema
a tabela fato é a tabela Professor
</observação>
</scope>
<description>
criação de um diagrama star-schema, cuja tabela fato é Professor
</description>
<role>
Comporte-se como se fosse um Data Analyst que precisa criar um Star Schema para fazer uma análise de dados utilizando o Power BI, conforme informações da tag reference e da imagem anexa ao prompt.
</role>
<goal>
Seguir as instruções da tag reference para criar um diagrama do tipo Star Schema, cuja tabela fato é a tabela Professor
<add>
adicione uma tabela dimensão de datas, conforme determinado pela tag reference
</add>
</goal>
</about>
</input>
Vale ressaltar: a Engenharia de Prompt é uma ferramenta poderosa para obter resultados mais coerentes e relevantes. Investir em um bom conteúdo e seguir os critérios de pontuação e avaliação aumentará suas chances de sucesso. Divirta-se no processo de praticar a elaboração de prompts!
Referências
· O que é a Engenharia de Prompt - Alura
· O que é engenharia de prompt e como isso pode ajudar você?
· O que é engenharia de prompt e como interage com a IA | Asimov Academy
· O que é engenharia de prompt? | IBM
· Os Princípios de um Bom Prompt | Asimov Academy
· Prompts para Resumo e Extração: Um Guia para Iniciantes
· Engenharia de Prompt para não-técnicos: um guia prático
Artigo elaborado com assistência da Inteligência Artificial Microsoft Copilot pelo browser MS Edge.