📘 **TELUS Agriculture & Consumer Goods** 如何通过 **Haystack Agents** 转变促销交易

驾驶舱内的问答

空中客车如何使用 Haystack 为飞行员、飞机维修人员等构建一个结合表格和文本的问答系统

大型语言模型 (LLMs) 非常强大,我们 deepset 公司对它们看似无限的潜力感到非常兴奋。但是,尽管 Llama 2 和 GPT-4 等模型持续引起轰动,但一项相关但不太受关注的技术一直在为各种用例提供巨大的价值。

基于较小的开源 Transformer 模型,抽取式问答 (QA) 是近年来 NLP 领域涌现的最引人注目的知识管理技术之一。因此,组织开始认识到抽取式 QA 为大型知识库带来的机遇。

空中客车就是这样的公司之一。他们利用我们开源的 Haystack 应用 NLP 框架,构建了一个复杂的 QA 系统,用于从飞行员广泛使用的飞行员手册中提取答案,这些手册既用于培训也用于飞行。这个用例之所以特别有趣,是因为手册不仅包含文本,还包含大量表格。幸运的是,现代 QA 系统也可以处理这些,使用一种称为表格问答 (Table QA) 的特殊技术。

本案例研究描述了 空中客车人工智能研究部门 如何研究 NLP 如何帮助人工代理根据技术文档在关键情况下找到解决方案。他们使用 Haystack 来解决处理文本和表格的复杂问题。其结果是一个文本和表格的组合 QA 系统,这将使公司不同团队的工作更加轻松和高效。

问题所在

飞机是复杂的机器,驾驶它们需要高度的体力和脑力。空中客车的飞行员操作手册 (FCOM) 用于解决飞行员在培训期间或飞行期间可能遇到的所有问题。“当驾驶舱挡风玻璃被鸟击中时,标准程序是什么?”或“在何种天气条件下着陆不安全?”等问题都可以在手册中找到答案,手册跨越数千页。

“Eight folders with training manuals on a table.”

像空中客车 A320 这样的现代商用飞机通过传感器检测问题,并根据协议自动处理问题,在这方面做得相当不错。但传感器可能会发生故障,而且有些问题传感器无法检测到,例如乘客生病。在这些情况下,飞行员必须在最短的时间内找到解决方案。

目前,空中客车的飞行员正在使用手册的数字化版本,他们可以通过基本的基于关键字的功能进行搜索。在我们这个博客上,我们已经广泛撰写了关于关键字搜索的文章,以及它们在许多方面是如何被语义搜索系统 超越 的。

基于关键字的方法有一个主要缺点,那就是用户需要知道描述问题的确切词语。用户有时很难找到能够引导他们获得正确结果的确切词语组合,这会浪费宝贵的时间,尤其是在关键情况下。这意味着空中客车现有的信息检索系统在速度和相关性方面都有很大的改进空间。

需要强调的是,对于大多数经验丰富的飞行员来说,现有系统运行得相当好,他们多年来一直使用它,并且非常擅长找到所需信息。但空中客车的 AI 团队想看看是否有可能使用更新、更高级的方法来构建一个更直观的系统,使其学习曲线更平缓,并在更短的时间内返回更准确的信息。

尤其是在压力很大的情况下,飞行员需要尽快获取信息,以便及时做出反应。我们想评估基于深度学习的高级问答系统是否可以缩短检索时间。 — Alexandre Arnold,空中客车人工智能研究部门

像许多技术文档一样,FCOM 包含大量表格。在项目初期,空中客车团队意识到表格在飞行员的信息提取过程中起着至关重要的作用,因此他们的系统如果缺少一个能够对表格进行问答的模块将是不完整的。幸运的是,Google 流行的表格 QA 模型 TaPas 正好可以做到这一点。空中客车 AI 团队之前与 deepset 合作过,并了解我们在 TaPas 模型方面的专业知识,因此很容易决定选择 Haystack 作为框架,用于构建一个能够处理文本和表格的飞行员 QA 系统。

对表格进行问答意味着什么?

表格以极其精炼的格式包含大量信息。它们与文本不同,因为它们具有可预测的、结构化的形式,并且通常可以提供许多不同问题的答案。例如,我们可以问“在地面结冰的情况下,起飞的最大侧风是多少?”一个人力代理或许可以,在一些初步困难后,从下表中检索到答案。然后我们可以继续询问其他动作和天气条件的问题,这些问题都可以通过单独查看此表来回答。

Example of a table from the pilot manuals.

像 TaPas 这样的表格 QA 模型也能做到很多。它们将深度语言模型理解自然语言语义的能力(这样的模型能够理解我们问题中的“frozen”一词与表格中的“ice”条件有关)与关于如何导航表格行和列以检索正确单元格的附加知识相结合。这种组合造就了一种强大的技术,能够比任何经验丰富的人类更快地从数千个表格中提取信息。

更重要的是,这些模型可以对表格进行聚合——就像 SQL 查询一样,但使用自然语言。例如,我们可以问“当襟翼处于第一个位置时的最大速度是多少?”然后表格 QA 会返回“230 kt”——这是下表中与襟翼操纵杆位置 1 相关的两个值中较大的一个。

