# ChatGPT提示工程
在本节中,我们将介绍ChatGPT的最新提示工程技术,包括提示、应用、限制、论文和其他阅读材料。
本节正在大力开发中。
主题:
- [ChatGPT简介](#chatgpt-introduction)
- [审查对话任务](#reviewing-the-conversation-task)
- [与ChatGPT的对话](#conversations-with-chatgpt)
---
## ChatGPT简介
ChatGPT是由OpenAI训练的一种新模型,具有交互式对话的能力。该模型经过训练,可以按照提示中的指示,在对话的上下文中提供适当的响应。ChatGPT可以帮助回答问题、建议食谱、以特定风格写歌词、生成代码等等。
ChatGPT使用人类反馈的强化学习(RLHF)进行训练。虽然这个模型比以前的GPT迭代要强大得多(并且还经过了训练以减少有害和不真实的输出),但它仍然有一些限制。让我们通过具体的例子来了解一些能力和限制。
您可以在[这里](chat.openai.com)使用ChatGPT的研究预览,但在下面的示例中,我们将使用OpenAI Playground上的“Chat”模式。
---
## 审查对话任务
在之前的指南中,我们简要介绍了对话能力和角色提示。我们介绍了如何指示LLM以特定的风格、特定的意图、行为和身份进行对话。
让我们回顾一下我们之前的基本示例,其中我们创建了一个对话系统,该系统能够对问题生成更多的技术和科学响应。
*提示:*
```
以下是与AI研究助手的对话。助手的语气是技术和科学的。
人:你好,你是谁?
AI:问候!我是AI研究助手。我今天能帮你什么忙吗?
人:你能告诉我黑洞的形成吗?
AI:
```
从上面的例子中,您可以看到两个重要的组成部分:
- **意图**或聊天机器人的解释
- **身份**,指示聊天机器人将使用哪种风格或语气进行响应
上面的简单示例适用于使用`text-davinci-003`的文本完成API。最近,OpenAI[宣布了ChatGPT API](https://openai.com/blog/introducing-chatgpt-and-whisper-apis),这是一个更强大、更便宜的模型,称为`gpt-3.5-turbo`,专门为这种功能(聊天完成)而构建。事实上,OpenAI甚至推荐这个模型作为非聊天用例的最佳模型。使用ChatGPT API的其他好处包括显著降低成本(90%)和提高效率。
像Snap Inc.和Instacart这样的大公司已经在其产品中集成了由ChatGPT提供支持的对话功能,这些产品从个性化推荐到开放式购物目标不等。
---
## 与ChatGPT的对话
### 多轮对话
为了开始展示ChatGPT的能力,我们将使用上面的聊天机器人助手示例并讨论结果。与`text-davinci-003`相比,驱动ChatGPT的`gpt-3.5-turbo`模型使用聊天格式作为输入。该模型期望一系列消息作为输入,并使用这些消息生成响应。
*输入:*
```
系统:你是一个AI研究助手。你使用技术和科学的语气。
用户:你好,你是谁?
助手:问候!我是AI研究助手。我今天能帮你什么忙吗?
用户:你能告诉我黑洞的形成吗?
```
*输出:*
```
助手:当一个巨大的恒星耗尽燃料并在自身的引力下坍塌时,就会形成黑洞。这种坍塌使星体变得极其密集,具有极强的引力场,甚至连光都无法逃脱。这个无法逆转的点被称为事件视界。一旦一颗恒星穿过事件视界,它就被认为是一个黑洞...
```
请注意,在上面的示例中,我简化了输入和输出,但ChatGPT聊天完成API要求消息以特定格式呈现。我在下面添加了一个快照,显示了在OpenAI Playground中使用“Chat Mode”时此示例的外观:
我们示例的更正式API调用将类似于下面的示例:
```python
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?"}
]
)
```
事实上,未来开发人员与ChatGPT的交互方式预计将通过[聊天标记语言](https://github.com/openai/openai-python/blob/main/chatml.md)(简称ChatML)完成。
### 单轮任务
聊天格式支持多轮对话,但它也支持类似于我们使用`text-davinci-003`的单轮任务。这意味着我们可以使用ChatGPT执行与我们为原始GPT模型演示的类似任务。例如,让我们尝试使用ChatGPT执行以下问答任务:
*输入:*
```
用户:根据下面的上下文回答问题。保持答案简短明了。如果不确定答案,请回答“不确定答案”。
```ASSISTANT: Mice.- [会话型人工智能的政治意识形态:ChatGPT的亲环境、左倾自由主义倾向的证据汇总](https://arxiv.org/abs/2301.01768)(2023年1月)
- [会话型人工智能的政治意识形态:ChatGPT的亲环境、左倾自由主义倾向的证据汇总](https://arxiv.org/abs/2301.01768)(2023年1月)
- [提高可靠性的技术 - OpenAI Cookbook](https://github.com/openai/openai-cookbook/blob/main/techniques_to_improve_reliability.md)
- [Awesome ChatGPT Prompts](https://github.com/f/awesome-chatgpt-prompts)
- [介绍ChatGPT](https://openai.com/blog/chatgpt)(2022年11月)