我如何应对人工智能初创公司的幻觉 - 迈向数据科学

2024-09-22 15:42:15 英文原文

我如何在人工智能初创公司应对幻觉

以及弱接地与强接地之间的区别

我是一名人工智能工程师,从事特定领域的工作:文档自动化和信息提取。在我的行业中,使用大型语言模型在幻觉方面提出了许多挑战。想象一下,人工智能将发票金额误读为 100,000 美元,而不是 1,000 美元,导致多付 100 倍。面对此类风险时,防止幻觉成为构建强大的人工智能解决方案的一个关键方面。这些是我在设计可能容易产生幻觉的解决方案时关注的一些关键原则。

使用验证规则和人参与循环

有多种方法可以将人类监督纳入人工智能系统。有时,提取的信息总是呈现给人们进行审查。例如,经过解析的简历可能会在提交给申请人跟踪系统 (ATS) 之前向用户显示。更常见的是,提取的信息会自动添加到系统中,并且仅在出现潜在问题时标记为供人工审核。

任何人工智能平台的一个关键部分是确定何时纳入人工监督。这通常涉及不同类型的验证规则:

1.简单的规则,例如确保行项目总计与发票总计匹配。

2.查找和集成,例如根据会计系统中的采购订单验证总金额或根据供应商之前的记录验证付款详细信息。

这些过程是一件好事。但我们也不希望人工智能不断触发安全措施并强制人工干预。如果人工智能不断触发这些保障措施,幻觉可能会破坏使用人工智能的目的。

小语言模型

防止幻觉的一种解决方案是使用提取性的小语言模型 (SLM)。这意味着模型标记了文档的各个部分,并且我们将这些标签收集到结构化输出中。我建议尽可能使用 SLM,而不是针对每个问题都默认使用 LLM。例如,在招聘网站的简历解析中,等待 30 秒以上让 LLM 处理简历通常是不可接受的。对于此用例,我们发现 SLM 可以在 23 秒内提供结果,并且比 GPT-4o 等大型模型具有更高的精度。

我们管道中的示例

在我们的初创公司中,一份文档最多可以由 7 个不同的模型处理,其中只有 2 个可能是LLM。那是因为LLM并不总是适合这项工作的最佳工具。某些步骤(例如检索增强生成)依赖于小型多模态模型来创建有用的检索嵌入。检测某物是否为文档的第一步是使用小型且超快的模型,准确率达到 99.9%。将问题分解为小块,然后找出LLM最适合哪些部分,这一点至关重要。这样,您就可以减少出现幻觉的机会。

区分幻觉和错误

我强调区分幻觉(模型发明信息)和错误(模型误解现有信息)。例如,选择错误的美元金额作为收据总额是一个错误,而生成不存在的金额则是一种幻觉。提取模型只会犯错误,而生成模型既会犯错误,也会产生幻觉。

风险承受能力和基础

当使用生成模型时,我们需要某种方法来消除幻觉。

接地是指迫使生成人工智能模型参考一些权威信息来证明其输出合理性的任何技术。如何管理接地取决于每个项目的风险承受能力。

例如,拥有通用收件箱的公司可能会希望识别操作项。通常,需要采取措施的电子邮件会直接发送给客户经理。一个充满发票、垃圾邮件和简单回复(谢谢、好的等)的普通收件箱有太多的消息供人们检查。当操作被错误地发送到这个通用收件箱时会发生什么?行动经常被错过。如果一个模型犯了错误,但总体上是准确的,那么它已经做得比什么都不做要好。在这种情况下,对错误/幻觉的容忍度可能很高。

其他情况可能需要特别低的风险承受能力,例如财务文件和直通式处理。提取的信息会自动添加到系统中,无需人工审核。例如,公司可能不允许将发票自动添加到会计系统中,除非 (1) 付款金额与采购订单中的金额完全匹配,并且 (2) 付款方式与供应商之前的付款方式相符。

即使风险很低,我仍然会谨慎行事。每当我专注于信息提取时,我都会遵循一个简单的规则:

<块引用>

