方军:作为专业工作者,我在深度使用AI后得到的两个教训

方军 开智学堂

开智君说

[AI时代巨人的工具] 系列访谈是 AIGCxChina(中国AIGC产业联盟)发起的公益项目,旨在通过访问形式,采集梳理各领域专家对于 AI 时代的思考和建议,助力读者提升 AI 时代的生存发展能力。本期文章为科技作家方军老师的专家观点,分享方军老师个人在使用 AI 过程中的经验教训。

作者:方军 来源:公众号「AIGCx」

生成式 AI 会如何改变「我」?以 ChatGPT 为代表的大语言模型应用兴起以来,我们都深入地去读论文、做研发、推应用。每个企业、每个产业都有与 AI 相关的机会。但我觉得,或许对他人有用的是我们在摸索着用 AI 的过程中得到的教训。

为什么说是教训呢?AI 必将改变我们这些主要靠运用专业知识与技能的人的工作与生活,但是,有两个关键问题迄今都没有 100% 信心的答案:

  • 它会带来何种改变?
  • 我们如何应对?

因此,我愿意把学到的都看成是教训。我也倾向于把接触到的所谓“AI 成功经验”都理解为类似于教训,对自己坦诚的人都知道,我们不断看到自己刚总结的经验需要升级迭代。这里分享我作为专业工作者个人使用 AI 的两个教训。

图片

01

第一个教训:要接受 AI 一定有幻觉,把这个缺点当成必须接受的一部分。

对于容易被「AI 万能」的喧嚣声音影响的人,他们容易落入的首个陷阱是轻信 AI 的回答,因为其表达方式是权威的。

我们这些人轻松地跳过了这首个陷阱,因为我们知道 AI 有所谓幻觉(hallucination):它会自信地给出错误甚至虚假的信息。

但是,我们很快掉入一个与之相邻的陷阱:我们想尽办法去减少幻觉对我们使用者的影响。从原理上讲,幻觉是无法彻底消除的,要生成,就要放开回答须严格来源于已有文本的束缚。

到目前为止,减少幻觉的路径大概有这么几条(这里以极简的例子来解说):

(1)优化提示语。

比如说“请确保信息正确无误”。我自己比较喜欢用一个提示语模板,它来自 Elvis Saravia,我们又在其基础上扩展并命名为「ICDO」,它包括四个部分:指令(Instructor)、上下文(Context)、输入数据(input Data)、输出要求(Output indicator)。

(2)通过多轮处理来优化回答正确率。

比如收到回答后,再次让同一模型或另一模型进行评估。

(3)引入知识库,采用所谓检索增强生成(RAG)。

也就是,提问时同时提供资料文本,要求AI按严格按资料回答。也有更高阶的技巧,比如所谓的假设性文档嵌入(HyDE)。它的做法是,用问题先让AI给出一个可能有错的回答(即假设性回答),然后我们拿这个回答去资料库里面匹配相关资料,然后让AI再按资料回答,这样,我们可以得到更准确的回答。

(4)微调模型。

现在开源大模型和仅提供 API 的闭源大模型都可以微调。在一个具体的领域内,我们提供数百到数万个正确的「问题-回答」组合去微调训练,试图让大模型能更好地回答。

你看我如数家珍,就能知道我们在这些方面上「浪费」了多少时间精力。

结论是什么?简单说,结论是:如果我想要 90 分的答案,也就是 90% 的时候答案绝对正确。那么,对不起,不可能!90 分的要求可不高,日常工作中我们要的可是 99%、甚至 99.9% 的正确率。

我们自然还会接着以上道路继续探索,也相信AI模型的回答能力在某一天会接近完全正确。但是,就像现在使用 AI 生成图像时我们无法完全掌控、必须接受生成图的随机性一样,我们其实也不妨想办法接纳、甚至利用大语言模型类 AI 的幻觉。

接纳的方法很简单,我们可以要求 AI 生成的回答必须经过人的处理,如:仅用它作为参考想法,进行严格事实核查,由人进行最终处理等。

利用则比较有意思。我是从沃顿商学院的教育专家 Ethan Mollick 的教育场景提示语案例中学到的,并且也进一步延展它并实际使用。这是一次思维的大翻转。

  • 正向:AI 的回答是对的。它现在的回答不对,那么竭尽全力确保正确。
  • 逆向:AI 的回答是有错的。在商业场景比如客服场景中,错误是不可接受的。但在教育场景中,错误是可以利用的。

在教育场景中,我们可以对作为使用者的学生用户说,现在你们面对的是一个可能回答错的 AI 机器人(嗯,我们故意让它犯错的)。你的任务是,找出错误,纠正它的错误。教育研究早就证明,识别错误、纠正错误,能帮学生更快地学习。

所有人都试图把 AI 变成「导师」,我们这样做则是把 AI 变成「翻转导师」,这就像「翻转课堂」之于「课堂」。

AI 现在的能力有限、可能出错就不是问题了,它的缺陷某种程度上变成了「特性」——错误是学生的翻转角色教别人的机会。

当然,随着 AI 能力的提升,AI 的正确率会提高。那当然好。但我们仍然可以用巧妙的提示语来让 AI 回答按固定的概率犯错,因而「翻转导师」的玩法可以一直用下去。

