AI 时代,提示词便是生产力

忽而相遇 2023-06-20 15:48:34 浏览数 (714)
反馈

一、背景

2023 年可谓是 AI 元年,随着 GPT 的发布,人工智能正在影响着人们的生活。甚至有些人会焦虑是否自己将会被取代而失业。 据 36 氪,如何看待 AI 代替人类工作? 李彦宏表示,不管有多少工作被替代,这只是整个图景的一部分,另外一部分是,存在我们现在甚至无法想象的更多新机会。做一个大胆预测,十年以后,全世界有50%工作会是提示词工程(prompt engineering),不会写提示词(prompt)的人会被淘汰。

现在很多人都已经开始使用人工智能工具,如 ChatGPT 、 Bard、文心一言等聊天机器人,还有 New Bing 、Phind、You.com 等人工智能搜索引擎,还有 Notion AI、印象 AI 等人工智能笔记软件,还有其他诸多类型的工具。 使用人工智能工具的人比没使用工具的人会有很大优势,不同的人工智能工具对同一个问题的理解程度不同,同一款人工智能工具,不同的提问方式得到的答案也会有很大差异,因此提示词至关重要。

二、反向示例

有些同学请教同事,在一些技术群里提问时,提出的问题都是模糊的,人都很难理解,更别说人工智能了。

2.1 示例一

比如“我想实现用户在某个网页提交时获取用户提交的信息,怎么实现?” 某个网页是哪个网页?是你开发的还是别人开发的? 获取信息的目的是什么?

2.2 示例二

比如“帮我给某个 Dao 类写一个缓存”,然后期待它能够写完美的实现自己的想法,然后大失所望,说人工智能也不咋地啊。 大哥,你这描述人都听不懂啊。 某个 Dao 是哪个 Dao?是不是可以给举个例子,比如有一个 StudentDao,其中包括增删改查方法。 写一个缓存是指啥?使用什么编程语言,使用哪个缓存框架?是内存缓存还是分布式缓存?是不是可以限定清楚是 Java 语言,使用 Guava框架。

三、什么是好的提示词

Prompt 是指对模型提出的问题进行描述和约束的文本片段,可以包括问题的主题、范围和关键词等信息。

好的 Prompt 应该具备以下几个特点: 清晰具体:好的 Prompt 应该简单明了,避免使用复杂或模糊的语言。Prompt 应该越具体越好,避免过于广泛或开放式的问题。例如,如果我们想让 ChatGPT 回答策略模式的使用场景,我们可以使用 “请描述下策略模式的使用场景” 而不是 “请描述下策略模式”。

重点明确:好的 Prompt 应该有明确的目的,避免过于广泛或开放式的问题。Prompt 应该能够让 ChatGPT 理解问题的背景和范围,从而更好地回答问题。 有可能,提供可选项或问题列表供 AI 选择回答。对于有多个可能回答的 prompts,提供可选项或问题列表可以帮助 AI 选择最恰当的回答方式。但不要提供太多可选项,以免导致 AI 无法决定。 例如,我们可以使用 “请列举出可以提高代码拓展性的设计模式” 而不是 “请告诉我几个设计模式”。

充分详尽:好的 Prompt 应该包含足够的信息,以便 ChatGPT 能够理解问题的背景和范围。例如,如果我们想让 ChatGPT 回答关于狗的健康问题,我们可以使用 “请描述下策略模式的使用场景,并给出 Java 语言的示例代码” 而不是 “告诉我一些策略模式的信息”。

与任务相关:好的 Prompt 应该与任务相关,能够引导 ChatGPT 完成特定的任务。例如,如果我们想要 ChatGPT 回答某个特定的问题,我们可以将问题直接作为 Prompt,以确保 ChatGPT 能够理解任务要求。

语言上下文:好的 Prompt 应该包含一些语言上下文和限制条件,必要的背景信息和前提条件,以帮助 ChatGPT 更好地理解问题。例如,我们在上面的聊天中要求 ChatGPT 给我们准备一篇描写包装器模式的文章大纲,我们可以使用 “请根据上面的大纲帮我写一个草稿”,这样 ChatGPT 更容易理解问题。

多样性:好的 Prompt 应该具备一定的多样性,不仅可以满足不同的需求和场景,还可以帮助 ChatGPT 更好地理解和生成不同类型的回答。例如,我们可以使用不同类型的 Prompt,例如填空式、选择题或开放式问题,以获得更丰富和多样化的回答。

