我是一名人工智能工程师,从事特定领域的工作:文档自动化和信息提取。在我的行业中,使用大型语言模型在幻觉方面提出了许多挑战。想象一下,人工智能将发票金额误读为 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参考可信来源,但允许综合和推理。
如果问题可以分解为更小的任务,则尽可能使用强有力的任务基础。
我们构建了一个强大的人工智能文档处理平台,供世界各地的组织使用。
我是 Affinda 的首席人工智能工程师。我花了 10 年的时间从用户体验转向人工智能。想要更深入地了解生成式人工智能吗?阅读我的深入探讨:大型语言模型实际上理解什么。