我们已经看到了很多惊人的进步。借助瞬间数千亿的计算能力,最新的人工智能技术可以以人类水平的准确度理解某些类型的文本。然而,当目标文本属于长对话时,系统面临的挑战变得更加困难,因为它需要考虑对话上下文来解释用户的意思并决定如何回应。尽管如此,像Facebook的BlenderBot2.0这样的聊天机器人似乎预示着一种更加流畅和自然的人机交互。但这就是问题所在:我们给这些对话式AI机器人添加的复杂性越多,就越难满足我们对实时响应能力的期望。BlenderBot2.0就是一个完美的例子。由于它突破了BlenderBot1.0的许多关键限制(包括缺乏长期记忆),因此2.0版比其前身复杂得多。因此,很难让在幕后工作的机器学习(ML)更具响应性。对话式AI和聊天机器人的速度限制进行自然流畅的对话没有秘诀。它需要一个令人麻木的大型ML模型网络,每个模型都解决了一小块难题,以确定下一步要回答什么。一种模型可能会考虑用户的位置,另一种模型会考虑交互的历史,还有一种模型会考虑过去类似响应的反馈——每一种都会给系统增加宝贵的毫秒延迟。换句话说,对话式人工智能的真正限制是我们的耐心。“依赖地狱”的深度我们在学术背景下对AI的期望完全是另一回事。在学术环境中,我们可以等待数小时甚至数天才能获得结果;在现实世界中,我们要求系统立即做出响应。特别是对于对话式人工智能机器人,每一项潜在的改进都必须以减少延迟为目标进行权衡。这种延迟是所谓的“关键路径”的产物,它是从输入(用户的消息)到输出(机器人的反应)所需的ML模型链的最短序列。这是项目管理中的一个古老概念,但对于今天的ML网络来说,避免不必要的步骤非常重要。那么,如何找到关键路径呢?这一切都归结为依赖性,这长期以来一直是常规软件开发领域的一个决定性问题。与由许多相互关联的部分组成的任何软件架构一样,改进一个应用程序可能会迫使工程师更新整个系统。但有时对应用程序A至关重要的更新与应用程序B、C和D不兼容。这就是所谓的“依赖地狱”。如果不特别注意细节,机器学习的依赖性会让我们面对的地狱更深更黑暗。正常的软件依赖关系是基于API的,它传达特定应用程序的简单、离散状态,例如电子表格中的单元格从红色变为绿色。API允许工程师在某种程度上独立开发每个应用程序,同时将它们保持在同一页面上。但是对于ML依赖项,工程师必须处理抽象的概率分布,这意味着很难弄清楚一个模型的变化应该如何影响更大的ML网络。只有掌握这些模型之间的微妙关系,我们才能使对话式人工智能成为现实——更不用说实时体验了。通过跳过步骤节省时间要充分理解对话式AI的依赖关系,您需要将机器学习与人类直觉相结合。例如,我们的一个对话式AI机器人旨在响应员工的请求,例如他们是否需要PowerPoint许可证或对PTO政策有疑问。事实证明,即使是看似简单的问题也会将您带入依赖地狱的深处。PTO问题的答案可能深埋在员工手册的第53页,对于加拿大的销售人员和西班牙的工程师来说,答案可能仍然不同。此外,您还忽略了很多不相关的细节(例如员工的夏威夷假期计划),因此您拥有许多还必须作为一个整体工作的专门ML模型。诀窍是确定哪些模型——即关键路径中的哪些步骤——是解决每个问题所必需的。第一步是自然语言理解或NLU,其目标是将非结构化文本转化为机器可操作的信息。我们的NLU是许多ML模型的管道,可以纠正拼写错误、识别关键实体、将信号与噪声分开、理解用户意图等等。有了这些信息,我们就可以开始在下游过滤掉不必要的模型。这意味着在分析公司现有的实际解决方案之前,预测对目标问题有益的解决方案。申请PowerPoint的员工可能会使用软件许可证或申请表,但他们几乎肯定不想要他们新办公室的地图。只要我们能够利用好来自NLU过程的信息,我们就可以通过所谓的“预触发”系统预测哪些模型需要被激活,哪些模型需要被绕过。鉴于此过程中涉及的概率分布的抽象性质,我们的预触发系统依赖于机器学习输入和人类专家制定的基于直觉的规则。归根结底,把时间花在重要的地方既是一门科学,也是一门艺术。为对话式AI机器人的进步留出空间没有人知道十年后对话式AI会是什么样子。然而,我们所知道的是,我们现在需要优化我们的聊天机器人,以便为未来的改进留出空间。如果我们想拥有类似人类的对话体验,就必须考虑到整个系统的延迟,不能鲁莽地增加越来越多的复杂性。与科幻小说相反,我们在人工智能中看到的“突破”是对现有模型和技术进行许多小的、渐进式改进的累积产物。优化对话式人工智能的工作,并不是为了影视作品中的效果,结果很难一夜爆红。但正是多年的辛勤工作——而不是一些天才的火花——让聊天机器人能够理解我们的意图并实时帮助我们。
