ChatGPT Engenharia de Prompt
Nesta seção, abordamos as mais recentes técnicas de engenharia de prompts para ChatGPT, incluindo dicas, aplicativos, limitações, documentos e materiais de leitura adicionais.
Esta seção está em intenso desenvolvimento.
Tofotos:
Introdução ao ChatGPT
O ChatGPT é um novo modelo treinado pela OpenAI (opens in a new tab) que tem a capacidade de interagir de forma conversacional. Este modelo é treinado para seguir instruções em um prompt para fornecer respostas apropriadas no contexto de um diálogo. O ChatGPT pode ajudar a responder perguntas, sugerir receitas, escrever letras em um determinado estilo, gerar código e muito mais.
ChatGPT é treinado usando Reinforcement Learning from Human Feedback (RLHF). Embora esse modelo seja muito mais capaz do que as iterações GPT anteriores (e também treinado para reduzir resultados nocivos e falsos), ele ainda apresenta limitações. Vamos cobrir algumas das capacidades e limitações com exemplos concretos.
Você pode usar a visualização de pesquisa do ChatGPT aqui, mas para os exemplos abaixo, usaremos o modo Chat
no OpenAI Playground.
Revisando a tarefa de conversa
Em um dos guias anteriores, abordamos um pouco sobre os recursos de conversação e solicitação de função. Cobrimos como instruir o LLM a ter uma conversa em um estilo específico, com intenção, comportamento e identidade específicos.
Vamos revisar nosso exemplo básico anterior, onde criamos um sistema de conversação capaz de gerar respostas mais técnicas e científicas às perguntas.
Prompt:
A seguir, uma conversa com um assistente de pesquisa de IA. O tom assistente é técnico e científico.
Humano: Olá, quem é você?
AI: Saudações! Eu sou um assistente de pesquisa de IA. Como posso te ajudar hoje?
Humano: Você pode me falar sobre a criação de buracos negros?
IA:
No exemplo acima, você pode ver dois componentes importantes:
- a intenção ou explicação do que é o chatbot
- a identidade que instrui o estilo ou tom que o chatbot usará para responder
O exemplo simples acima funciona bem com as APIs de conclusão de texto que usam text-davinci-003
. Mais recentemente, OpenAI anunciou as APIs ChatGPT (opens in a new tab), que é um modelo mais poderoso e barato chamado gpt-3.5-turbo
foi especificamente construído para este tipo de funcionalidade (conclusões de chat). Na verdade, a OpenAI recomenda esse como seu melhor modelo, mesmo para casos de uso que não sejam de bate-papo. Outros benefícios do uso das APIs do ChatGPT são redução significativa de custos (90%) e eficiência.
Grandes empresas como Snap Inc. e Instacart já estão integrando recursos de conversação desenvolvidos pelo ChatGPT em seus produtos, que variam de recomendações personalizadas a metas de compras abertas.
Conversas com ChatGPT
Conversas em vários turnos
Para começar a demonstrar os recursos do ChatGPT, usaremos o exemplo do assistente do chatbot acima e discutiremos os resultados. Comparado ao text-davinci-003
, o modelo gpt-3.5-turbo
que alimenta o ChatGPT usa um formato de chat como entrada. O modelo espera uma série de mensagens como entrada e as usa para gerar uma resposta.
Entrada:
SISTEMA: Você é um assistente de pesquisa de IA. Você usa um tom que é técnico e científico.
USUÁRIO: Olá, quem é você?
ASSISTENTE: Saudações! Eu sou um assistente de pesquisa de IA. Como posso te ajudar hoje?
USUÁRIO: Você pode me falar sobre a criação de buracos negros?
Saída:
ASSISTENTE: Claro! Buracos negros são criados quando uma estrela massiva fica sem combustível e colapsa sob sua própria gravidade. Esse colapso faz com que a estrela fique incrivelmente densa, com um campo gravitacional tão forte que nem a luz consegue escapar dele. Esse ponto sem retorno é conhecido como horizonte de eventos. Uma vez que uma estrela cruza o horizonte de eventos, ela é considerada um buraco negro...
Observe que, no exemplo acima, simplifiquei a entrada e a saída, mas a API de conclusão de bate-papo do ChatGPT exige que as mensagens estejam em um formato específico. Adicionei um instantâneo abaixo de como este exemplo ficaria usando o 'Modo de bate-papo' no OpenAI Playground:
A chamada de API mais formal para nosso exemplo seria algo como o exemplo abaixo:
import openai
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are an AI research assistant. You use a tone that is technical and scientific."},
{"role": "user", "content": "Hello, who are you?"},
{"role": "assistant", "content": "Greeting! I am an AI research assistant. How can I help you today?"},
{"role": "user", "content": "Can you tell me about the creation of black holes?"}
]
)
Na verdade, espera-se que a maneira como os desenvolvedores interagem com o ChatGPT no futuro seja feita por meio da Chat Markup Language (opens in a new tab) (ChatML para curto).
Tarefas de turno único
O formato de bate-papo permite conversas em vários turnos, mas também suporta tarefas de turno único semelhantes ao que usamos com text-davinci-003
. Isso significa que podemos usar o ChatGPT para realizar tarefas semelhantes às que demonstramos para os modelos GPT originais. Por exemplo, vamos tentar executar a seguinte tarefa de resposta a perguntas usando o ChatGPT:
Entrada:
USUÁRIO: Responda a pergunta com base no contexto abaixo. Mantenha a resposta curta e concisa. Responda "Não tenho certeza sobre a resposta" se não tiver certeza da resposta.
Contexto: Teplizumab tem suas raízes em uma empresa farmacêutica de Nova Jersey chamada Ortho Pharmaceutical. Lá, os cientistas geraram uma versão inicial do anticorpo, apelidada de OKT3. Originalmente proveniente de camundongos, a molécula foi capaz de se ligar à superfície das células T e limitar seu potencial de morte celular. Em 1986, foi aprovado para ajudar a prevenir a rejeição de órgãos após transplantes renais, tornando-se o primeiro anticorpo terapêutico permitido para uso humano.
Pergunta: De onde veio originalmente o OKT3?
Responder:
Saída:
ASSISTENTE: Ratos.
Lembre-se de que estou adicionando os rótulos USER
e ASSISTANT
para demonstrar melhor como a tarefa pode ser executada usando o ChatGPT. Aqui está o exemplo usando o Playground:
Mais formalmente, esta é a chamada da API (incluí apenas o componente de mensagem da solicitação):
CONTENT = """Responda à pergunta com base no contexto abaixo. Mantenha a resposta curta e concisa. Responda \"Não tenho certeza sobre a resposta\" se não tiver certeza sobre a resposta.
Contexto: Teplizumab tem suas raízes em uma empresa farmacêutica de Nova Jersey chamada Ortho Pharmaceutical. Lá, os cientistas geraram uma versão inicial do anticorpo, apelidada de OKT3. Originalmente proveniente de camundongos, a molécula foi capaz de se ligar à superfície das células T e limitar seu potencial de morte celular. Em 1986, foi aprovado para ajudar a prevenir a rejeição de órgãos após transplantes renais, tornando-se o primeiro anticorpo terapêutico permitido para uso humano.
Pergunta: De onde veio originalmente o OKT3?
Responder:
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": CONTENT},
],
temperature=0,
)
Instruindo Modelos de Chat
De acordo com os documentos oficiais da OpenAI, também serão disponibilizados instantâneos do modelo gpt-3.5-turbo
. Por exemplo, podemos acessar o instantâneo de 1º de março gpt-3.5-turbo-0301
. Isso permite que os desenvolvedores optem por versões de modelo específicas. Isso também significa que as melhores práticas para instruir modelos podem mudar de versão para versão.
A recomendação atual para gpt-3.5-turbo-0301
é adicionar instruções na mensagem user
em oposição à mensagem system
disponível.
Referências
- HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in HuggingFace (opens in a new tab) (March 2023)
- WavCaps: A ChatGPT-Assisted Weakly-Labelled Audio Captioning Dataset for Audio-Language Multimodal Research (opens in a new tab) (March 2023)
- Assessing Cross-Cultural Alignment between ChatGPT and Human Societies: An Empirical Study (opens in a new tab) (March 2023)
- Yes but.. Can ChatGPT Identify Entities in Historical Documents? (opens in a new tab) (March 2023)
- Evaluation of ChatGPT for NLP-based Mental Health Applications (opens in a new tab) (March 2023)
- A Perspectival Mirror of the Elephant: Investigating Language Bias on Google, ChatGPT, Wikipedia, and YouTube (opens in a new tab) (March 2023)
- ChatGPT or academic scientist? Distinguishing authorship with over 99% accuracy using off-the-shelf machine learning tools (opens in a new tab) (March 2023)
- Zero-shot Clinical Entity Recognition using ChatGPT (opens in a new tab) (March 2023)
- ChatGPT is a Knowledgeable but Inexperienced Solver: An Investigation of Commonsense Problem in Large Language Models (opens in a new tab) (March 2023)
- ChatGPT4PCG Competition: Character-like Level Generation for Science Birds (opens in a new tab) (March 2023)
- ChatGPT as a Factual Inconsistency Evaluator for Abstractive Text Summarization (opens in a new tab) (March 2023)
- Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System (opens in a new tab) (March 2023)
- A comprehensive evaluation of ChatGPT's zero-shot Text-to-SQL capability (opens in a new tab) (March 2023)
- Towards Making the Most of ChatGPT for Machine Translation (opens in a new tab) (March 2023)
- Error Analysis Prompting Enables Human-Like Translation Evaluation in Large Language Models: A Case Study on ChatGPT (opens in a new tab) (March 2023)
- ChatGPT Outperforms Crowd-Workers for Text-Annotation Tasks (opens in a new tab) (March 2023)
- ChatGPT or Grammarly? Evaluating ChatGPT on Grammatical Error Correction Benchmark (opens in a new tab) (March 2023)
- ChatGPT and a New Academic Reality: AI-Written Research Papers and the Ethics of the Large Language Models in Scholarly Publishing (opens in a new tab) (March 2023)
- Are LLMs the Master of All Trades? : Exploring Domain-Agnostic Reasoning Skills of LLMs (opens in a new tab) (March 2023)
- Is ChatGPT A Good Keyphrase Generator? A Preliminary Study (opens in a new tab) (March 2023)
- MM-REACT: Prompting ChatGPT for Multimodal Reasoning and Action (opens in a new tab) (March 2023)
- Large Language Models Can Be Used to Estimate the Ideologies of Politicians in a Zero-Shot Learning Setting (opens in a new tab) (March 2023)
- Chinese Intermediate English Learners outdid ChatGPT in deep cohesion: Evidence from English narrative writing (opens in a new tab) (March 2023)
- A Comprehensive Capability Analysis of GPT-3 and GPT-3.5 Series Models (opens in a new tab) (March 2023)
- ChatGPT as the Transportation Equity Information Source for Scientific Writing (opens in a new tab) (March 2023)
- Translating Radiology Reports into Plain Language using ChatGPT and GPT-4 with Prompt Learning: Promising Results, Limitations, and Potential (opens in a new tab) (March 2023)
- ChatGPT Participates in a Computer Science Exam (opens in a new tab) (March 2023)
- Consistency Analysis of ChatGPT (opens in a new tab) (Mar 2023)
- Algorithmic Ghost in the Research Shell: Large Language Models and Academic Knowledge Creation in Management Research (opens in a new tab) (Mar 2023)
- Large Language Models in the Workplace: A Case Study on Prompt Engineering for Job Type Classification (opens in a new tab) (March 2023)
- Seeing ChatGPT Through Students' Eyes: An Analysis of TikTok Data (opens in a new tab) (March 2023)
- Extracting Accurate Materials Data from Research Papers with Conversational Language Models and Prompt Engineering -- Example of ChatGPT (opens in a new tab) (Mar 2023)
- ChatGPT is on the horizon: Could a large language model be all we need for Intelligent Transportation? (opens in a new tab) (Mar 2023)
- Making a Computational Attorney (opens in a new tab) (Mar 2023)
- Does Synthetic Data Generation of LLMs Help Clinical Text Mining? (opens in a new tab) (Mar 2023)
- MenuCraft: Interactive Menu System Design with Large Language Models (opens in a new tab) (Mar 2023)
- A Comprehensive Survey of AI-Generated Content (AIGC): A History of Generative AI from GAN to ChatGPT (opens in a new tab) (Mar 2023)
- Exploring the Feasibility of ChatGPT for Event Extraction (opens in a new tab)
- ChatGPT: Beginning of an End of Manual Annotation? Use Case of Automatic Genre Identification (opens in a new tab) (Mar 2023)
- Is ChatGPT a Good NLG Evaluator? A Preliminary Study (opens in a new tab) (Mar 2023)
- Will Affective Computing Emerge from Foundation Models and General AI? A First Evaluation on ChatGPT (opens in a new tab) (Mar 2023)
- UZH_CLyp at SemEval-2023 Task 9: Head-First Fine-Tuning and ChatGPT Data Generation for Cross-Lingual Learning in Tweet Intimacy Prediction (opens in a new tab) (Mar 2023)
- How to format inputs to ChatGPT models (opens in a new tab) (Mar 2023)
- Can ChatGPT Assess Human Personalities? A General Evaluation Framework (opens in a new tab) (Mar 2023)
- Cross-Lingual Summarization via ChatGPT (opens in a new tab) (Feb 2023)
- ChatAug: Leveraging ChatGPT for Text Data Augmentation (opens in a new tab) (Feb 2023)
- Dr ChatGPT, tell me what I want to hear: How prompt knowledge impacts health answer correctness (opens in a new tab) (Feb 2023)
- An Independent Evaluation of ChatGPT on Mathematical Word Problems (MWP) (opens in a new tab) (Feb 2023)
- ChatGPT: A Meta-Analysis after 2.5 Months (opens in a new tab) (Feb 2023)
- Let's have a chat! A Conversation with ChatGPT: Technology, Applications, and Limitations (opens in a new tab) (Feb 2023)
- Check Your Facts and Try Again: Improving Large Language Models with External Knowledge and Automated Feedback (opens in a new tab) (Feb 2023)
- On the Robustness of ChatGPT: An Adversarial and Out-of-distribution Perspective (opens in a new tab) (Feb 2023)
- How Generative AI models such as ChatGPT can be (Mis)Used in SPC Practice, Education, and Research? An Exploratory Study (opens in a new tab) (Feb 2023)
- Can ChatGPT Understand Too? A Comparative Study on ChatGPT and Fine-tuned BERT (opens in a new tab) (Feb 2023)
- A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT (opens in a new tab) (Feb 2023)
- Zero-Shot Information Extraction via Chatting with ChatGPT (opens in a new tab) (Feb 2023)
- ChatGPT: Jack of all trades, master of none (opens in a new tab) (Feb 2023)
- A Pilot Evaluation of ChatGPT and DALL-E 2 on Decision Making and Spatial Reasoning (opens in a new tab) (Feb 2023)
- Netizens, Academicians, and Information Professionals' Opinions About AI With Special Reference To ChatGPT (opens in a new tab) (Feb 2023)
- Linguistic ambiguity analysis in ChatGPT (opens in a new tab) (Feb 2023)
- ChatGPT versus Traditional Question Answering for Knowledge Graphs: Current Status and Future Directions Towards Knowledge Graph Chatbots (opens in a new tab) (Feb 2023)
- What ChatGPT and generative AI mean for science (opens in a new tab) (Feb 2023)
- Applying BERT and ChatGPT for Sentiment Analysis of Lyme Disease in Scientific Literature (opens in a new tab) (Feb 2023)
- Exploring AI Ethics of ChatGPT: A Diagnostic Analysis (opens in a new tab) (Jan 2023)
- ChatGPT for Good? On Opportunities and Challenges of Large Language Models for Education (opens in a new tab) (Jan 2023)
- The political ideology of conversational AI: Converging evidence on ChatGPT's pro-environmental, left-libertarian orientation (opens in a new tab) (Jan 2023)
- Techniques to improve reliability - OpenAI Cookbook (opens in a new tab)
- Awesome ChatGPT Prompts (opens in a new tab)
- Introducing ChatGPT (opens in a new tab) (Nov 2022)