ChatGPT 应用场景1:让AI回答问题
这个场景应该是使用 AI 产品最常见的方法。以 ChatGPT 为例,一般就是你提一个问题,ChatGPT 会给你答案,比如像这样:
在这个场景下,prompt 只要满足前面提到的基本原则,基本上就没有什么问题。但需要注意,不同的 AI 模型擅长的东西都不太一样,prompt 可能需要针对该模型进行微调。
另外,目前的 AI 产品,也不是无所不能,有些问题你再怎么优化 prompt 它也没法回答你。以 ChatGPT 为例:
- ChatGPT 比较擅长回答基本事实的问题,比如问: 什么是牛顿第三定律? 但不太擅长回答意见类的问题,比如问它: 谁是世界第一足球运动员?它就没法回答了。
- 另外,ChatGPT 的数据仅有 2021 年 9 月以前的,如果你问这个时间以后的问题,比如 : 现在的美国总统是谁?它的答案是「截至2021年9月,现任美国总统是乔·拜登(Joe Biden)。」
这里的ChatGPT指ChatGPT3.5,具有查询功能的bingAI(基于ChatGPT)就能获取较新的资讯。
这种直接提问的 prompt ,我们称之为 Zero-shot prompt(零样本提示)。模型基于一些通用的先验知识或模型在先前的训练中学习到的模式,对新的任务或领域进行推理和预测。你会在高级篇看到相关的介绍,以及更多有意思的使用方法。
另外,正如我在前面基础用法一章中提到的那样,问答场景里还有一个很重要的玩法,就是多轮聊天,你可以针对某个问题,进行多轮的提问。
使用技巧一:To do and Not To do(要做和不要做,即给问题加条件)
注意
我介绍的技巧其实在各个场景都可以使用,我将其放在某个场景下解释,只是因为我觉得它更有可能在这个场景用到。你也会更容易记住这个用法。并不意味着这个技巧仅能在此场景使用。并且多技巧混用也是个不错的用法。
在问答场景里,为了让 AI 回答更加准确,一般会在问题里加条件。比如让 AI 推荐一部电影给你 Recommend a movie to me (给我推荐一部电影)。但这个 prompt 太空泛了,AI 无法直接回答,接着它会问你想要什么类型的电影,但这样你就需要跟 AI 聊很多轮,效率比较低。
所以,为了提高效率,一般会在 prompt 里看到类似这样的话(意思是不要询问我对什么感兴趣,或者问我的个人信息):
DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION.
不要询问我对什么感兴趣,或者问我的个人信息
如果你在 ChatGPT 里这样提问,或者使用 ChatGPT 最新的 API ,它就不会问你问题,而是直接推荐一部电影给你,它的 Output 是这样的:
Certainly! If you're in the mood for an action-packed movie, you might enjoy "John Wick" (2014), directed by Chad Stahelski and starring Keanu Reeves. The movie follows a retired hitman named John Wick who seeks vengeance against the people who wronged him. It's a fast-paced and stylish film with lots of thrilling action sequences and an engaging story. If you're looking for something that will keep you on the edge of your seat, "John Wick" is definitely worth a watch!
当然如果你有心情看一部动作片,你可能会喜欢《约翰·威克》(2014),该片由查德·斯塔赫尔斯基执导,基努·里维斯主演。这部电影讲述了一个名叫约翰·威克的退休杀手的故事,他试图报复那些冤枉他的人。这是一部快节奏、时尚的电影,有很多激动人心的动作场面和引人入胜的故事。如果你正在寻找能让你坐在座位边上的东西,《约翰·威克》绝对值得一看!
但如果你使用的是如 Davinci-003 这样的模型,它的 Output 很可能是这样的,它还会问你的兴趣爱好:
Sure, I can recommend a movie based on your interests. What kind of movie would you like to watch? Do you prefer action, comedy, romance, or something else?
当然,我可以根据你的兴趣推荐一部电影。你想看什么类型的电影?你更喜欢动作片、喜剧、浪漫片还是其他什么?
所以 OpenAI 的 API 最佳实践文档里,提到了一个这样的最佳实践:
Instead of just saying what not to do, say what to do instead.
(与其告知模型不能干什么,不妨告诉模型能干什么)
我自己的实践是,虽然现在最新的模型已经理解什么是 Not Todo ,但如果你想要的是明确的答案,加入更多限定词,告知模型能干什么,回答的效率会更高,且预期会更明确。还是电影推荐这个案例,你可以加入一个限定词:
Recommend a movie from the top global trending movies to me.
向我推荐一部全球热门电影。
当然并不是 Not Todo 就不能用,如果:
- 你已经告知模型很明确的点,然后你想缩小范围,那增加一些 Not Todo 会提高不少效率。
- 你是在做一些探索,比如你不知道如何做精准限定,你只知道不要什么。那可以先加入 Not Todo ,让 AI 先发散给你答案,当探索完成后,再去优化 prompt。
以下是一些场景案例,我整理了两个 Less Effective(不太有效的) 和 Better(更好的) prompt,你可以自己尝试下这些案例:
场景 | 不太有效的(Less Effective) | 更好的提问(Better) | 原因 |
---|---|---|---|
推荐雅思必背英文单词 | Please suggest me some essential words for IELTS (请给我推荐一些雅思必备单词) | Please suggest me 10 essential words for IELTS (请给我推荐10个雅思必备单词) | 后者 prompt 会更加明确,前者会给大概 20 个单词。这个仍然有提升的空间,比如增加更多的限定词语,像字母 A 开头的词语。 |
推荐香港值得游玩的地方 | Please recommend me some places to visit in Hong Kong. Do not recommend museums. (请给我推荐一些香港的景点。不要推荐博物馆。) | Please recommend me some places to visit in Hong Kong including amusement parks. (请给我推荐一些香港的景点,包括游乐园。) | 后者的推荐会更准确高效一些,但如果你想进行一些探索,那前者也能用。 |
ChatGPT应用场景2:基于已有的示例回答
场景介绍
在某些场景下,我们能比较简单地向 AI 描述出什么能做,什么不能做。但有些场景,有些需求很难通过文字指令传递给 AI,即使描述出来了,AI 也不能很好地理解。
比如给宠物起英文名,里面会夹杂着一些所谓的名字风格。此时你就可以在 prompt 里增加一些例子,我们看看这个例子。
这个是没有任何示例的 Prompt:
Suggest three names for a horse that is a superhero.
给一匹超级英雄马取三个名字。
输出如下所示。第一个感觉还行,第二个 Captain 有 hero 的感觉,但 Canter 就像是说这匹马跑得很慢,感觉不太合适,而且三个都比较一般,不够酷。
Thunder Hooves, Captain Canter, Mighty Gallop
技巧 2:增加示例
如果你无法用文字准确解释问题或指示,你可以在 prompt 里增加一些案例:
Suggest three names for an animal that is a superhero.
Animal: Cat
Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline
Animal: Dog
Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot
Animal: Horse
Names:
给一只超级英雄动物取三个名字。
动物:猫
姓名:沙普克劳上尉、Fluffball探员、不可思议的猫科动物
动物:狗
姓名:Ruff the Protector、Wonder Canine、Barks-Lot爵士
动物:马
姓名:
增加例子后,输出的结果就更酷一些,或者说是接近我想要的那种风格的名字。
Gallop Guardian, Equine Avenger, The Mighty Stallion
以下是一些场景案例,我整理了两个 Less Effective(不太有效的)和 Better(更好的)prompt,你可以自己尝试下这些案例:
场景 | 不太有效的(Less Effective) | 更好的(Better) | 原因 |
---|---|---|---|
起产品名 | Product description: A pair of shoes that can fit any foot size. Seed words: adaptable, fit, omni-fit. Product names: (产品描述:一双可以穿任何尺码的鞋。 种子词:适应性强,适合,全能。 产品名称: ) | Product description: A home milkshake maker Seed words: fast, healthy, compact. Product names: HomeShaker, Fit Shaker, QuickShake, Shake Maker Product description: A pair of shoes that can fit any foot size. Seed words: adaptable, fit, omni-fit. Product names: (产品描述:家用奶昔机 种子词:快速、健康、紧凑。 产品名称:HomeShaker、Fit Shaker、QuickShake、Shake Maker 产品描述:一双可以穿任何尺码的鞋。 种子词:适应性强,适合,全能。 产品名称:) | 当给出一个示例的时候,ChatGPT会更多的模仿提供的示例 |
将电影名称转为 emoji | Convert Star Wars into emoji (将星球大战转换为emoji) | Convert movie titles into emoji. Back to the Future: 👨👴🚗🕒 Batman: 🤵🦇 Transformers: 🚗🤖 Star Wars: (将电影标题转换为emoji: 回到未来:👨👴🚗🕒 蝙蝠侠:🤵🦇 变形金刚:🚗🤖 星球大战: ) | 前一种为: 👤🚀👽💥🌌👥👤🚀👽💥🌌👥 后一种为: 👤🚀👽💥🌌 前一种更倾向于对故事内容的阐述:(翻译过来就是:“卢克·天行者在太空中飞行,用爆炸和冒险与外星人作战。”) 后一种则更多的是翻译片名,而我们需要的正是后一种(如果你需要前一种,可以在提供示例的时候使用故事内容的阐述) |
🔴
你可能在试用此技巧的时候发现,即使给了案例,模型也不一定会返回正确的答案,此时你就需要用到更高级的技巧,在高级篇我会讲如何优化这个提示,从而让结果更加准确。