Engenharia de prompt OpenAI
A qualidade dos prompts de entrada que enviamos para um modelo de IA, como os disponíveis no Azure OpenAI, influencia diretamente a qualidade do que recebemos de volta. Ao construir cuidadosamente os prompts que enviamos para o modelo, o modelo pode fornecer respostas melhores e mais interessantes.
O que é a engenharia de pedidos
A engenharia imediata é o processo de projetar e otimizar prompts para utilizar melhor os modelos de IA. Projetar prompts eficazes é fundamental para o sucesso da engenharia de prompts e pode melhorar significativamente o desempenho do modelo de IA em tarefas específicas. Fornecer prompts relevantes, específicos, inequívocos e bem estruturados pode ajudar o modelo a entender melhor o contexto e gerar respostas mais precisas.
Por exemplo, se quisermos que um modelo OpenAI gere descrições de produtos, podemos fornecer-lhe uma descrição detalhada que descreva as características e benefícios do produto. Ao fornecer esse contexto, o modelo pode gerar descrições de produtos mais precisas e relevantes.
A engenharia rápida também pode ajudar a mitigar preconceitos e melhorar a equidade nos modelos de IA. Ao projetar prompts que são diversos e inclusivos, podemos garantir que o modelo não seja tendencioso para um grupo ou perspetiva em particular.
Importante
Não importa o quão bom de um prompt você possa projetar, as respostas de modelos de IA nunca devem ser tomadas como fato ou completamente livres de preconceitos. Use sempre a IA de forma responsável. Para obter mais informações, consulte a nota de transparência da Microsoft sobre o Azure OpenAI e os princípios de IA da Microsoft.
Além disso, a engenharia imediata pode nos ajudar a entender quais referências o modelo usa para gerar sua resposta. Os modelos de IA generativa têm uma tonelada de parâmetros e a lógica que segue é em grande parte desconhecida para os usuários, então pode ser confuso como ele chega à resposta que dá. Ao projetar prompts que são fáceis de entender e interpretar, podemos ajudar os humanos a entender melhor como o modelo está gerando suas respostas. Isso pode ser particularmente importante em domínios como a saúde, onde é fundamental entender como o modelo está tomando decisões.
Existem diferentes métodos para utilizar ao projetar seus próprios prompts. Isso inclui fornecer instruções, conteúdo contextual, dicas ou exemplos de poucas imagens e ordenar corretamente o conteúdo em seu prompt. Os métodos abordados aqui não são exaustivos, pois esta área é um tópico matizado e fluido.
Considerações para pontos de extremidade de API
Os exemplos no resto desta unidade serão focados em ChatCompletion
. Vale a pena notar que ChatCompletion
também pode ser usado para cenários que não sejam de chat, onde todas as instruções são incluídas na mensagem do sistema e o conteúdo do usuário é fornecido na mensagem de função do usuário. A maioria desses exemplos pode ser alterada para usar o Completion
ponto de extremidade, se desejado.
Em termos de disponibilidade do modelo, o Completion
ponto de extremidade pode ser usado com gpt-3
e mais cedo, e ChatCompletion
pode ser usado com gpt-35-turbo
e modelos posteriores.
Ajustando os parâmetros do modelo
Além das técnicas discutidas nesta unidade, ajustar parâmetros do modelo pode ter um impacto significativo na resposta. Em particular, e top_p
(top_probability) são os mais propensos a impactar a resposta de um modelo, temperature
pois ambos controlam a aleatoriedade no modelo, mas de maneiras diferentes.
Valores mais altos produzem respostas mais criativas e aleatórias, mas provavelmente serão menos consistentes ou focadas. As respostas que se espera que sejam fictícias ou únicas beneficiam de valores mais elevados para estes parâmetros, enquanto os conteúdos que se pretende que sejam mais consistentes e concretos devem utilizar valores mais baixos.
Especificamente, alto temperature
permite mais variação na estrutura da frase e alto top_p
permite mais variação nas palavras que são usadas (usando uma variedade de sinônimos).
Tente ajustar esses parâmetros com o mesmo prompt para ver como eles afetam a resposta. Recomenda-se alterar uma ou temperature
top_p
outra de cada vez, mas não ambas.
Escreva prompts eficazes
Os modelos OpenAI do Azure são capazes de gerar respostas a consultas de linguagem natural com uma precisão notável. No entanto, a qualidade das respostas depende em grande parte de quão bem o prompt é escrito. Os desenvolvedores podem otimizar o desempenho dos modelos OpenAI do Azure usando diferentes técnicas em seus prompts, resultando em respostas mais precisas e relevantes.
Fornecer instruções claras
Perguntar claramente ao modelo OpenAI do Azure o que você deseja é uma maneira de obter os resultados desejados. Ao ser o mais descritivo possível, o modelo pode gerar uma resposta que mais se aproxima do que você está procurando.
Por exemplo, digamos que você queira criar uma descrição do produto para uma nova garrafa de água. Considere a resposta associada a cada prompt:
Pedido
Write a product description for a new water bottle
Response
Introducing the latest addition to our product line - the innovative and eco-friendly water bottle.
Made from high-quality, BPA-free materials, this bottle is designed to keep your beverages at the
perfect temperature for hours. Its sleek and stylish design makes it the perfect accessory for any
outdoor activity or workout session. With its convenient carrying handle and leak-proof lid, you
can take it with you wherever you go, without worrying about spills or leaks. Plus, its easy-to-clean
design ensures that you can use it again and again, making it the perfect choice for anyone looking
for a reliable and sustainable water bottle.
Versus um prompt semelhante, com instruções claras.
Pedido
Write a product description for a new water bottle that is 100% recycled. Be sure to include that
it comes in natural colors with no dyes, and each purchase removes 10 pounds of plastic from our
oceans
Response
Introducing our newest water bottle, the eco-friendly choice for the conscious consumer. Made from
100% recycled materials and available in natural colors with no dyes, this bottle is not only
stylish but also sustainable. Each purchase of this bottle removes 10 pounds of plastic from
our oceans, making it a responsible choice for those who care about the environment. Its durable
and leak-proof design makes it perfect for outdoor activities, while its easy-to-carry handle
makes it convenient to take on the go. Join us in our mission to reduce plastic waste and choose
this eco-friendly water bottle for your daily hydration needs.
A inclusão de especificidades que precisam ser incluídas permite que o modelo saiba quais informações adicionar à descrição, tornando-a mais precisa para o novo produto.
Esse método pode ser extrapolado para incluir instruções complexas, como uma lista com marcadores de detalhes a serem incluídos, comprimento da resposta ou formatos desejados a serem incluídos na saída. Tente pedir exatamente o que você quer ver no resultado, e você pode se surpreender com o quão bem o modelo satisfaz o seu pedido.
Formato das instruções
A forma como as instruções são formatadas pode afetar a forma como o modelo interpreta o prompt. O viés de recenticidade pode afetar modelos, onde as informações localizadas no final do prompt podem ter mais influência na saída do que as informações no início. Você pode obter respostas melhores repetindo as instruções no final do prompt e avaliando como isso afeta a resposta gerada.
Esse viés de recenticidade também pode entrar em jogo ao usar ChatCompletion
em um cenário de bate-papo, onde mensagens mais recentes na conversa incluídas no prompt têm um impacto maior na resposta.
Conteúdo principal, de suporte e de base
Incluir conteúdo para o modelo usar em sua resposta permite que o modelo responda com maior precisão. Este conteúdo pode ser pensado de duas formas: conteúdo principal e conteúdo de apoio.
Conteúdo principal refere-se ao conteúdo que é o assunto da consulta, como uma frase para traduzir ou um artigo para resumir. Este conteúdo é frequentemente incluído no início ou no final do prompt (como uma instrução e diferenciado por ---
blocos), com instruções explicando o que fazer com ele.
Por exemplo, digamos que temos um artigo longo que queremos resumir. Poderíamos colocá-lo em um ---
bloco no prompt, em seguida, terminar com a instrução.
---
<insert full article here, as primary content>
---
Summarize this article and identify three takeaways in a bulleted list
O conteúdo de suporte é o conteúdo que pode alterar a resposta, mas não é o foco ou o assunto do prompt. Exemplos de conteúdo de suporte incluem coisas como nomes, preferências, data futura a ser incluída na resposta e assim por diante. O fornecimento de conteúdo de suporte permite que o modelo responda de forma mais completa, precisa e tenha maior probabilidade de incluir as informações desejadas.
Por exemplo, dado um e-mail promocional muito longo, o modelo é capaz de extrair informações importantes. Se, em seguida, você adicionar conteúdo de suporte ao prompt especificando algo específico que você está procurando, o modelo pode fornecer uma resposta mais útil. Neste caso, o e-mail é o conteúdo principal, com as especificidades do que você está interessado como conteúdo de suporte
---
<insert full email here, as primary content>
---
<the next line is the supporting content>
Topics I'm very interested in: AI, webinar dates, submission deadlines
Extract the key points from the above email, and put them in a bulleted list:
O conteúdo de fundamentação permite que o modelo forneça respostas confiáveis, fornecendo conteúdo para o modelo extrair respostas. O conteúdo de base pode ser um ensaio ou artigo sobre o qual você faça perguntas, um documento de perguntas frequentes da empresa ou informações mais recentes do que os dados sobre os quais o modelo foi treinado. Se você precisar de respostas mais confiáveis e atuais, ou precisar fazer referência a informações não publicadas ou específicas, o conteúdo de aterramento é altamente recomendado.
O conteúdo de fundamentação difere do conteúdo principal, pois é a fonte de informações para responder à consulta de prompt, em vez do conteúdo que está sendo operado para coisas como resumo ou tradução. Por exemplo, quando é fornecido um artigo de pesquisa não publicado sobre a história da IA, ele pode responder a perguntas usando esse conteúdo de fundamentação.
---
<insert unpublished paper on the history of AI here, as grounding content>
---
Where and when did the field of AI start?
Esses dados de fundamentação permitem que o modelo forneça respostas mais precisas e informadas que podem não fazer parte do conjunto de dados em que foi treinado.
Pistas
As pistas são as principais palavras para o modelo se basear e, muitas vezes, ajudam a moldar a resposta na direção certa. Eles são frequentemente usados com instruções, mas nem sempre. As dicas são particularmente úteis se solicitarem o modelo para geração de código. A geração de código é abordada com mais profundidade em uma unidade subsequente.