Another table from the manuals.

如果您想了解更多关于表格 QA 的信息,请务必查看我们关于该主题的 教程博客文章。当然,空中客车的实际任务比到目前为止所示的用例要复杂得多。首先,最终系统将不知道给定查询的答案是可以在表格中找到还是可以在文本中找到。其次,它将不得不从 FCOM 页面的集合中检索相关的表格或文本。

数据标注和准备

为了让机器学习模型真正脱颖而出,它必须适应它将在现实世界中遇到的特定数据。这对于航空航天工业等技术领域尤其如此。因此,空中客车的第一步是标注一些可用于微调通用语言模型(用于处理文本)和 TaPas 模型(用于处理表格)的训练数据。

对于 QA 来说,标注 包括提出问题并突出显示回答这些问题的文本段落。例如,我们可以问“机组人员应如何处理机舱内的疾病?”而可能的答案片段是“如果乘客生病,首先要核实机上是否有医生。”措辞和句子结构的差异确保系统学习根据意义而不是使用的单词来匹配问题和答案。

为了标注第一组数据,团队组织了一次内部黑客马拉松,邀请了对文档有深入了解的运营专家——其中一些人甚至参与编写了手册。邀请这些专家提出飞行员在现实世界场景中会问的代表性问题(如上一段中的那个),并在手册中识别答案。

另一方面,对于表格数据的标注,团队利用了表格比自然语言具有更结构化格式的优势。他们提出了一组 240 个问题模板,并用不同的值填充它们,以半自动化的方式将每个问题与其答案进行匹配。例如,给定上表,可以提出“飞机的最大速度是多少?”或“着陆的最大侧风是多少?”等问题。

最后,FCOM 中最令人困惑的来源之一是,不同的问题和解决方案可以用非常相似的术语来描述。在这种情况下,上下文是关键,通常由标题或说明提供。例如,不同的章节可能讨论“发动机故障”,但具体涉及哪台发动机将通过章节标题或部分标题来澄清。

使用传统的基于关键字的方法,经验丰富的飞行员可以通过考虑页面上的附加信息快速确定文本讨论的是哪个发动机。然而,由于语言模型一次只能解析大约 200 个单词的文本段落,因此这些附加信息必须包含在其他地方。幸运的是,Haystack 的节点——构成最终 NLP 系统的模块化构建块——可以轻松地在预处理过程中将这些信息以元数据形式添加,然后将其包含和检索到文本或表格数据点中。

解决方案

最终系统使用 检索器-阅读器管道——这是问答的经典架构。由于计算量大的问答模型本身不应该在整个语料库上运行,因此此类管道使用 检索器。它预先选择要由包含 QA 模型的阅读器处理的文档。然而,在空中客车的情况下,团队实际上使用了两个独立的检索器-阅读器管道(一个用于文本,一个用于表格),它们由查询的单个入口点组成,然后在最后连接。

Sketch of the question answering pipeline with table and text retrievers.

这种复杂的设置是必要的,因为当飞行员提出问题时,系统不知道查询的答案是可以在表格中找到还是可以在文本中找到。因此,它将查询通过表格 QA 管道和“经典”文本 QA 管道运行。然后,结果在最后一个节点中合并,该节点根据与结果关联的置信度值来选择正确的答案。

结果与展望

空中客车团队对结果感到兴奋,尤其是对管道的表格部分的性能:“这些文件太长了,并且在表格中编码了大量信息,”Alexandre 解释说。“能够在超过一千页的表格中找到正确的单元格,并在此基础上,在不到一秒的时间内提供正确的答案:这非常有价值。”

虽然当前形式的系统对于“生死攸关”的危急情况可能仍然过于实验性,但它已经可以用于许多其他应用,例如工程和飞行员培训。

Alexandre 和他的团队开始了这项项目,以找出 NLP 技术是否可以在具有严格准确性要求的技术领域中使用,或者是否像 Alexandre 所说的,“以更自然的方式浏览文档”的追求仍然遥不可及。在完成项目这一阶段后,Alexandre 充满信心。

结果很有希望。虽然我们仍然需要在任何可想象的部署之前处理这些系统的鲁棒性和操作性能,但我们现在看到了这项技术的价值和潜力。我们希望确保我们跟上 NLP 的发展步伐,以便一旦它真正完美地适用于运营,我们的组织就能从第一天开始利用它。这真是一座金矿!

将您的信息检索系统提升到新的高度

作为研究领域极其活跃的一部分,NLP 正在不断为现实世界的应用提出新的、巧妙的解决方案。您可以使用自然语言来检索文档、表格,甚至图像:这些系统可以处理的信息类型越来越少。

如果您想亲眼看看这样一个系统的运行效果,请立即 开始使用 Haystack

我们很高兴看到新的成员加入我们应用 NLP 热衷者社区。前往我们的 社区页面 加入 deepset Discord 服务器,或 在 GitHub 上找到我们