在人工智能的世界里,咱们常常听到一个词——”prompt”。那么,什么是prompt呢?简略来说,prompt便是咱们给AI的指令或问题,它是咱们与AI进行沟通的桥梁。就像咱们在与人交谈时,咱们的问题或论题便是对话的引子,相同,prompt便是咱们与AI对话的引子。
那么,为什么prompt这么重要呢?幻想一下,假如你在寻觅一家餐厅,但你只告知导航“我想吃饭”,那么导航或许会带你去任何一家餐厅,或许是你喜爱的,也或许是你不喜爱的。但假如你告知导航“我想吃意大利面”,那么导航就会带你去最近的意大利餐厅。这便是prompt的力气,它能够协助AI更精确地了解咱们的需求,并给出满足咱们需求的答案。
在GPT4问世以来,咱们发现怎么有用地进行 prompt,成为了一个重要的论题。OpenAI的官方文档 中详细介绍了怎么更好地与GPT4进行沟通,给出了六种技巧,分别是:
- 写明晰的说明:GPT 没有读心术,因而假如你想要一个简短的输出,能够直接告知它在100字左右。假如你想要一个小朋友能听懂的解说,能够直接告知它讲给10岁的小朋友听,尽量浅显易懂些,详细评论见文章GPT4 发问技巧一:写明晰的说明。
- 供给参阅文本:GPT 比最能侃的人还能侃,答复或许会胡编乱造,或许会南辕北辙。就像一些练习册能够协助学生在考试中做得更好相同,你能够向GPT供给参阅文本,协助它答复的更精准可靠,详细评论见文章GPT4 发问技巧二:供给参阅文本。
- 将杂乱使命分解为更简略的子使命:太杂乱的使命,现在的 GPT4 处理起来还有点费劲儿,出错率比较高。因而需求你把使命拆分到 GPT4 能够处理的粒度,自己再组装每一步的结果,详细评论见文章GPT4 发问技巧三:杂乱使命拆分。
- 给GPT时刻“思考”:假如被问到 17 乘以 28,人们不会当即知道答案,但能够花时刻算出来。相同你需求 GPT 用推理链来一步步思考,而不是立马给出一个错误的答案。
- 运用外部东西:人之所以成为万物操纵,很大原因便是会用东西。相同,你能够通过将其他东西的输出供给给 GPT4,来补偿 GPT4 的缺点。例如,代码执行引擎能够协助 GPT4 做数学和运转代码。
- 体系地测验变化:假如你能够体系地评估 GPT4 的才能,那么就能逐步优化提高它的才能了。某些情况下,对 prompt 的修正或许会在某些单个的比方上提高体现,但在更具代表性的比方上导致全体体现下降。因而,为了确保 prompt 的改动效果是正面的,需求界说一个全面的测验套件。
本篇文章首要讲解第一种战略: Write clear instructions
。我将会分享一些有用的技巧,协助你更好地与GPT4进行沟通,让AI更好地了解你的需求,然后供给更精确的答案。
发问要尽量详细
假如想获取满意的答复,发问的时分,尽或许供给更多的细节。
不够详细的问题 | 更详细的问题 |
---|---|
“GPT4是什么?” | “GPT4是什么?它是怎么作业的?它的首要运用场景有哪些?” |
“我应该怎么学习编程?” | “我是一名初学者,对编程一窍不通,我应该怎么开端学习Python编程?有没有引荐的学习资源或许学习途径?” |
“我想看一部电影,有什么引荐的吗?” | “我想看一部科幻电影,最好是近几年的,有什么美观的引荐吗?” |
“我想做一个机器学习项目,有什么主张吗?” | “我是一名初学者,对机器学习有基本的了解,我想做一个关于图像识别的机器学习项目,有没有引荐的数据集或许学习资源?” |
“给我介绍 3 种常见的生果” | “给我介绍 3 种常见的生果,用 markdown 表格输出名字,常见品种,闻名产地,功效。” |
这些比方中,你能够看到,更详细的问题不仅包含了你想要知道的内容,还包含了你的布景信息,这样GPT4就能更好地了解你的需求,然后供给更相关的答案。能够在 Openai Playground 里边重复实验,找到合适自己领域的提示词。
给 AI 设定布景
OpenAI 支撑给 GPT4 设定一个体系音讯 system message
。你能够在这儿,给AI设定一个人物,或许设定使命的一些布景,来看下面的示例。
体系音讯:当我要求你协助写作时,你将以一位我国古代诗人的身份回复,每段包含3到5句诗。当你被要求写关于环保相关的论题时,你将以一位环保主义者的身份回复,强调环保的重要性。
问题一:请帮我写一封感谢信,感谢我的朋友帮我搬迁。 答复一:
搬居新居逢喜事,朋友情深付辛劳。
荷携重物义无言,同谋共事品常好。感谢并存心头里,鞠躬尽瘁良友谊。
愿同花非共时赏,未来年月笑同谈。
问题二:我需求一份关于全球变暖的报告。 答复二:
全球变暖糟蹋地球母亲,绿水青山皆难舍。
急景洪波蔓至处,殃及鱼鳖自悼泣。人类觉悟始重权,追求循环需齐驱。 节能减排现担忧,环保使命急当行。
共勉繁衍无止境,还给子孙蓝天碧。 环宇共存留恒信,大地和谐互生息。
你能够在 Openai Playground 纵情尝试。ChatGPT Plus 官方聊天现在还不支撑设置体系音讯,不过大部分第三方客户端都支撑,比方 Opencat,Chatbox 等。
运用分隔符
运用分隔符来明晰地指示输入或许输出的不同部分是一种有用的战略。分隔符,如三引号、XML标签、章节标题等,能够协助划分需求以不同方法处理的文本部分。
不过实践来看,效果也不是那么精准。比方关于发问
只解说 “` 包起来的代码片段。
“`
import os
“`print(os.getcwd())
详细见下图:
它这儿仍是解说了下面的一句代码,除非再强制让它不解说。特别注意,OpenAI 的 GPT4 是一种概率模型,没有百分百可靠。咱们能做的是尽最大或许,用 GPT4 听得懂的提示词,让它完成使命。就日常运用来说,我一般会让它输出的时分,把代码放在三引号里边,每次仍是挺精确的。
明晰完成使命的过程
有时分你需求有固定的过程来完成某些使命,这时分能够把固定过程作为提示词的部分,让 GPT4 更好的答复。比方能够设定依照下面的过程处理输入内容:
关于你接收到的信息,依照下面过程进行处理:
- 总结为一句话概要;
- 将概要翻译为英文;
- 扩展第二步的英文到3到5句;
详细看下面的示例:
供给示例
在 GPT 模型中,"few-shot"
一般指的是在 prompt 中供给几个 输入-输出 对作为示例,然后提出一个新的输入,让模型生成相应的输出。这些输入-输出对能够协助模型了解使命的要求。这种方法的灵感来自人类的学习才能,人类一般只需求看几个比方就能了解新的概念或使命。
以下是一个详细的比方,假设你想让GPT模型帮你将英文的日期格式转换为特定的我国日期格式,你能够这样结构你的prompt。
能够看到没有示例情况下给的输出,不是很符合要求。有了示例之后,就靠谱了很多。
指定长度
GPT-4生成文本的方法是一次生成一个词或一个字符,直到到达某个中止条件。这个中止条件或许是生成了特定数量的词/字符,或许模型猜测到了文本的结束。因而,虽你能够要求GPT-4生成特定长度的文本,比方 50 个字。但注意它或许无法精确地到达这个长度,例如,假如你要求一个100字的故事,你或许会得到一个98字或102字的故事。一般来说,能够指定生成几句或许几个阶段,这样稍微准一些。
GPT-4 的输出长度还受到模型的最大生成长度的约束。这个约束或许有所不同,因为Open AI支撑不同长度约束的模型。假如你要求的文本长度超过了这个约束,那么你得到的文本将会被截断。这儿的约束 token 数,是一次输入、输出加起来的长度,所以假如你的输入很长,或许会影响输出的长度。
后续会在个人博客# GPT4 发问技巧一:写明晰的说明 持续更新本文以及系列文章。