O que é prompt engineering e sua utilidade em IA?
A depender do quanto você tem se interessado e lido a respeito das diferentes plataformas de inteligência artificial generativa, é provável que já tenha se deparado com o termo prompt engineering ou seu correspondente em português, engenharia de prompt.
Você sabe o que é e para que serve? Por que é importante conhecer sobre? Quais as vantagens do seu uso junto às IAs generativas?
Então vamos falar um pouco a respeito...
O que é prompt engineering / engenharia de prompt?
A engenharia de prompt (ou prompt engineering, se preferir) consiste de elaborar instruções específicas, detalhadas e contextualizadas para um modelo de inteligência artificial generativa, como o Bard e o Bing Chat, que usa o ChatGPT, com o objetivo de que o resultado entregue por ela, seja o mais próximo possível do que se precisa, quer e espera.
O “problema” desse termo, tal como muitas das terminologias associadas a tecnologia, é que pode parecer mais complexo do que realmente é, sendo que na maioria dos casos, basta pesquisar e refletir um pouco.
Prompt não é uma palavra nova, mas é pouco conhecida de quem não é de TI, área na qual ela é bastante comum.
O seu surgimento em informática coincide com os primeiros sistemas operacionais, os quais não tinham ambientes gráficos e clicáveis como são todos atualmente, mas em vez disso, dispunham apenas de uma interface de linha de comando.
É nada mais do que aquele pequeno quadradinho ou tracinho piscando na tela dos computadores dos hackers nos filmes de Hollywood, a espera de que ele digite alguma coisa.
Nesses sistemas, o usuário precisava digitar comandos para que o sistema executasse algo e o prompt é apenas o indicativo do sistema, que ele estava pronto para receber esse comando.
A palavra "prompt" vem do inglês e significa "incitação", ou "sinal", ou ainda "estímulo".
Na época do antigo e saudoso MS-DOS, na tela em fundo preto, a frente da letra indicativa da unidade de disco, dos dois pontos e da barra invertida, o cursor piscando era o sinal de que o sistema estava pronto para receber o comando.
Atualmente, os prompts ainda são usados em sistemas operacionais baseados em linha de comando, mas em situações particulares, como por exemplo, ao executar o Windows PowerShell, ou no caso do Linux, por meio de uma janela de terminal.
Por fim, temos a engenharia e que contrariamente a ideia sofisticada que muitos têm, é nada mais do que a área que tem como papel usar o conhecimento científico para fornecer soluções práticas e eficientes para problemas quotidianos.
No contexto de inteligência artificial generativa, a engenharia de prompt tem por objetivo fornecer instruções à IA para que ela gere soluções tão boas e práticas quanto for possível.
A importância da engenharia de prompt / prompt engineering
Apesar de não se parecem em nada com os prompts dos primeiros sistemas operacionais, nem das suas versões modernas (Windows Power Shell ou terminal Linux), eles ainda nos acompanham atualmente.
Basta acessar a tela inicial do Google ou do Bing e eles estão lá. A diferença é todo o entorno, mas aquela barra vertical piscante, ainda é o sinal de que ambos estão prontos para efetuar uma pesquisa qualquer.
Outra diferença importante, é que a maioria das pessoas se acostumou a fazer pesquisas cada vez mais curtas e simples. Não é raro que diante da intenção de pedir uma pizza, coloquemos apenas essa palavra e nada mais.
Se for no Google e dependendo de alguns outros fatores, é provável que na página de resultados apareça um pequeno mapa exibindo sua localização e os estabelecimentos mais próximos. A seguir uma pequena lista dos negócios cadastrados no “perfil da empresa” (antigo Google Meu Negócio), bem como algumas fotos de pizza, receitas da iguaria e até notícias relacionadas.
Ou seja, um pouco de vários conteúdos sobre pizza e por isso, são boas as chances de que algum desses resultados lhe sirva.
Acostumamo-nos a essa facilidade ao longo dos anos e da evolução dos algoritmos que estão cada vez melhores em identificar nossas intenções, exigindo cada vez menos e entregando mais.
No entanto, a engenharia de prompt vai justamente na direção contrária.
Apesar da maioria das IAs generativas serem capazes de responder alguma coisa e satisfazer pelo menos parcialmente a necessidade do usuário, ainda que se façam consultas bem curtas, elas conseguem ser bem mais específicas e menos generalistas que as buscas que estamos acostumados a fazer.
Em alguns casos, senão nos entregam todo o resultado, boa parte dele pode ser alcançável.
Ou seja, digamos que no passado recente você fizesse várias pesquisas e clicasse em diversos dos resultados apresentados, para ter possíveis ideias para um jantar para 12 pessoas, com entradas, prato principal e uma sobremesa, sendo que são 3 casais e um deles é vegano, cada um com dois filhos em idades entre 8 e 12 anos, ao passar todas essas informações via prompt, a IA pode entregar o cardápio todo.
Esse exemplo pode ser expandido e aplicável a praticamente qualquer situação, como alguma rotina interna da empresa, ou quem sabe um plano de Marketing Digital. Ainda que eventualmente sejam necessários ajustes e melhorias, é melhor do que partir do zero, contribuindo para resultados mais precisos, completos, direcionados, relevantes e úteis.
Como praticar e desenvolver engenharia de prompt / prompt engineering?
Como vimos, a engenharia de prompt consiste de direcionar o modelo de IA generativa para a produção de resultados que se quer, precisa e espera.
Da mesma forma que ocorre quando qualquer tarefa é atribuída a uma pessoa, quanto mais minuciosas forem as instruções, detalhes do contexto forem fornecidos e eventuais particularidades, melhores devem ser os resultados e sua relevância.
Tenha em mente os seguintes aspectos no processo de praticar a engenharia de prompt:
-
Especificidade – quanto mais específico for o seu prompt, mais direcionada e relevante será a resposta da IA. Não se esqueça que contrariamente às pesquisas que estamos habituados, ao ser vago, também se tem uma resposta genérica;
-
Contexto – consiste das circunstâncias nas quais a situação ocorre e as variáveis presentes. No exemplo que demos, informar que se trata de um jantar, que há adultos e crianças e as restrições alimentares de um dos casais, estamos diante de um contexto diferente de uma refeição qualquer para 12 adultos;
-
Objetividade – não confundir contexto e especificidade com instruções excessivamente longas ou abrangentes, o que pode produzir resultados confusos. Delimite o escopo do prompt para que a IA possa se concentrar na tarefa que foi atribuída, evitando respostas irrelevantes e a melhorar a eficiência do modelo;
-
Realidade – procure trazer tantos elementos da realidade quanto forem possíveis, afastando-se de situações hipotéticas e improváveis;
-
Palavras-chave - Use palavras-chave relevantes no seu prompt para ajudar a IA a gerar o resultado desejado;
-
Evite vieses – não inclua vieses que possam levar ao modelo de inteligência artificial a gerar uma resposta tendenciosa ou com um resultado forçado, exceto se for o caso da técnica que veremos logo mais, conhecida como prompting da árvore de pensamento;
-
Prática – por ser algo novo, é preciso experimentar e usar a criatividade, testando uma série de entradas de texto, a fim de observar como se dá a interação da IA generativa de acordo com as mudanças nas entradas.
Não é nosso propósito esgotar o assunto, já que não se trata de um curso de prompting engineering, no entanto, há também algumas técnicas que podem e devem testadas quanto aos resultados que podem produzir:
-
Prompting de cadeia de pensamento – envolve desmembrar uma situação mais complexa em partes menores mas que tenham conexão lógica, de forma que o modelo de IA apresente a solução em etapas intermediárias. Ainda usando o exemplo do jantar, poderíamos ter nos concentrado primeiramente nas entradas, depois nos pratos principais e por fim, nas sobremesas, não esquecendo o contexto;
-
Prompting da árvore de pensamento – esse já é um fluxo que normalmente realizamos quando os resultados de uma pesquisa tradicional nos remetem a outras pesquisas. Por meio dessa técnica, devemos solicitar que o modelo gere as próximas etapas possíveis ou os desdobramentos das respostas anteriores, o que produz respostas em um esquema dos galhos de uma árvore;
-
Prompting maiêutico – parece-se com o anterior, mas diferentemente dele, a medida que é solicitado ao modelo a explicar cada uma das partes da explicação anterior, as explicações que não forem adequadas, aplicáveis ou inconsistentes, são descartadas;
-
Prompting de ajustes sucessivos – por meio dessa técnica a cada resposta são incluídos novos fatores, informações relevantes, aumentando sucessivamente a complexidade da resposta até que ela atinja um nível satisfatório;
-
Prompting de poucos tiros – esses tipos de prompts fornecem à IA algumas informações sobre o resultado desejado, como por exemplo, que entre as opções de pratos principais, deve-se ter ao menos uma opção que contenha no preparo uma variedade de cogumelos;
A escolha da técnica de engenharia de prompt mais adequada depende de vários fatores, incluindo o tipo de resultado que você deseja obter, a complexidade do resultado e a quantidade de informação que você está disposto ou é possível fornecer à IA.
Conclusão
A engenharia de prompt vem sendo desenvolvida como atividade que visa criar comandos e interações eficazes na obtenção de resultados das IAs generativas.