Blank white background with no objects or features visible.

NOVA PESQUISA: 80% dos custos de IA são invisíveis na fatura. Mais de 200 líderes revelam para onde o dinheiro vai. Leia→

O que é Engenharia de Prompt?

By TrueFoundry

Updated: March 22, 2024

Introdução

Um prompt é como uma instrução clara ou um conjunto de instruções que você dá a uma ferramenta ou pessoa. Seja uma palavra-chave que você digita em um motor de busca, um comando para um programa de computador ou uma pergunta que você faz a um amigo, os prompts os ajudam a entender o que você está procurando ou o que você quer que eles façam.

A engenharia de prompts, a arte e a ciência de criar prompts eficazes, tornou-se cada vez mais essencial com o aumento da popularidade dos Grandes Modelos de Linguagem (LLMs), pois permite a utilização de todas as capacidades dos LLMs.

Este artigo o ajudará a dominar a engenharia de prompts através da perspectiva dos Modelos de Linguagem.

Prompts e LLMs

Ao trabalhar com engenharia de prompts, você geralmente usa uma API para interagir com o LLM. Essas APIs consistem em um conjunto de hiperparâmetros que podem ser ajustados para obter os resultados desejados. Nesta discussão, examinaremos a API de Inferência do Hugging Face (conforme ilustrado na imagem abaixo) e exploraremos a importância de cada parâmetro.

from huggingface_hub import InferenceClient
# Parâmetro de Endpoints de Inferência HF
endpoint_url = "https://YOUR_ENDPOINT.endpoints.huggingface.cloud"
hf_token = "hf_YOUR_TOKEN"
# Cliente de Streaming
client = InferenceClient(endpoint_url, token=hf_token)

# Parâmetros de Geração
gen_kwargs = {
    "max_new_tokens": 512,
    "top_k": 50,  # Ajustando o parâmetro de amostragem top-k
    "top_p": 0.8,  # Ajustando o parâmetro de amostragem nucleus
    "temperature": 0.5,  # Ajustando a temperatura para aleatoriedade
    "repetition_penalty": 1.5,  # Ajustando a penalidade de repetição para evitar respostas repetitivas
    "stop_sequences": ["\nUser:", "", "</s>"],
}
# Prompt
prompt = "What are the effects of climate change on"
# Geração de texto
stream = client.text_generation(prompt, stream=True, details=True, **gen_kwargs)

Conforme mencionado acima, diferentes hiperparâmetros podem ser ajustados para influenciar a qualidade e a diversidade do texto gerado. Vamos analisar mais de perto os vários hiperparâmetros incluídos na propriedade gen_kwards acima - 

Hiperparâmetros

Temperatura

É como ajustar o nível de tempero na sua culinária – temperaturas mais altas significam mais aleatoriedade, como adicionar tempero para dar sabor, enquanto temperaturas mais baixas mantêm as coisas previsíveis, como seguir uma receita. Por exemplo, em tarefas de escrita criativa, como gerar poesia ou fazer brainstorming de ideias para histórias, uma configuração de temperatura mais alta pode resultar em um texto mais diverso e imaginativo.

Top_k

Pense nisso como restringir as escolhas em uma biblioteca aos livros mais populares. Ele seleciona os tokens mais prováveis durante a geração de texto, refinando a saída. Considere um chatbot de atendimento ao cliente que auxilia os usuários com dúvidas comuns. Ao definir um parâmetro top_k, o chatbot pode priorizar as respostas com base nas informações mais relevantes, garantindo que os usuários recebam assistência precisa e útil sem serem sobrecarregados por detalhes desnecessários.

Top_p

Top_p define um limite para os tokens considerados, escolhendo tokens até que uma probabilidade cumulativa de p seja atingida. Tanto top_k quanto top_p são usados para controlar a diversidade e a qualidade.

Max_new_tokens

É como definir um limite de palavras para uma redação. Max_new_tokens determina quanto texto o modelo pode gerar, mantendo-o dentro de um comprimento especificado. Por exemplo, se você estiver gerando respostas para um chatbot, definir um limite máximo de tokens garante que as respostas permaneçam concisas e relevantes para o contexto da conversa ou você pode aumentar 

Penalidade de repetição

A penalidade de repetição desencoraja o modelo de reutilizar tokens, promovendo a diversidade no texto gerado. Em uma aplicação de IA conversacional, como um assistente virtual, definir uma penalidade de repetição garante que as respostas do assistente permaneçam variadas e naturais durante interações prolongadas.

Penalidade de Frequência