如果从文档中提取文本,则它必须与文档中找到的文本完全匹配。

当信息是结构化的(例如表格)时,这很棘手,特别是因为 PDF 不包含有关页面上单词顺序的任何信息。例如,行项目的描述可能会分成多行,因此目的是在提取的文本周围绘制一个连贯的框,而不管单词从左到右的顺序(或者在某些语言中是从右到左的顺序))。

强制模型指向文档中的确切文本是坚实的基础。强基础不仅限于信息提取。例如。客户服务聊天机器人可能需要(逐字)引用内部知识库中的标准化回复。鉴于标准化响应实际上可能无法回答客户的问题,这并不总是理想的。

另一个棘手的情况是需要从上下文中推断信息。例如,医疗助理人工智能可能会根据症状推断出某种状况的存在,而无需明确说明医疗状况。确定这些症状在哪里被提及将是一种基础薄弱的形式。响应的理由必须存在于上下文中,但确切的输出只能从提供的信息中合成。进一步的基础步骤可能是迫使模型查找医疗状况并证明这些症状是相关的。这可能仍然需要弱基础,因为症状通常可以通过多种方式表达。

复杂问题的基础

使用人工智能解决日益复杂的问题可能会让接地变得困难。例如,如果需要模型执行推理或从上下文推断信息,如何确定输出?以下是为复杂问题添加基础的一些注意事项:

  • 确定可以分解为一组规则的复杂决策。不是让模型生成最终决策的答案,而是生成该决策的组成部分。然后使用规则来显示结果。(请注意,这有时会使幻觉变得更糟。向模型询问多个问题会给它带来多种产生幻觉的机会。问一个问题可能会更好。但我们发现当前的模型在复杂的多步骤推理方面通常较差。)
  • 如果某件事可以通过多种方式表达(例如症状描述),那么第一步可能是让模型标记文本并将其标准化(通常称为编码)。这可能会为更牢固的基础提供机会。
  • 为模型设置要调用的工具,将输出限制为非常特定的结构。我们不想执行LLM生成的任意代码。我们希望创建模型可以调用的工具,并对这些工具中的内容进行限制。
  • 尽可能在工具使用中包括接地措施,例如在将响应发送到下游系统之前根据上下文验证响应。
  • 有没有办法验证最终输出?如果手工制定的规则不可能,我们可以制定一个验证提示吗?(对于已验证的模型也遵循上述规则)。

要点

  • 在信息提取方面,我们不能容忍在原始上下文中找不到的输出。
  • 我们会采取验证步骤来跟进,以发现错误和幻觉。
  • 除此之外,我们所做的任何事情都是为了风险评估和风险最小化。
  • 将复杂的问题分解为更小的步骤,并确定是否需要LLM。
  • 对于复杂问题,请使用系统方法来识别可验证的任务:

强大的基础迫使LLM从可信来源逐字引用。始终首选使用强接地。

基础薄弱迫使LLM参考可信来源,但允许综合和推理。

如果问题可以分解为更小的任务,则尽可能使用强有力的任务基础。

Affinda 人工智能平台

我们构建了一个强大的人工智能文档处理平台,供世界各地的组织使用。

关于作者

我是 Affinda 的首席人工智能工程师。我花了 10 年的时间从​​用户体验转向人工智能。想要更深入地了解生成式人工智能吗?阅读我的深入探讨:大型语言模型实际上理解什么。

关于《我如何应对人工智能初创公司的幻觉 - 迈向数据科学》
暂无评论

摘要

我如何在人工智能初创公司应对幻觉弱接地与强接地的区别我是一名人工智能工程师,从事特定领域的工作:文档自动化和信息提取。风险承受能力和基础使用生成模型时,我们需要某种方法来消除幻觉。接地是指强制生成人工智能模型参考一些权威信息来证明其输出合理性的任何技术。例如。客户服务聊天机器人可能需要(逐字)引用内部知识库中的标准化回复。如果某件事可以通过多种方式表达(例如症状描述),那么第一步可能是让模型标记文本并将其标准化(通常称为编码)。