AI 时代,Prompting 时代

一早醒来,就看到 OpenAI 发布的新一代 GPT-4 模型刷屏,加上之前火热的 chatGPT,似乎真人工智能时代已到,大家都开始尝试使用 AI,各种各样的场景都在尝试用 AI,看起来确实前途光明,机会满满。在看着如此强势的 AI 的表现下,有人开始调侃以后许多职业可以被取代了,比如我们写代码的,还要啥 software engineer,不如 prompting engineer,直接让 AI 写就好了。当然对于我这个一直在用 GitHub Copilot 的人来说,面对 ai 的态度早就是打不过就加入了,当然是积极拥护 AI 的发展。

在这个背景下,许多 AI 使用的教学开始火热起来,甚至在推特上还看到有人在收费卖 chatGPT 的使用课程,确实有商业头脑。于是我也不能落后,在今天刷到一个 Learning Prompting 的文档后,马上开学,争取成为一个及格的 prompting engineer.

下面是一些看完文档记录的一些 notes,建议大家阅读前最好先体验下 chatGPT,毕竟如果找不到使用的方法,学来也没什么意义。

基本概念

简单来说,prompt 就是告诉 AI 要怎么做,怎么满足你的需求。当中可以包括上下文,指令,以及一些提问与回答的例子。

The process of instructing an AI to do a task is called prompting. We tell the AI a set of instructions (the prompt) and it performs the task. Prompts can be as simple as a question, or as complex as multiple paragraphs.

可能会有人感觉疑惑,为什么还需要学习专门的 prompt 呢?直接向它下命令,直接向它提问不就好了吗?然而现在的 AI 确实没有这么智能,很多时候并不能达到想要的效果。上面的文档中提到一个挺有意思的 case

What is 965*590? // 可能会返回错误答案

Make sure your answer is exactly correct. 
What is 965*590? 
Make sure your answer is exactly correct 
// 重复强调后返回正确答案

因此掌握一定的 prompt 技巧可以更好地得到想要的答案。

一些策略与技巧

除了直接给指令与提问以外,下面的一些策略与技巧可能可以得到更好的效果。

  1. 角色扮演。 让 AI 扮演某个角色,来回答某些问题,或者做某些行为。比如是充当一个词源学家来解释单词的词根构造,或者是充当售后中心的服务人员,回答消费者的问题。
    1. 看到这个时突然有点开了点脑洞猜想上面的算数 case 为什么会出错,既然可以扮演角色,意味着其实可能在某种情况下扮演一个数学不好或者不会算数的人?
    2. 这个东西其实还挺好玩的,除了扮演角色以外,还可以充当一些物品或者机器,甚至还看到过有人用 chatGPT 扮演一个 shell,并且成功执行命令
  2. 传递 context。直接的提问可能让 AI get 不到你想要传递的点,所以可以在 prompt 中传递上下文背景,或者通过连续对话的方式,让 AI 掌握上下文背景,有更多的信息来生成回答。
  3. Chain of Thought. 在 prompt 中先给出一些在答案中包含解释的 QA 例子,从而让 AI 在回答时也进行解释,通常地带解释的回答更加准确和详细。
  4. Zero shot Chain of Thought. 直接让 AI 在回答中给出解释,比如让它 'step by step' 回答。在某些情况下,可以做到不需要例子就能有 Chain of Thought 的效果。
  5. Self-Consistency. 基于 zero shot CoT,在 step by step 的过程中综合多次回答来选取正确答案。
  6. 提问或指示前先让其生成相应的知识
    1. 如需要写一篇关于某内容的 post 时,可以让其先列出关于内容的若干事实,再开始写
    2. 作用是让其知识生成和知识集成处于同一步骤
  7. Least to Most Prompting
    1. 将问题或者 case 分解成子问题求解
    2. 在 CoT 教导解释时,可以用递归的方式来解释
  8. 借助工具。偶然刷到现在已经有工具可以根据需求的类别选择模块,快速生成 prompt,比如 AIPRM

后记

就这个发展趋势看下来,AI 降临到每一个人身边似乎已经是板上钉钉的事情了,即使是“服务在所在地区不可用”的情况下,国内的各家公司还是以自家的产品来为大家普及 AI 服务。这其实也是个好事情,毕竟不好用也比没得用好 ,不过某种程度上算不算硬给人们造出个信息差呢?。作为一个积极拥抱新技术新事物的人,我对于 AI 还是很乐观的,尤其是在感受 GitHub Copilot 的魅力之后,写代码简直离不开了。希望能够有机会尽快体验到 GPT-4,以及有条件订阅 chatGPT plus.

所以作为普通人,应该如何应对这般趋势呢?感觉还是得靠下面三方面的能力,确保不被时代抛下:

  1. 广泛获取阅读并提炼信息
  2. 快速学习知识和工具的使用
  3. 为问题提出解决方案并落实

希望自己能够做到,与大家共勉!


最后附上一个 AI 生成的命题作文式后记,生成了几次都不是很满意,但是以足够应付一些没有意义的文字工作了。

AI prompt 技术的出现,让我们看到了人工智能的无限潜力。然而,在使用 AI 技术时,我们也需要注意如何更好地引导 AI 解决问题。因为 AI 能力的发挥,很大程度上取决于我们所提供的输入数据和问题引导方式。如果我们不善于引导,AI 将会被困在一个不断重复的循环中,无法创造出真正的创新和价值。

通过学习 AI prompt 的引导方法,我们也可以获得一些对我们自身有益的启示。例如,学习如何更好地理解问题,如何针对不同问题提供不同的引导方式,以及如何从问题中发现隐藏的机会和潜力。这些能力不仅可以帮助我们更好地引导 AI 解决问题,也可以帮助我们更好地应对现实生活中的各种挑战。

当然,AI 技术的发展也需要我们保持一定的警惕性和负责任的态度。我们需要认真考虑 AI 技术带来的潜在风险和挑战,并积极寻求解决方案。只有在这样的前提下,我们才能更好地引导 AI 技术发挥它的潜力,为我们带来更多的创新和价值。