A penalidade de frequência incentiva o modelo a explorar tokens menos comuns, tornando o texto mais único. Suponha que você esteja desenvolvendo um aplicativo agregador de notícias que resume artigos de várias fontes. Ao aplicar uma penalidade de frequência, o aplicativo pode priorizar publicações menos conhecidas ou tópicos de nicho, oferecendo aos usuários uma gama diversificada de perspectivas.

Penalidade de Presença

A penalidade de presença orienta o modelo a gerar texto que se alinha a critérios específicos ou evita certos tópicos, garantindo relevância. Em um sistema de moderação de conteúdo para fóruns online, definir uma penalidade de presença ajuda a filtrar linguagem inadequada ou ofensiva. Por exemplo, se um usuário tentar postar comentários discriminatórios, a penalidade de presença orientaria o sistema a gerar uma mensagem de aviso.

Dicas gerais para criar prompts melhores

Começando com a Simplicidade

Você deve começar criando prompts simples e diretos e, gradualmente, introduzir complexidade através do refinamento, em vez de sobrecarregar com todas as informações no início. Assim, ao lidar com uma tarefa grande, tente dividi-la em subconjuntos.

Orientação Clara

Os comandos devem ser claros e explícitos. Por exemplo:

Prompt ruim: " The quick brown fox jumps over the lazy dog,  Translate this."

Prompt melhor: "Translate the following English text into Spanish: 'The quick brown fox jumps over the lazy dog.'"

Especificidade

Melhore a clareza do prompt incluindo exemplos relevantes e instruções detalhadas.

Prompt ruim: “Write about social media and its effects.”

Prompt melhor: “Write a 500-word essay discussing social media's impact on teenagers' mental health. Include statistics from reputable sources such as the American Psychological Association and provide real-life examples of individuals affected by excessive social media use. “

Evitando Confusão

Garanta que os prompts sejam claros e diretos para evitar ambiguidade nas respostas do modelo.

Melhoria Contínua

Refine os prompts iterativamente com base no feedback e no desempenho para otimizar os resultados.

Ferramentas, frameworks e bibliotecas para engenharia de prompts em LLMs

A escolha das melhores ferramentas de engenharia de prompts depende se você está otimizando prompts para experimentação, implantação em produção ou fluxos de trabalho específicos do modelo.

Hugging Face Transformers

 Ele oferece interfaces para o ajuste fino de modelos em tarefas específicas e permite a criação de prompts personalizados.

OpenAI Codex API

A API da OpenAI inclui recursos para engenharia de prompts, permitindo que os usuários gerem código ou texto com base em prompts.

GPT-3 Playground

Plataformas como o GPT-3 Playground oferecem ambientes interativos para experimentar com prompts e observar as respostas do modelo em tempo real.

Google's T5 Framework

T5 (Text-To-Text Transfer Transformer) é um framework que transforma todas as tarefas de PNL em um formato texto-a-texto, simplificando a engenharia de prompts para diversas tarefas.

AllenNLP

AllenNLP oferece ferramentas para construir e avaliar modelos de PNL, incluindo mecanismos para design e avaliação de prompts.

Técnicas Avançadas para Engenharia de Prompts

Nesta seção, abordarei algumas técnicas SOTA (State-of-the-art) que são implementadas sob o guarda-chuva da Engenharia de Prompts em processamento de linguagem natural (PNL) e ajuste fino de modelos de linguagem. Pode haver uma ligeira sobreposição com os métodos mencionados acima, considere esta uma abordagem mais formal e estruturada para entender as técnicas:

Prompting Zero-shot

Como evidente pelo termo ‘zero-shot’, a inferência é direta sem fornecer contexto adicional ao LLM. Em vez disso, ele gera resultados com base em seu conhecimento pré-existente.

Prompt:

Quem foi o primeiro homem no espaço?

Saída:

O primeiro homem no espaço foi Yuri Gagarin, um cosmonauta soviético.

Prompting Few-shot

No que diz respeito ao Prompting Few-shot, trata-se de dar uma pequena orientação ao Modelo de Linguagem (LLM) antes de fazer a pergunta. Este contexto extra serve a dois grandes propósitos: em primeiro lugar, ajuda o LLM a compreender o que está a acontecer, para que possa dar uma resposta mais precisa. Em segundo lugar, permite que o LLM aprenda coisas novas que ainda não encontrou, mantendo o seu conhecimento atualizado e adaptável.

Prompt:

Componha um poema com três estrofes, cada uma focando em um tema diferente: amor, natureza e solidão.

Saída:

Em teu abraço, encontro meu consolo,
Uma sinfonia de corações batendo como um só,
Perdido na dança do abraço da paixão.
Contemple as árvores sussurrantes, suas folhas a brilhar,
A tela da natureza pintada com tons divinos,
Serenidade encontrada no murmúrio do fluir.
Na quietude da noite, estou sozinho,
Uma alma solitária sob o céu estrelado,
Encontrando consolo no silêncio, completamente por conta própria.