图片

02

第二个教训:抛弃批处理界面,拥抱交互式对话界面。

很多普通人接触到的 AI 是对话式的聊天机器人,他们很开心可以跟 AI 反复说话,提出问题,给出命令,得到自己想要的。他们不太会掉到我接下来要说的陷阱里面去。但是,看了我掉坑里的过程,也可以理解为什么我现在会特别支持对话式的交互界面。

我们自认为是讲求高效运用技术工具的人,由于工作的原因又掌握各种技术诀窍,我们哪能就这么用 AI 工具?

要让它神奇地完成任务,随之而来的折腾之路大体上这样三条:

(1)采用非常复杂的提示语。

大模型能力很强,能理解逻辑复杂的提示语。我们也能够写出高度结构化的提示语,比方说,这件事你按 A、B、C、D、E 五步给我做。

这有点像给有潜力的员工派任务,只要指令清楚,就能拿到结果。

可惜,我们跟这些有潜力的员工还没磨合好。我们讲得不完全清楚时,他不会追问,你的意思是这样吗?结果是,两方说岔了,他越努力越高效,结果离我们的期待偏得越远。

好,我们可以跟他慢慢磨合。用大模型时,这就相当于反复地改提示语、测试提示语。

很快我们发现,问题在于,一次把指令全给出去,我们没法监控中间结果,并进行调整。因此,我们接着走向下一条路。

题外话一句,让 AI 回答问题不是一些人理解的一次性抛接球:写一个提问语,得到一个好回答。而是一个循环迭代的过程,是一次次的抛接球训练:我们写一个提示语,得到一个不好的回答,我们重写提示语,回答变得好一点,如此多轮迭代,直到我们拿到满意的结果。

(2)编写 AI 应用程序。

用专业术语说,编写 AI 应用程序实际上是对 AI 模型的调用进行编排(orchestration)。

通俗地说就是,我们编写一些程序来调用大模型的能力,比如这样做:第一步模型这么做,结果回来后我们靠程序判断一下,让它去做第二步,以此类推。

这样做了之后,我们就可以很方便地监控和调整中间结果了。模型的反应开始变得较为「聪明」。这颇像在工作中,我们通过内部的标准操作流程(SOP)和管理流程让聪明的新员工变成优秀员工。

以上这两个其实背后都是「批处理思维」,不要让我一次次说,要做到指令发出去,次次见效。既然有效了,那我们就进一步推广开来,那就是走上第三种路径。

(3)在一个单一任务上采用提示语、编排、微调结合的批处理,准备大规模运用。

简言之,就是把各种手段都用上,让大模型在单一任务上为我所用。具体的做法因具体任务而异,这里不详述。让我快进到掉进去坑以及如何爬出坑。

编写 AI 应用并服务于个人任务,其实与企业投资开发一个应用类似。投入大量的时间精力进行开发,进行一些测试,进一步优化,觉得满意了,开始大规模运用。

最初的 100 个结果不错。最初的 500 个结果也看着不错。一两天时间这个过程就过去了。

但很快发现,糟糕,这些结果有瑕疵。但是,当我返回去调整时,我发现,常规程序和 AI 模型功能混在一起应用是无法有效调试的。一个原因是,每次模型给的结果不会 100% 一样。

(现在有了一点优化,OpenAI 的模型可以接受一个种子参数,如果输入一致、种子参数一致,可以得到完全一致的结果。但是,我们的输入不会一致啊。)

这么一圈折腾下来之后,我才发现,聊天机器人的交互式对话是非常巧妙的。现有,采取交互式对话,更容易拿到理想的结果。

弯路可能是必要的。不是在弯路上亲身感受到,不会真的影响我们的后续行动。

我因而也对应用界面的演变有了更深的感悟。界面的演变历程是这样的:第一阶段是历史,批处理(如 dos 或 linux 命令行);第二阶段是当下,图形用户界面(如 Windows、iOS 和淘宝 APP);第三阶段是未来,对话式交互界面(ChatGPT 之类)。我们在考虑做应用时,也尽量走对话式交互界面。

同时,我也感受到现阶段要利用 AI 的能力,要坚持所谓人在循环中(Human in the loop)的设计理念,让人在其中参与,而不是想尽一切办法试图用 AI 将人替代、把人解放出来。换个角度看,现在的人其实也很想参与和 AI 一起干活的这个过程,而不是被排除在外。

03

以上,就是我作为专业工作者在 2023 年深度个人运用 AI 的两个教训。同时我有一个温馨提示是,结论不重要,我上面讨论中的结论可能很快在某个时刻又被发现错了、需要升级了,真正重要的是掉坑里爬上来的过程。

就普通人如何入门 AI,我喜欢给的一个建议是,找到一个小小的点开始用起来。用的过程中就明白了。

听人说多少遍神奇,都不如自己亲身在小小的点用起来。比方说,我说话快容易写错字,现在写什么略长的都让 AI 检查一遍。这样,至少我每天在一个非常具体的问题上能像刷牙那样多次使用 AI。建议你也尝试着找个像刷牙一样的地方将 AI 每天用起来。■