无聊但有用--关于Prompt的思考

30 阅读4分钟

一直对靠提示词和大模型交互这事儿,有点抵触。

提示词是伴生于大语言模型而出现的产物,在此之前,就没这个说法。传统AI里,用户只管输入,给几个参数或者几个文件,其他交给AI,神经网络算出个啥来不好说,但搞算法的薪资巨高。

入参的格式、规制也有很多讲究,普通人几乎没有AI的使用场景。有了大模型,人人都能玩一下AI了。自然语言输入,空口白话也能让AI跟你有来有回。虽说结果往往差强人意,好在能用了。

最开始我也挺习惯,让大模型帮着找找资料,做做总结,写点作业,比起靠搜索引擎+人力输出,方便了一个级数。接着幻觉来了。真想做点儿事的时候,给一句简单的命令,诸如“找几个XX的案例”,大模型给的输出物像模像样,堪称光屁股坐凳子,有板有眼。

但仔细一扒,会发现很多数据都是胡编乱造张冠李戴的,甚至连案例本身都是它编的。

聪明如我,当然知道在输入时加约束,比如严格考虑案例真实性bulabula,并严令它不准发散,不准自己生成。结果几轮下来,仍旧一本正经地胡说八道,遂重新来过。

方法简单粗暴,让提示词越来越复杂,大模型才能更好地理解我的要求。和AI对话,得先写一篇小作文。

现在的提示词一般长这样:

  • 角色:告诉模型你是谁,有啥技能。
  • 任务:我准备要你干啥?
  • 要求:有什么具体要求,例如步骤、输出格式,甚至其他奇怪的需要。
  • 示例:打个样给你看看,你需要好好学习体会。
  • 限制:加入不要这样不要那样,必须这样必须那样的限制。

大模型就是个演员,小作文就是再给他讲戏,演成啥样还得靠他自己。讲戏的整体范式有点像大模型给出结果前,展示的思维链那一套。

但我们都是正常人,正常人用个AI,不会这么写。

于是就有了个新工种,叫“提示词工程师”---我开始入行的时候,打死都想不到会有这么一种工程师---负责把用户的简单输入,转化为小作文一样的提示词。

不过新的问题又来了,对于大多数复杂任务,幻觉依然明显。比如你告诉AI:“我是个产品经理,今年主要工作内容和成果如下:xxxx...,帮我写份年终总结,要求:xxx...” 在只有一个模型的情况下,它会给你有板有眼地出一份。内容和数据就不一定能看了,需要花大力气审核修改,甚至推倒重来。

这时候就需要一个模型专门去分析你的意图,另一个去把你的问题做转换,再一个模型去扒你的工作日志,比如周报月报之类,另一个模型去扒你的团队考评,还有一个模型去把你的工作成果和公司战略做结合,最后一个模型去对之前所有的信息做汇总,并按标准格式和套路做输出。

要想总结更加漂亮一点,还需要用到绘图插件,文档插件等等。要想总结更符合你的风格一点,还得有个模型去按你的文字风格将最终输出物润色一遍。

为此,你需要对这些模型写无数个prompt,写到想吐。写着写着,发现还不如就让AI出个框架,自己把总结写了算逑。 但,如果有个东西,不用你怼这么多提示词,就能出来一个98%的总结,只需要你最后把输出物改成100%,是不是就很香了。这么看,提示词工程还挺重要。在李飞飞们没有成为主流前,和大语言模型交互,prompt似乎必不可少。

个人的抵触在于,这事儿确实很无聊。

就像每一个程序员面对着屎山一样的代码,都会泛起推倒重构的念头。未来的每一个提示词工程师,看到屎山一样的文字,以及夹在文字里的逻辑代码,会更头大。毕竟代码打个断点就知道错在哪儿,提示词的测试量就大得多了。

那么问题来了:用提示词搓出来的智能体,算不算智能体?