# 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月)