A jornada da Engenharia de Prompt.
- #IA Generativa
- #Engenharia de Prompt
Introdução
“Minsky, Marvin: ‘O que estamos tentando criar é uma inteligência que se enquadre entre o processamento de informações das máquinas e a complexidade do comportamento humano.’”
In: MINSKY, Marvin. The Society of Mind. New York: Simon & Schuster, 1986. p. 1.
Em um passado não muito distante, no imaginário de muitas pessoas, haveria um tempo em que poderíamos apenas digitar algo em uma “máquina” e receber a resposta àquela requisição. Isso pode parecer um pouco "estranho", mas há apenas um pouco mais de 3 décadas, esse era o cenário...
Depois de um período chamado de "Inverno das IA’s", que data às décadas de 70 e 80, devido a um ceticismo quanto à possibilidade de avanços nesse campo advindo das limitações devido à falta de poder computacional da época e à complexidade dos problemas, houve um “Redescobrimento do Conhecimento” com avanços em Sistemas Especialistas e o renascimento do interesse em Redes Neurais.
Desde então, temos acompanhado um aumento muito grande e contínuo nas áreas relacionadas à IA. A depender de como uma máquina se compara à inteligência humana em quesitos como versatilidade e desempenho, pode-se classificá-la em diferentes tipos, tais como:
- IA Fraca (ou IA Narrow) - Definição: Sistemas que são projetados para realizar tarefas específicas e limitadas. Eles não possuem consciência ou entendimento além de suas funções programadas. Exemplos: Assistentes virtuais (Siri, Alexa), sistemas de recomendação (Netflix, Amazon), chatbots.
- IA Forte (ou IA Geral) - Definição: Esta é uma forma teórica de IA que possui habilidades cognitivas humanas em qualquer tarefa intelectual. Uma IA forte pode entender, aprender e aplicar conhecimento em diversas áreas. Status: A IA forte ainda é um conceito em desenvolvimento e não foi alcançada.
- IA Superinteligente - Definição: Uma forma hipotética de IA que ultrapassa a inteligência humana em praticamente todos os aspectos, incluindo criatividade, resolução de problemas e habilidades sociais. Preocupações: É um tópico de debate ético e filosófico, com preocupações sobre segurança e controle.
- IA Baseada em Aprendizado de Máquina - Definição: Englobam algoritmos que permitem às máquinas aprender com dados, melhorando seu desempenho em tarefas específicas com o tempo. Exemplos: Redes neurais, árvores de decisão, máquinas de vetor de suporte.
- IA Baseada em Conhecimento - Definição: Sistemas que utilizam regras e fatos para resolver problemas. Eles são baseados em um modelo de conhecimento explícito. Exemplo: Sistemas especialistas que emulam a habilidade de um especialista humano em áreas específicas.
Devido ao avanço em cada área, e principalmente em IA baseada em Aprendizado de Máquina, houve o surgimento do conceito que queremos destacar: Engenharia de Prompt.
Como Surgiu a Engenharia de Prompt?
Bishop, Christopher M. “O aprendizado de máquina é um campo da inteligência artificial que busca desenvolver algoritmos capazes de aprender com dados.” In: BISHOP, Christopher M. Pattern Recognition and Machine Learning. New York: Springer, 2006. p. 1.
Para que o termo fosse cunhado, houve uma “jornada” a ser percorrida. Algumas etapas dessa jornada foram:
- Desenvolvimento de Modelos Generativos: Avanços em Processamento de Linguagem Natural (PLN): O desenvolvimento de modelos de linguagem avançados permitiu que máquinas gerassem texto coerente, compreendessem contextos e respondessem a solicitações de uma maneira, digamos, “mais humana”.
- Interação Direta com Usuários: Importância do Prompt: A forma como um usuário formula perguntas ou comandos (prompts) tornou-se crucial para obter respostas relevantes e precisas. Os "prompts" são as instruções e, quanto mais precisos e concisos forem, mais exatos serão os resultados alcançados.
- Aprimoramento da Precisão e Relevância: Teste e Iteração: A engenharia de prompt envolve testar e otimizar diferentes maneiras de redigir prompts para maximizar a eficácia e a qualidade das respostas geradas pela IA. Isso inclui ajustes na estrutura, no contexto e no tom da solicitação.
- Aplicações Diversificadas: Uso em Várias Áreas: Desde assistentes virtuais até aplicações na criatividade (como geração de texto, arte e música), a habilidade de formular prompts eficazes é fundamental para extrair o máximo potencial da IA.
- Acesso à Tecnologia: Democratização da IA: Com a popularização da IA generativa, a engenharia de prompt tornou-se uma habilidade acessível, permitindo que mais pessoas, mesmo sem formação técnica, interajam e utilizem a IA de forma eficiente.
Além do trajeto percorrido, é importante destacar também os avanços nas tecnologias necessárias para alcançarmos o patamar em que nos encontramos em termos de reconhecimento de linguagem natural. Podemos destacar:
- Modelos de Linguagem Baseados em Aprendizado Profundo: Redes Neurais Recorrentes (RNNs) e Transformers: Estas arquiteturas são fundamentais no PLN, permitindo que modelos analisem e gerem texto. Modelos como GPT-3, BERT e T5 são exemplos de transformadores que dominam tarefas de PLN.
- Aprendizado Supervisionado e Não Supervisionado:
- Supervisionado: Modelos treinados em grandes conjuntos de dados rotulados para tarefas específicas, como classificação de texto ou tradução automática.
- Não Supervisionado: Modelos que aprendem padrões e estruturas da linguagem sem supervisão direta, extraindo significados e relações a partir de grandes quantidades de texto não estruturado.
- Sistemas de Regras e Modelos de Conhecimento: Embora menos comuns atualmente, alguns sistemas de PLN ainda utilizam regras explícitas e modelos de conhecimento baseados em lógica para entender e gerar linguagem, como sistemas especialistas ou aplicações de inteligência artificial simbólica.
Contudo, ainda temos que responder a uma questão fundamental deste artigo:
O que é afinal Engenharia de Prompt?
Brown, Tom B. et al.
"Language Models are Few-Shot Learners." ("Modelos de linguagem são aprendizes de poucos exemplos.")
In: Advances in Neural Information Processing Systems. 33. Curran Associates, Inc, 2020. p. 1877-1901.
Etimologicamente, temos a união de dois termos: "engenharia", que significa a aplicação do conhecimento, seja ele científico ou empírico, à utilização de recursos para o benefício humano; e "prompt", que se refere a uma forma de interação entre um programa e um usuário.
Partindo do exposto, podemos definir a Engenharia de Prompt como o processo de estruturação de uma instrução que pode ser interpretada e compreendida por um modelo generativo de inteligência artificial (IA). Um prompt é um texto em linguagem natural que descreve a tarefa que uma IA deve realizar.
O que torna esse conhecimento tão importante hoje é que bons prompts resultam em bons resultados. Isso acontece porque a IA generativa se baseia em um refinamento iterativo de diferentes técnicas para aprender e adaptar-se aos diversos inputs, produzindo respostas precisas e eficazes às requisições feitas.
Engenheiros de prompt se tornam cada vez mais necessários, à medida que desempenham um papel fundamental na elaboração de consultas que ajudam os modelos de IA generativa a entender não apenas a linguagem, mas também tudo o que está nas "entrelinhas" por trás das consultas. Buscas "brutas" provavelmente produzem respostas inconsistentes e não aderentes às consultas realizadas.
Quando adotamos uma abordagem mais meticulosa em relação ao input que fazemos, diminuímos consideravelmente a possibilidade de gerar respostas que necessitam de revisão manual ou que não são adequadas e, portanto, totalmente descartáveis.
Algumas Técnicas e Habilidades para uma boa Engenharia de Prompt
Peskin, Daniel.
"A engenharia de prompts é essencial para extrair o máximo desempenho de modelos de linguagem."
"The Importance of Prompt Engineering in the Era of GPT-3."
Journal of Artificial Intelligence Research, v. 73, p. 123-145, 2021.
Para realizar o trabalho de engenharia de prompt, algumas técnicas podem ser utilizadas. Por exemplo, o Prompt Zero-Shot permite que um modelo de aprendizado de máquina execute tarefas sem ter sido previamente treinado para isso, testando sua capacidade de gerar respostas relevantes sem exemplos. Em contraste, o Prompt Few-Shot fornece algumas amostras como contexto, facilitando a compreensão do que se espera. Já o Chain-of-Thought Prompting (CoT) é uma técnica que decompõe tarefas complexas em passos lógicos, ajudando o modelo a produzir resultados mais precisos ao seguir um raciocínio estruturado.
Um bom engenheiro de prompt apresenta diversas características que o capacitam a otimizar a interação com modelos de linguagem e sistemas de inteligência artificial. Entre as principais características, destacam-se:
- Compreensão Linguística: Sólido entendimento da linguagem natural, incluindo gramática e semântica, além da capacidade de formular perguntas claras e eficientes.
- Conhecimento Técnico: Familiaridade com os princípios de funcionamento dos modelos de linguagem e aprendizado de máquina, permitindo ajustes e utilização eficaz.
- Criatividade: Habilidade para formular prompts inovadores que levem a respostas mais relevantes e úteis do modelo.
- Análise Crítica: Capacidade de avaliar as respostas geradas, identificar falhas e ajustar os prompts conforme necessário.
- Adaptabilidade: Flexibilidade para modificar prompts com base em feedback, novas informações ou mudanças nas necessidades do projeto.
- Colaboração: Habilidade para trabalhar em equipe, colaborando com desenvolvedores, designers e especialistas para alcançar os objetivos do projeto.
- Conhecimento de Domínio: Entendimento do setor ou área específica onde a IA está sendo aplicada, ajudando a criar prompts mais relevantes.
- Orientação para o Usuário: Capacidade de considerar a experiência do usuário final e adaptar os prompts para atender melhor às suas expectativas.
Essas características são fundamentais para que um engenheiro de prompt crie interações eficazes e eficientes entre usuários e sistemas de inteligência artificial.
Alguns Exemplos da Aplicação da Engenharia de Prompt na Área de TI
Lee, Joon; Goh, Shixian.
"A automação de tarefas repetitivas por meio do processamento de linguagem natural pode aumentar significativamente a eficiência operacional."
"Automating Repetitive Tasks using Natural Language Processing."
Journal of Systems and Software, v. 159, p. 110432, 2019.
Na área de Tecnologia da Informação (TI), a engenharia de prompt traz diversas aplicações práticas. A seguir, apresenta-se alguns exemplos de como essa abordagem pode ser empregada:
- Desenvolvimento de Software: Criação de documentação, geração de código e apoio na depuração por meio de interações com modelos de linguagem.
- Suporte Técnico: Desenvolvimento de chatbots e assistentes virtuais que auxiliam na resolução de problemas e no atendimento a solicitações de suporte.
- Automação de Processos: Geração de scripts e automação de tarefas repetitivas, aumentando a eficiência operacional.
- Análise de Dados: Extração de insights e elaboração de relatórios a partir de grandes volumes de dados, utilizando consultas em linguagem natural.
- Treinamento e Capacitação: Desenvolvimento de sistemas de treinamento personalizáveis em tecnologias específicas.
- Testes de Usabilidade: Criação de cenários de teste e coleta de feedback sobre interfaces e aplicações.
Essas aplicações têm como objetivo melhorar a eficiência, a comunicação e a experiência do usuário em diversos processos dentro da área de TI.
Conclusão
Conforme discutido, a jornada da engenharia de prompt está apenas começando, uma vez que a inteligência artificial (IA) se torna cada vez mais presente em nossas vidas. Como destaca Brynjolfsson e McAfee (2014), "as tecnologias digitais estão transformando a economia e a natureza do trabalho, criando novas oportunidades e desafios." Essa realidade ressoa com a afirmação de Susskind e Susskind (2015) de que "as profissões estão sendo redefinidas pela automatização, e novos tipos de colaboração entre humanos e máquinas estão surgindo."
Embora não saibamos se essa especialização se tornará uma "profissão do futuro" – lembrando que o futuro é agora – é essencial reconhecer que as IAs generativas vieram para ficar em diversos campos do conhecimento, auxiliando em nossas tarefas. Como afirma Kaplan e Haenlein (2019): "as IAs generativas têm um grande potencial em várias áreas, e sua adaptação às necessidades humanas é essencial para o seu sucesso." Assim, torna-se primordial aprender a construir consultas eficazes para obter resultados cada vez melhores.
Não se trata de substituir o humano pela máquina, mas sim de estabelecer uma colaboração entre ambos. Na visão de Cockburn (2017), "a colaboração entre humanos e inteligência artificial pode ser mais produtiva do que quaisquer dos dois isoladamente." E, como em qualquer relacionamento, a comunicação é fundamental. Saber como formular nossos prompts é uma forma de se comunicar com nossos "novos parceiros". Portanto, a engenharia de prompt não é o futuro; é o presente, como ressalta Tambe (2019): "a habilidade de interagir de forma eficaz com algoritmos se tornará uma competência essencial no mercado de trabalho contemporâneo."
Referências:
- BRYNJOLFSSON, Erik; MCAFEE, Andrew. The Second Machine Age: Work, Progress, and Prosperity in a Time of Brilliant Technologies. W. W. Norton & Company, 2014.
- SUSSKIND, Richard; SUSSKIND, Daniel. The Future of the Profession: How Technology Will Transform the Work of Human Experts. Oxford University Press, 2015.
- KAPLAN, Andreas; HAENLEIN, Michael. "Siri, where are you? A framework for understanding artificial intelligence and its applications." Business Horizons, v. 62, n. 1, p. 25-35, 2019.
- COCKBURN, Ian. Agile Estimating and Planning. Prentice Hall, 2017.
- TAMBE, Prasanna. "Artificial Intelligence in Human Resource Management: A Review and Research Agenda."Human Resource Management Review, v. 29, n. 3, p. 234-235, 2019.