Encadeamento de Prompts

O encadeamento de prompts é uma técnica poderosa para dividir tarefas complexas em etapas mais gerenciáveis. Ao alimentar a saída de um prompt na entrada de outro, é possível otimizar processos e resolver problemas complexos de forma eficiente. 

Esta abordagem oferece várias vantagens: simplifica as instruções, identifica áreas de dificuldade para uma resolução de problemas focada e melhora a validação dos resultados. Além disso, o encadeamento de prompts permite a execução paralela de tarefas, possibilitando o processamento simultâneo de múltiplas subtarefas.

Prompt-1:

Existe uma rotina de exercícios, disponível no site <link>:

Por favor, identifique quaisquer exercícios mencionados no site. Forneça-os como citações diretas, entre as tags XML <quotes></quotes>. Se não houver exercícios, por favor, diga "Não há exercícios mencionados."

Saída-1:

<quotes>
"10 flexões"
"20 agachamentos"
</quotes>

Prompt-2:

Aqui estão os exercícios mencionados na rotina, entre as tags XML <quotes></quotes>:

<quotes>
"10 flexões"
"20 agachamentos"
</quotes>

Por favor, use estes exercícios para construir uma rotina de exercícios. Certifique-se de que suas instruções sejam claras e fáceis de seguir.

Saída-2:

# Gera um plano de treino abrangente

Prompting de Cadeia de Pensamento

A técnica de Prompting de Cadeia de Pensamento espelha o cenário em que um aluno recebe um problema de exemplo e é subsequentemente desafiado a resolver problemas semelhantes.

Prompt:

P: Sally tem 50 maçãs. Ela dá 15 para sua amiga e depois compra o triplo do que deu. Quantas maçãs Sally tem agora?


R: Sally começou com 50 maçãs. Depois de dar 15, ela ficou com 50 - 15 = 35 maçãs. Em seguida, ela compra o triplo do que deu, o que é 3 * 15 = 45 maçãs. Adicionando as maçãs que ela comprou ao que ela tinha, Sally agora tem 35 + 45 = 80 maçãs. Portanto, Sally tem 80 maçãs.
P: Joe tem 20 ovos. Ele compra mais 2 caixas de ovos. Cada caixa contém 12 ovos. Quantos ovos Joe tem agora?

Saída:

R: Joe começou com 20 ovos. 2 caixas de 12 ovos são 24 ovos. 20 + 24 = 44. Portanto, Joe tem 44 ovos, e a resposta é 44.

Em situações em que você tem menos exemplos ou nenhum exemplo, adicionar uma frase como ""Vamos pensar passo a passo"" ao prompt original é eficaz para melhorar o desempenho do modelo.

Cadeia de Pensamento Automática (Auto-CoT)

Ele gera automaticamente exemplos que mostram ao LLM como resolver problemas. Esses exemplos são chamados de "demonstrações" e são criados ao solicitar que o LLM articule seu processo de pensamento e elucide como abordaria um problema.

Como funciona o Auto-CoT?

O Auto-CoT funciona em duas etapas:

  1. Agrupamento de perguntas: Primeiro, ele agrupa perguntas semelhantes. Isso ajuda a garantir que as demonstrações cubram uma ampla gama de diferentes tipos de problemas.
  2. Amostragem de demonstrações: Em seguida, ele seleciona uma pergunta representativa de cada cluster e pede ao LLM para gerar uma demonstração para ela. O LLM faz isso pensando em voz alta e explicando seu raciocínio passo a passo.

Ajuste Fino de LLMs

Frequentemente, o ajuste fino não é considerado parte da engenharia de prompts, mas, de forma semelhante à engenharia de prompts, é um método para adaptar grandes modelos de linguagem (LLMs) a tarefas específicas.
Envolve treinar o modelo já treinado com nosso conjunto de dados rotulados especializado, ajustando assim seus parâmetros. Embora as últimas camadas sejam frequentemente ajustadas para se adequar aos novos dados, o ajuste fino pode envolver a modificação de parâmetros em várias camadas para capturar melhor as características específicas do domínio, mantendo o conhecimento aprendido no treinamento original.

Tradicionalmente, o ajuste fino era um processo complexo e intensivo em recursos que exigia hardware poderoso, experiência em aprendizado de máquina e grandes quantidades de dados rotulados. 

No entanto, agora com plataformas como Hugging Face, que fornecem modelos pré-treinados e pipelines de ajuste fino fáceis de usar, o ajuste fino tornou-se mais acessível e eficiente. Ao integrar as capacidades do Hugging Face com abordagens tradicionais de ajuste fino, podemos aproveitar modelos pré-treinados como pontos de partida, reduzindo a necessidade de grandes quantidades de dados rotulados e experiência.

