Prompt 工程最佳实践:ChatGPT 版

AndroidRain

共 1528字,需浏览 4分钟

 ·

2023-06-22 13:56

注意:”{text input here}” 是实际文本/内容的占位符

1. 使用最新版本的模型

使用最新版本的模型,往往可以获得更好的结果。

2. 使用 ### 或 """ 分隔指令和上下文

Bad ❌

将下面的文本总结为要点列表。

Better ✅

将下面的文本总结为要点列表。

文本: """
这里是文本内容
"""

3. 在背景、结果、长度、格式、风格等方面描述的尽可能具体和详细

Bad ❌

写一首关于 OpenAI 的诗

Better ✅

以{某位著名诗人}的风格,写一首关于OpenAI的鼓舞人心的短诗,重点关注最近推出的DALL-E产品(DALL-E是一个文本到图像的机器学习模型)

4. 通过例子说明所需的输出格式

Bad ❌

从下面的文本中提取出提到的实体。提取以下四种类型的实体:公司名称,人名,具体的主题和主旨。

文本:{文本}

Better ✅

提取下面文本中提到的重要实体。首先提取所有的公司名称,然后提取所有的人名,接着提取符合内容的特定主题,最后提取概括性的主题。

期望的格式:
公司名称:<逗号分隔的公司名称列表>
人名:-||-
特定主题:-||-
一般主题:-||-

文本:{文本}

在上述例子中,使用”-||-“作为一个占位符,表示这些部分需要根据实际的文本内容来提取并填充。

5. 先从 zero-shot 开始,然后尝试 few-shot,如果这两者效果都不好,就试试微调

Zero-shot 零样本

从下面的文本中提取关键词。
文本:{文本}
关键词:

Few-Shot 少样本,即提供示例

从下面的相应文本中提取关键词。
文本1:Stripe提供了API,网页开发者可以用来在他们的网站和移动应用中集成支付处理。
关键词1:Stripe,支付处理,API,网页开发者,网站,移动应用

文本2:OpenAI已经训练了前沿的语言模型,这些模型在理解和生成文本方面非常出色。我们的API提供了访问这些模型的途径,可以用来解决几乎所有涉及语言处理的任务。
关键词2:OpenAI,语言模型,文本处理,API。

文本3:{文本}
关键词3:

6. 减少不精确的描述

Bad ❌

这个产品的描述应该相当简短,只有几句话,不要太多。

Better ✅

用一个包含3到5句的段落来描述这个产品。

7. 不要只说不应该做什么,而要说应该做什么

Bad ❌

以下是代理人和客户之间的对话。不要询问用户名或密码。不要重复。

客户:我无法登录我的账户。
代理人:

Better ✅

以下是代理人和客户之间的对话。代理人将尝试诊断问题并提出解决方案,同时避免提出任何与个人身份信息(PII)相关的问题。代理人不会询问像用户名或密码这样的个人身份信息,而是将用户引导至帮助文章 www.samplewebsite.com/help/faq

客户:我无法登录我的账户。
代理人:

8. 特定代码生成:使用”引导词“将模型推向一个特定的模式

Bad ❌

# 编写一个简单的Python函数,该函数要求如下
# 1.输入一个以英里为单位的数
# 2. 它将英里数转换为公里数

Better ✅

# 编写一个简单的Python函数,该函数要求如下
# 1. 输入一个以英里为单位的数
# 2. 它将英里数转换为公里数

import

import 引导词告诉模型写 Python 代码时应该以什么内容为开始。类似的,如果你要写 SQL 语句,可以选择 SELECT 为引导词。

OpenAI API 调用参数介绍

  • model:要调用的 AI 模型,表现越好的模型价格越贵、延迟越高;

  • temperature:温度,此参数值越高,生成的内容越随机;

  • max_tokens:内容的最大长度;

  • stop:终止符,碰到此类字符则终止生成内容;

  • logit_bias:设置指定字符出现的概率,可以避免在最终内容中生成指定字符。


浏览 84
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报