本帖最后由 喝酸奶不舔盖 于 2024-3-6 11:33 编辑
01 Prompt的运行原理 我们已经知道,要用好ChatGPT这个AI大杀器,就要学会和它交互的语言,这个语言就是我们常说的Prompt,学习Prompt的重要性我们已经强调过很多遍了,这里就不再赘述了,今天给大家介绍一些Prompt的小技巧,能够让我们更准确、更高效地向ChatGPT提问,进而得到更高质量的回答。 由于模型训练的方式或训练数据的特点,某些特定的提示格式能够更好地对应于手头的任务。下面我们将介绍一些我们发现能够稳定良好运行的提示格式,但同时也欢迎你探索适合你任务的其他格式。
02 Prompt的实用小技巧
注意:"{text input here}" 是实际文本/上下文的占位符 1. 使用最新模型 为了获得最佳效果,我们通常推荐使用最新、最强大的模型。截至2022年11月,最佳选择是用于文本生成的“text-davinci-003”模型,以及用于代码生成的“code-davinci-002”模型。 2. 使用分隔符
将指令放在提示的开头,并使用###或"""分隔指令和上下文 效果较差 ❌: 将以下文本总结为列出最重要要点的项目清单。 {text input here}
效果较好 ✅: 将以下文本总结为列出最重要要点的项目清单。 文本:""" {text input here} """
3. 描述详细具体 尽可能具体、描述详细,并明确要求的上下文、结果、长度、格式、风格等。 效果较差 ❌: 写一首关于OpenAI的诗。
效果较好 ✅: 写一首关于OpenAI的短诗,以{著名诗人}的风格,以最近的DALL-E产品发布为主题。(DALL-E是一款文本到图像的机器学习模型)
4. 明确希望的输出格式
通过示例明确期望的输出格式 (示例1, 示例2)。 效果较差 ❌:
提取以下文本中提到的实体。提取以下4种实体类型:公司名称、人名、具体主题和主题。 文本:{text} 展示,并说明 - 当展示特定格式要求时,模型的反应更好。这也使得更容易以程序化的方式可靠地解析多个输出。
效果较好 ✅:
从以下文本中提取重要的实体。首先提取所有公司名称,然后提取所有人名,接着提取符合内容的特定主题,最后提取总体主题。 期望格式:公司名称: <逗号分隔的公司名称列表> 人名: -||- 特定主题: -||- 总体主题: -||- 文本: {text}
5. 无样本少样本微调
首先尝试无样本学习,然后尝试少样本学习,如果两者都不起作用,那么进行微调。 ✅ 无样本学习 从下面的文本中提取关键词。 文本:{text} 关键词:
✅ 少样本学习 - 提供几个示例
从下面的文本中提取对应的关键词。 文本1:Stripe提供的API可以让网页开发者将支付处理集成到他们的网站和移动应用中。关键词1:Stripe, 支付处理, APIs, 网页开发者, 网站, 移动应用 文本2:OpenAI已经训练了尖端的语言模型,这些模型在理解和生成文本方面非常出色。我们的API提供了访问这些模型的方法,可以用来解决几乎任何涉及到语言处理的任务。关键词2:OpenAI, 语言模型, 文本处理, API。 文本3:{text} 关键词3:
✅微调:搜索fine-tuning查看最佳实践。 6. 减少“夸大”描述
减少“夸大”的和不精确的描述 效果较差 ❌: 这个产品的描述应该相当简短,只有几句话,不要过多。
效果较好✅: 用3到5句话的段落描述这个产品。
7.不做什么vs做什么
不仅仅说不做什么,而且要说做什么。 效果较差 ❌:
以下是一个服务商和客户的对话。服务商不能问用户名或密码,也不能重复提问。 客户:我无法登录我的账户。 服务商:
效果较好 ✅:
以下是一个服务商和客户的对话。服务商会试图诊断问题并提出解决方案,同时避免问及任何个人隐私信息。服务商不应该询问用户名或密码等个人隐私信息,而是应该引导用户查阅帮助。 客户:我无法登录我的账户。 服务商:
8. 使用导言词生成代码
代码生成特定 - 使用“导言词”引导模型朝某种模式生成 效果较差 ❌:
编写一个简单的python函数,该函数 在下面的代码示例中,添加“import”暗示了模型应该开始写Python代码。(类似地,“SELECT”是SQL语句开始的一个很好的提示。)
效果较好 ✅:
编写一个简单的python函数,该函数 1. 向我询问一定的英里数 2. 把它转换成公里数 import
9. 设定模型参数
设定好模型的参数。总的来说,我们发现模型、温度temperature和max_tokens是最常用的几个参数,用来改变模型的输出。 模型:高性能模型更昂贵,延迟也更高。 温度temperature:是模型输出不太可能的词汇的频率。temperature越高,输出越随机(通常也更有创意)。然而,这并不等同于“真实性”。对于大多数事实性用例,如数据提取,以及真实的问答,温度为0是最好的。 max_tokens(最大长度):并不控制输出的长度,但是它是生成词汇的硬性限制。我们可以通过设置这个参数控制输出的长度。
|