AI = 1000 Interns?
Benedict Evans 对技术演进持有保守态度。在他最新的文章 Looking for AI Use Cases 中,他用了一个典型案例来表达这种保守:
自 1900 年开始,每年美国的电梯管理员数量有多少?对于分析师而言,这的确是一项再典型不过的工作:问题看起来简单明白,而做起来却很麻烦,你需要找到可靠的数据源,确认历年的统计口径,然后在浩如烟海的文件中找出逐年的数据——很可能还要面对某些年份数据缺失的问题。这样的问题往往会丢给初级的分析师,甚至是实习生来解决。我们都经历过职业的这个阶段,交给我们类似工作的 leader 希望用这样的工作证明我们的专业和严谨,或许还有——服从。
AI 却很诚实。在上面的截图中,它诚实的告诉我们,这是一项挑战性的任务,数据缺失严重,不足以完成交给的任务——如果这是一个实习生,leader 是否会打出满意的分数呢?
Evans 可能是一位理想的职业导师。他在文中提供了多种可以完成这个任务的方法,除了统计局的数据之外,还可以通过 Google Books 查到统计年鉴,FRED 也是一个不错的数据库。更意想不到的是,他甚至还手动保存了过去 100 年的数据,可以制作出平滑优美的时间序列曲线。
他说:
This is a nice illustration the old joke that a programmer will spend a week automating a task that would take a day to do by hand.
这很好地诠释了那个老笑话:程序员要花一周时间才能自动完成一项手动需要一天才能完成的任务。
退一步讲,当我们想当然的把 AI 当成是 1000 个实习生的时候,我们可能忘记了教会实习生完成任务也并不是一件容易的事情。
Daniel Susskind 的 A World Without Work 一书曾经解释工作 Jobs 和任务 Tasks 的区别。乐观的看法是:AI 将对任务 Tasks 产生替代,而不会彻底替代人类的工作 Jobs。更具体而言,医生的工作不仅仅只是诊断、分析和开药等任务的简单组合,而是复杂结合起来的整体。AI 能够学习大量的医学影像,并且给出在概率最可能的推断,但最终还是医生要结合患者的实际情况,给出不仅仅是医学,很可能也是社会学的最终建议。
实习生是成为医生、律师、会计师等各种专家的必由之路。虽然我们总是期待他们能独立完成一些简单的任务,但完成这些任务本身并不是实习的目的。在办公室里的任何交谈都可能成为他们观察和模仿一项专业工作之整体性的课堂。我清楚的记得实习的老板是如何不客气的拒绝了同僚不合理的要求,同时保持礼貌的微笑。
如果把 AI 当作实习生的话,AI 却还不能在完成简单任务的同时学会更高级和复杂的本事。我们必须不厌其烦的重复指令,甚至不能预期它像一个稍微聪明一点的实习生那样举一反三,读懂我们真正想要、却说不清楚的那些要求。Prompting 就是在不断的逼我们自己把任务说得再清楚一点,稍微含糊一点都不行,给实习生分配任务可能比这还要简单一些。
AI 在逼着我们把一件事情拆解到再简单不过的地步。
比如,AI 很擅长处理长文,并进行总结和信息提取。作为一名长篇分析类文章的阅读爱好者,我对此期待很高,希望能借此提高阅读效率。但是,我试过不同的 prompts,很少有能够满足要求的。大部分的总结都过于简单,不能起到「太长不看」的效果,而顶多是起到一个引导阅读的作用,我还是得自己点进全文展开阅读,才能把作者的推导、例证等关键信息一一拿到。
想象一下,如果你有一名实习生,你把一篇万字行业分析转给实习生,告诉他说,提供要点总结和摘要,你会期待什么?我想了一下,大概需要这样的一些要求:
- 一份结论性的概要,包含文章的核心观点。
- 一些关键数据,特别是那些体现变化趋势和结构的。
- 文中讨论的公司、人物,以及和这些主体相关的事实。
以上是基本要求。如果还要说加分项的话,最好还能包含精彩的金句。
如果只是要达到「基本要求」,以现在的 LLM 的能力都是可以达到的。实际上,LLM 的信息提取能力(information extraction)很强,相比于更常见到的总结(summarization)能力,这项能力能够在更细的颗粒度上进行任务拆解。就像上面列出的几项「基本要求」一样,能够更加精细的控制产出的具体内容,也更容易检查这些产出的质量。
可衡量,易检查,这就是把工作拆解成任务的标准,我们是这么要求实习生的,我们也可以这么来应用在 AI 上。至于「加分项」,则可遇而不可求——至少一时是这样的。
如果去看半年多以来跑出来、有点名气和动静的 AI 应用(Applied AI),很多都符合类似的标准:它们并不基于喧宾夺主的去替代人类的工作,而是选择其中可衡量、易检查的分解任务进行改善。Harvey 帮助律师审阅、修订文件,Abridge 帮助医生结构化和病人的对话。不难想象,这些使用场景都不能用一句简单的 summarize this document 来做 prompt,而是需要大量对行业 know-how 的理解来精细化 prompting。而类似 LangChain / unstructured.io / instructor.ai 这些面向上游数据处理的开发者产品,则进一步把任务流水线化,数据结构化,进而完成更加复杂的任务。
任务 tasks 对应于代理 agents,要义在于稳定高效的持续产出。要投入应用,首先需要对所处行业 / 领域 / use case 的深度理解,在产品定义上就把工作分解成任务;其次则是搭建对应的 agents 和 chains,这里需要相应的质量保证手段。
1000 个实习生不能完成的事情,AI 可能也不能完成。