由于 OpenAI 模型的训练方式,存在特定的提示格式能够特别有效,并产生更有用的模型输出。OpenAI 官方的提示工程指南通常是开始时的最佳资源。
以下是一些我们发现效果良好的提示格式,但请自由探索不同的格式,它们可能更适合您的任务。
一般准则和示例
注意: 中间的{}
是实际文本/上下文的占位符。
1. 使用最新模型
为了获得最佳效果,通常建议使用最新、功能最强的模型。新模型往往更容易进行提示工程。
2. 在提示开头放置指令,并使用###
或"""
分隔指令和上下文
不推荐: ❌
总结如下文本的最重要点,以项目符号列表形式。
{text input here}
推荐: ✅
将如下文本总结为最重要点的项目符号列表。
文本:
"""
{text input here}
"""
3. 明确、描述性地提供所需上下文、结果、长度、格式、风格等信息
对上下文、结果、长度、格式、风格等明确具体。
不推荐: ❌
写一首关于 OpenAI 的诗。
推荐: ✅
写一首关于 OpenAI 的短而鼓舞人心的诗,聚焦于最近的 DALL-E 产品发布(DALL-E 是一个文本到图像的 ML 模型),采用{著名诗人}的风格。
4. 通过示例明确指定输出格式
不推荐: ❌
从下面的文本中提取实体。提取以下 4 种实体类型:公司名称、人名、特定主题和主题。
文本:{text}
模型在看到具体的格式要求时响应得更好。这也有助于更可靠地程序化解析多个输出。
推荐: ✅
从以下文本中提取提及的重要实体。首先提取所有公司名称,然后提取所有人名,接着提取与内容相关的具体主题,最后提取广泛的总体主题。
期望格式:
公司名称:<用逗号分隔的公司名称列表>
人名:-||
具体主题:-||
总体主题:-||
文本:{文本内容}
5. 先零样本提示,然后少量样本提示,两者都无效,再微调
✅ 零样本提示:
从下文提取关键词。
文本:{text}
关键词:
✅ 少量样本提示 - 提供几个例子:
从对应的文本中提取关键词。
文本 1:Stripe 提供了开发者可以用于将其网站和移动应用集成支付处理的 API。
关键词 1:Stripe、支付处理、API、Web 开发者、网站、移动应用
##
文本 2:OpenAI 训练了先进的语言模型,非常擅长理解和生成文本。我们的 API 提供了这些模型的访问,可用于解决几乎任何涉及语言处理的任务。
关键词 2:OpenAI、语言模型、文本处理、API。
##
文本 3:{text}
关键词 3:
微调: 在这里查看微调最佳实践。
6. 减少模糊和不精确的描述
不推荐: ❌
这个产品的描述应该相当简短,只有几句话,不要太长。
推荐: ✅
使用 3 到 5 句话的段落来描述这个产品。
7. 不只是说不该做什么,而是说该怎么做
不推荐: ❌
以下是 Agent 和 Customer 之间的对话。不要询问用户名或密码。不要重复。
Customer: 我无法登录我的账户。
Agent:
推荐: ✅
以下是 Agent 和 Customer 之间的对话。Agent 将尝试诊断问题并提出解决方案,同时避免涉及个人识别信息(PII)的问题。不要询问 PII,如用户名或密码,而是将用户引导到帮助文章:www.samplewebsite.com/help/faq
Customer: 我无法登录我的账户。
Agent:
8. 代码生成特定 - 使用 “引导词” 推动模型遵循特定模式
不推荐: ❌
# 写一个简单的 Python 函数
# 1. 问我一个英里数
# 2. 将英里转换为公里
在这个代码示例中,添加 “ import ” 暗示模型应开始编写 Python 代码。同样,“ SELECT
” 是开始 SQL 语句的好提示。
推荐: ✅
# 写一个简单的 Python 函数
# 1. 问我一个英里数
# 2. 将英里转换为公里
import
参数
一般来说,我们发现模型和温度是最常用的参数来调整模型输出。
模型 - 高性能模型通常更昂贵,可能有更高的延迟。
**温度 - ** 用来衡量模型输出不太可能的令牌的概率。温度越高,输出越随机(通常更具创意)。然而,这并不等同于 “真实性”。对于大多数事实性的用途,如数据提取和诚实问答,温度为 0 通常最好。
max_tokens(最大长度) - 不控制输出的长度,而是生成令牌的硬限制。理想情况下,您不会经常达到这个限制,因为当模型认为自己完成或遇到你定义的停止序列时,它会停止。
stop(停止序列) - 一组字符(令牌),一旦生成,将导致文本生成停止。
Comments