总之,好的 Prompt 应该具备清晰简洁、重点明确、充分详尽、与任务相关、语言上下文和多样性等特点,这样才能帮助 ChatGPT 更好地理解问题和生成准确有用的回答。

四、经验

4.1 根据 AI 的表现调整 prompts

你可以根据 AI 的表现来调整和改进你给出的 prompts。找出哪些 prompts 使 AI 回答成功, 哪些则需要改进。适当调整 prompts 可以促进更好的互动体验。

另外,有时候不要期待一次提问就一定可以得到想要的答案,可以分步骤提问。 比如想写一篇文章,可以先提问让 AI 给你写出一个大纲;如果大纲不符合你的要求,你可以再次提问让它修改大纲;大纲修改好之后,再让 AI 给你写出草稿;如果草稿不满意可以再描述自己的想法让它再次修改。

4.2 中文不满足时可以翻译成英文提问

现在很多大语言模型的语料中文占比较少,使用中文提问时有些模型会优先匹配中文的内容,很容易得不到想要的答案。 当使用中文得不到满意的答案,可以尝试将问题翻译成英文再去提问,或许会有意外收获。

4.3 预定义提示词模板可以提高效率

大家可以将常用的提示词定义成模板(参考 ChatGPT Sidebar 浏览器插件),下次快速使用。

4.4 尝试多种语言模型

有时候哪怕提示词准确,某个大语言模型也未必能够得到满意的答案。 大家除了尝试调整提示词之外,还可以考虑换几个不同的语言模型。 通常结合不同的语言模型更能够得到更全面的答案。

可以使用 Utools 的网页快开的功能,输入一个问题同时打开多个 AI 搜索引擎来搜索问题,效率翻倍。

Phind 网页快开的搜索结构:

https://www.phind.com/search?q={query}&source=searchbox

New Bing 网页快开的搜索结构:

https://www.bing.com/?q={query}&setmkt=zh-HK&setlang=zh-CN

You.com 网页开开的搜索结构:

https://you.com/search?q={query}&fromSearchBar=true&tbm=youchat

五、提示词教程

网上还有很多相对专业的提示词教程,大家可以参考学习。

5.1 prompt-patterns

网站地址: https://prompt-patterns.phodal.com/

四种基础模式: 特定指令(By specific):在这种模式下,我们给模型提供一些特定信息,例如问题或关键词,模型需要生成与这些信息相关的文本。这种模式通常用于生成答案、解释或推荐等。特定信息可以是单个问题或多个关键词,具体取决于任务的要求。

指令模板(Instruction Template):在这种模式下,我们给模型提供一些明确的指令,模型需要根据这些指令生成文本。这种模式通常用于生成类似于技术说明书、操作手册等需要明确指令的文本。指令可以是单个句子或多个段落,具体取决于任务的要求。

代理模式(By proxy):在这种模式下,可以充当了一个代理,代表某个实体(例如人、角色、机器人等)进行操作或交互。代理模式的核心思想是引入一个中介对象来控制对实际对象的访问,从而实现一定程度上的隔离和保护。诸如于在 ChatGPT 中,”act as xxx” 可以让 ChatGPT 充当一个代理,扮演某个角色或实体的身份,以此来处理与该角色或实体相关的任务或请求。

示例模式(By demonstration):在这种模式下,我们给模型提供一些示例文本,模型需要生成与示例文本类似的文本。这种模式通常用于生成类似于给定示例的文本,例如自动生成电子邮件、产品描述、新闻报道等。示例文本可以是单个句子或多个段落,具体取决于任务的要求。

该教程,还介绍了这些模式结合适用的混合模式。

5.2 Learning Prompt

网站:https://learningprompt.wiki/docs/%F0%9F%91%8B%20Welcome 提供了一些基础和高级提示词指导。针对不同的场景给出很多示例和使用技巧。

5.3 learnprompting

网站:https://learnprompting.org/?ref=allthingsai

该网站给出全面的提示词学习教程,包括一些基础概念、基础应用和一些进阶用法等。

如思维链提示过程:

5.4 ChatGPT 指令大全

网址:https://www.explainthis.io/zh-hans/chatgpt 该网站给出了很多经过提炼过的提示词,可以直接复制来使用。

5.5 其他

未来有更好的提示词教程会补充到这里。

六、总结

很多人提出的问题连人都难以理解,却希望人工智能能够完全和自己“心有灵犀” ,自己描述不清楚还埋怨 AI 不够智能。

希望本文可以让大家意识到这个问题,并且通过提供的相关教程,尽早掌握提问技巧,更好地利用人工智能更快的学习和更快地解决问题。


0 人点赞