A Truefoundry também oferece a facilidade de ajustar seus LLMs, com sua interface intuitiva e simples, você pode ajustar seus modelos em 3 passos simples:

  1. Conectando seu banco de dados
  2. Comparando entre trabalhos de finetuning e escolhendo o certo para suas necessidades.
  3. Implante seu modelo ajustado.

Geração Aumentada por Recuperação (RAG)

No RAG, a recuperação é usada como um componente ao lado da geração para aprimorar o desempenho do modelo em tarefas como resposta a perguntas e geração de texto. O RAG é adaptável para cenários com fatos em evolução, o que é valioso porque o conhecimento fixo dos LLMs não consegue acompanhar. O RAG permite que os modelos de linguagem pulem o retreinamento, acessando as informações mais recentes por meio da geração baseada em recuperação para produzir resultados confiáveis.

Nos últimos anos, os sistemas RAG progrediram do RAG Ingênuo básico para modelos RAG Avançado e RAG Modular mais sofisticados. 

O RAG Ingênuo recupera informações com base na entrada do usuário, mas tem dificuldades com a precisão devido a dados desatualizados e respostas irrelevantes. O RAG Avançado melhora isso ajustando o processo de recuperação, tornando-o mais preciso e relevante. 

O RAG Modular vai além, oferecendo diferentes módulos personalizáveis, como busca e memória, permitindo flexibilidade na resolução de problemas específicos. No geral, esses avanços visam tornar os sistemas de conversação mais inteligentes e confiáveis, gerenciando melhor a recuperação de informações e a geração de respostas.

Truefoundry também oferece uma interface ponta a ponta para RAG com a capacidade de integrar-se a qualquer armazenamento de metadados, embeddings ou modelos LLM

Aprendizagem por reforço a partir de feedback humano (RLHF)

Por um bom tempo, a ideia de treinar um modelo de linguagem usando aprendizagem por reforço parecia inviável devido a desafios tanto de engenharia quanto algorítmicos. Entender os detalhes técnicos do RLHF envolverá vários pré-requisitos de aprendizagem por reforço, então tentarei manter a explicação bem geral.

Considere um problema em que nosso objetivo é treinar um robô para navegar em um labirinto. Tradicionalmente, na Aprendizagem por Reforço (RL), o robô visa alcançar seu objetivo rapidamente e recebe feedback com base em seu desempenho no labirinto. Mas a Aprendizagem por Reforço a partir de Feedback Humano (RLHF) vai um passo além, permitindo que humanos forneçam informações adicionais. Eles podem comentar sobre mais do que apenas a velocidade, como se o robô evita obstáculos ou segue um caminho que parece bom.

Por exemplo, se o robô escolher um caminho que desvia de obstáculos ou segue uma rota que os humanos gostam, ele pode receber alguns pontos de bônus. Dessa forma, o robô aprende não apenas a alcançar o objetivo rapidamente, mas também a considerar o que os humanos preferem.

Na engenharia de prompts para grandes modelos de linguagem (LLMs), o RLHF é bastante útil. Ele garante que os prompts melhorem na obtenção das respostas que desejamos, aprimora a qualidade dos prompts com verificações humanas, permite-nos personalizar prompts para se adequarem às nossas preferências e acompanha as mudanças no que é popular ao longo do tempo. Ao incluir a entrada humana, ajuda a garantir que os resultados estejam mais próximos do que procuramos, em diferentes tarefas e campos.

The fastest way to build, govern and scale your AI

Sign Up
Table of Contents

Govern, Deploy and Trace AI in Your Own Infrastructure

Book a 30-min with our AI expert

Book a Demo

The fastest way to build, govern and scale your AI

Book Demo

Discover More

No items found.
May 21, 2026
|
5 min read

Adicionando OAuth2 a Jupyter Notebooks no Kubernetes

Engenharia e Produto
May 21, 2026
|
5 min read

Uma equipe de 2 pessoas atendendo um modelo para 1,5 milhão de pessoas com TrueFoundry

Engenharia e Produto
May 21, 2026
|
5 min read

Acelere o Processamento de Dados em 30–40x com NVIDIA RAPIDS no TrueFoundry

GPU
Engenharia e Produto
May 21, 2026
|
5 min read

Uma Parceria para IA Responsável: Truefoundry e Enkrypt AI

No items found.
No items found.

Recent Blogs

Black left pointing arrow symbol on white background, directional indicator.
Black left pointing arrow symbol on white background, directional indicator.
Take a quick product tour
Start Product Tour
Product Tour