【随笔】过去所有提示词工程都错了

303 阅读7分钟

写的比较随意,有些逻辑叙述并不是很严格,各位轻喷。写一些自己对提示词工程的看法,以作投石问路,看能否激起更大水花。

有时候我一直在想一个问题。现在的AI明明能够理解许多复杂的问题,但为什么实际功用上却像镜花水月一样,没什么应用,只局限在【帮写代码、帮写文案】这样的应用上。

大量接触研究了一个月,我发现这是业内对提示词工程的理解有误导致的。

首先看一下业内对提示词的理解,然后再来说哪里错了:

无论是让AI帮你写提示词,还是到处找寻提示词工程的课程,它们写出的内容都冗长至极,逻辑复杂,限制巨多……怎么描述呢,其实就是用精确无比的语言描述出【我想要什么】。

举个例子:

image.png

如图所示,两个问题中,我希望它给出的回复是相同的。但我采用更精确的描述,它就能给出更符合我需求的回答。这个是很合理的工程案例。(说实话这个也是人际交流时的要点,交流复杂业务时,就是要说清楚自己的想法。然而除了我们工程师群体,大多数人都没有这个能力)

大多数营销课程,乃至于AI自己,都在这条不断精确化,不断添加冗余内容的道路上越走越长。

但是,我们可以很明确地看到几个问题:

  • 1.上下文明显变得更长。对于更复杂,更垂直的领域,如果一直像这样精确化,那么提示词将会变得非常冗长。而现在AI对越来越长的上下文会越来越蠢。虽然现在AI对长上下文有较好的支持,但是我们也需要尽可能节省逻辑容量。

  • 2.输出格式随机。由于长上下文和大量规则揉在一起,大模型输出更不确定。而我们常常希望它可确定地格式来回复。

  • 3.依赖特定模型。由于过长的提示词,不同模型给出的回答可能明显不同,导致结果不可预测和提示词本身的不可复用。

基于这三个问题,我认为目前提示词的发展方向明显有错误。为什么,因为

大家都觉得AI对话要像人一样。但实际上,像人一样回答只会让AI偏离它的能力范围。实际上,只要能解决问题就好了。解决问题才是最主要的,直接一步到位追求像人只会越走越远。

所以,我认为,AI首先应该被当做一个更能处理模糊任务的机器,而不是一个有缺陷的人。

具体来说:经过我一个月的探索,我提出了4个要义:

  • 1.单一能力要义:AI提示词应该尽可能短,一次回答应该尽可能只处理一个问题。

  • 2.格式化输出要义:想要让AI有操作能力,就不要想让它输出人类语言,而是让它输出结构化的JSON。

  • 3.拆解编排要义:将复杂的任务步步拆分,拆成简单的任务,对于复杂的问题,然后通过并行串行编排,来让一个个AI任务实现工作流。

  • 4.(后面说)

举个例子表现以上四点要义在优化AI输出上的明显提升效果:

image.png

原始问题:你好,请问美国和以色列攻打伊朗是什么原因?我想先了解以色列攻打伊朗的原因。

AI回复:以色列攻打伊朗涉及多方面因素。先问下,您对以色列与伊朗的地缘政治关系了解多少?

一般的对话模型,甚至包括业内最先进的模型,对于这种比较宽泛的问题,都会一股脑地给出一大堆回答。

可以看到,上面我对doubao-1.5-lite-32k这个较小的模型做了一些提示词优化,它就可以非常有针对性地理解我的需求和想法,知道【这个问题很宽泛,应该先反问用户,从用户身上了解更具体的信息后再有针对性地回复】。

要知道,多不等于好,大多数人并没有能力描述清楚自己的问题。所以,只有更精确更有针对性反问用户,自动化地让AI主动了解用户,然后才能给出好的回复。这是AI对话毫无疑问的发展方向。

那么,我是怎么做到这一点的呢?答案就是上面三条,单一、格式化、编排。这里我也不藏着掖着,直接给你们源代码:

image.png

主要的定义函数如下:

image.png

image.png

image.png

可以看到,我不是用一个巨长的提示词,让AI直接给回答;而是通过中间大量的中间分析,先分析意图、然后分析期望、然后分析反问,最后做一个排序管理,然后才能正确回复。

举个例子,如果你是一个很有经验的社会人士,你要作为一个专家或者导员,回答刚进入社会的大学生的问题,你会怎么回答?他一定问得很宽泛,所以,你一定在大脑里会先猜测对方的意图是什么,然后猜测他的期望,然后想出几个要反问的问题,然后一个个反问他,问他的基础情况,了解更多信息之后,你才能给出他想要的回复。

所以,第四个要义就是:编排任务流的时候,要【以人为本】。

这里的以人为本,不是说,让你关注用户的人文情感。而是说,【如果人类的专家亲自回复他,那么,专家在回复他之前,脑海里会经历哪些思考过程】。也就是以真人的思考过程作为样本,叫【以人为本】。

这里有一个很传统,幼稚的信念,也许会有很多人以此来反驳我:【机器怎么可能做出人类的思维过程呢?现在的技术不允许!】

这就很可笑了。机器虽然不能像人一样思考,但是完全可以像人一样说话。而人可以用语言描述出自己的思考过程

所以,理论上,现在的AI,在技术底层上,已经有了人的一切思考能力。但是,必须经过以上四条编排规则的AI才有思考能力。然而让我有一些不解的是,现在业内所有人的思路都和它背道而驰。

过去所有提示词工程都错了,而谁先第一个发现正确道路的,就可以吃到螃蟹,这是我目前的既视感。但是,我不止一次怀疑过,难道我真是第一个发现它的?或许我哪里理解错了?思考千百遍,我最终决定还是发出来,和大家一起讨论一下这件事。

我发现了一条也许是正确的道路。其他人也许会藏着掖着,但我不想藏着掖着,我希望先发出来,跟掘金里其他大佬交流、讨论一下。希望获得一些交流和批评。

因为我有很深的信念,任何现代技术的发扬成熟,一定有一个完整、激烈的技术社区在不断的高质量批评,提出、优化、迭代中支持其成长。我自己也不缺什么钱,只想做出一些有机会改变世界的事情。

不过,如果业内只是因为一些我没考虑到的技术问题,而不采用我的以上想法,那么欢迎大家批评我,给我一些提示,共勉成长。

谢谢。