logo
P
Prompt Master

Prompt 大师

掌握和 AI 对话的艺术

ChatGPT

chat model 使用与注意事项

#TL;DR(中文)

  • code
    ChatGPT
    是面向对话的
    code
    LLM
    形态,优势在于多轮对话、指令跟随,以及较强的通用写作/分析/代码辅助能力。
  • 落地关键不是“写更长的 prompt”,而是:明确角色与任务边界、固定输出格式(schema)、并为不确定性设置 abstain 规则(例如 “Unsure about answer”)。
  • 生产建议:把高风险任务(事实性、医疗/法律、外部写入)接
    code
    RAG
    /tools,并用
    code
    evaluation
    做回归。

#How to Prompt(中文,code block 保持英文)

你可以把对话 prompts 固定成一个可复用模板,然后按任务填变量:

text
System: You are <role>. You must follow the rules. Rules: - Follow the requested output format exactly. - If you are unsure, say "Unsure" and list missing information. - Do not fabricate facts or citations. User: <task + context + constraints + examples>

#Self-check rubric(中文)

  • 是否遵守输出格式(无额外解释/无跑题)?
  • 是否在缺信息时主动问 clarifying questions 或输出 “Unsure”?
  • 是否出现 hallucination(编造来源/数字/结论)?
  • 多轮对话中是否保持一致性(不自相矛盾)?

在本节中,我们将介绍 ChatGPT 的最新提示工程技术,包括提示、应用、限制、论文和其他阅读材料。 主题:


#ChatGPT 简介

ChatGPT 是由 OpenAI 训练的一种新模型,具有交互式对话的能力。该模型经过训练,可以按照提示中的指示,在对话的上下文中提供适当的响应。ChatGPT 可以帮助回答问题、建议食谱、以特定风格写歌词、生成代码等等。

ChatGPT 使用人类反馈的强化学习(RLHF)进行训练。虽然这个模型比以前的 GPT 迭代要强大得多(并且还经过了训练以减少有害和不真实的输出),但它仍然有一些限制。让我们通过具体的例子来了解一些能力和限制。

您可以在这里使用 ChatGPT 的研究预览,但在下面的示例中,我们将使用 OpenAI Playground 上的“Chat”模式。


#审查对话任务

在之前的指南中,我们简要介绍了对话能力和角色提示。我们介绍了如何指示 LLM 以特定的风格、特定的意图、行为和身份进行对话。

让我们回顾一下我们之前的基本示例,其中我们创建了一个对话系统,该系统能够对问题生成更多的技术和科学响应。

提示:

code
The following is a conversation with an AI research assistant. The assistant's tone is professional and scientific. Human: Hello, who are you? AI: Hello! I am an AI research assistant. How can I help you today? Human: Can you tell me about the formation of black holes? AI:

从上面的例子中,您可以看到两个重要的组成部分:

  • 意图或聊天机器人的解释
  • 身份,指示聊天机器人将使用哪种风格或语气进行响应

上面的简单示例适用于使用

code
text-davinci-003
的文本完成 API。最近,OpenAI宣布了 ChatGPT API,这是一个更强大、更便宜的模型,称为
code
gpt-3.5-turbo
,专门为这种功能(聊天完成)而构建。事实上,OpenAI 甚至推荐这个模型作为非聊天用例的最佳模型。使用 ChatGPT API 的其他好处包括显著降低成本(90%)和提高效率。

像 Snap Inc.和 Instacart 这样的大公司已经在其产品中集成了由 ChatGPT 提供支持的对话功能,这些产品从个性化推荐到开放式购物目标不等。


#与 ChatGPT 的对话

#多轮对话

为了开始展示 ChatGPT 的能力,我们将使用上面的聊天机器人助手示例并讨论结果。与

code
text-davinci-003
相比,驱动 ChatGPT 的
code
gpt-3.5-turbo
模型使用聊天格式作为输入。该模型期望一系列消息作为输入,并使用这些消息生成响应。

输入:

code
System: You are an AI research assistant. You use a technical and scientific tone. User: Hello, who are you? Assistant: Greetings! I am an AI research assistant. How can I help you today? User: Can you tell me about the formation of black holes?

输出:

code
Assistant: Black holes can form when a massive star exhausts its fuel and collapses under its own gravity. The collapse creates an extremely dense object with a gravitational field so strong that not even light can escape. The boundary beyond which escape is impossible is called the event horizon...

请注意,在上面的示例中,我简化了输入和输出,但 ChatGPT 聊天完成 API 要求消息以特定格式呈现。我在下面添加了一个快照,显示了在 OpenAI Playground 中使用“Chat Mode”时此示例的外观:

CHATGPT1

我们示例的更正式 API 调用将类似于下面的示例:

python
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?"} ] )

事实上,未来开发人员与 ChatGPT 的交互方式预计将通过聊天标记语言(简称 ChatML)完成。

#单轮任务

聊天格式支持多轮对话,但它也支持类似于我们使用

code
text-davinci-003
的单轮任务。这意味着我们可以使用 ChatGPT 执行与我们为原始 GPT 模型演示的类似任务。例如,让我们尝试使用 ChatGPT 执行以下问答任务:

输入:

code
User: Answer the question based on the context below. Keep the answer short and concise. Respond \"Unsure about answer\" if not sure about the answer. Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use. Question: What was OKT3 originally sourced from? Answer:

输出:

code
Assistant: Mice.

请记住,我添加了“用户”和“助手”标签以更好地演示如何使用 ChatGPT 执行任务。以下是在 Playground 中使用的示例:

CHATGPTCLASSIC

更正式地说,这是 API 调用(我仅包括请求的消息组件):

python
CONTENT = """Answer the question based on the context below. Keep the answer short and concise. Respond \"Unsure about answer\" if not sure about the answer. Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use. Question: What was OKT3 originally sourced from? Answer: """ response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": CONTENT}, ], temperature=0, )

#指导聊天模型

根据官方 OpenAI 文档,

code
gpt-3.5-turbo
模型的快照也将提供。例如,我们可以访问 3 月 1 日的快照
code
gpt-3.5-turbo-0301
。这使开发人员可以选择特定的模型版本。这也意味着指导模型的最佳实践可能会从版本到版本发生变化。

对于

code
gpt-3.5-turbo-0301
,当前建议是在“用户”消息中添加说明,而不是可用的“系统”消息。

#引文

1v1免费职业咨询