当我们在网上订餐时,最不希望看到的是过时或不准确的菜单。

然而,对于外卖平台,保持菜单新鲜是永无止境的挑战。餐厅不断更新菜品、价格和特价菜,在大规模上手动完成这一切成本高昂且缓慢。

DoorDash 通过应用大型语言模型(LLM)自动化将餐厅菜单照片转换为结构化、可用数据的过程来解决这个问题。他们项目的技术目标很明确:实现菜单照片准确转录为结构化菜单数据,同时保持足够低的延迟和成本以在大规模生产中应用。

表面上,想法很简单:拍照片,通过 AI 运行,返回干净的数字菜单。实际上,真实世界图像的混乱现实(裁剪的照片、光线不足、布局混乱)很快暴露了单独 LLM 的局限性。

但关键洞察是,LLM 虽然在总结和組織方面很强,但在面对嘈杂或不完整输入时会崩溃。为了克服这个问题,DoorDash 设计了一个带护栏的系统。这些是决定何时自动化足够可靠可以使用以及何时需要人工干预的机制。

在本文中,我们将看看 DoorDash 如何设计这样的系统以及他们面临的挑战。

初始方法:OCR 到 LLM

第一步是证明菜单是否可以以自动化方式数字化。

工程团队从一个简单的管道开始:OCR 到 LLM。OCR 系统从菜单照片提取原始文本,然后大型语言模型负责将该文本转换为类别、菜品和属性的结构化模式。

这种方法作为原型工作得足够好。

它表明机器原则上可以拍摄菜单照片并输出类似数字菜单的东西。但一旦在大规模测试,裂缝开始出现。准确性以过于一致而无法忽视的方式受损。

主要原因是:

  • 菜单结构不一致:真实世界菜单不是整齐的列表。有些是多列,其他使用混合字体,许多以不可预测的方式分散类别和菜品。OCR 工具经常打乱阅读顺序,这意味着 LLM 最终将菜品与错误属性配对或放错类别。
  • 菜单不完整:照片经常裁剪或部分,只捕获菜单部分。当 LLM 接收没有父菜品的属性,或没有描述的菜品时,它猜测。这些猜测导致不匹配和结构化输出中的错误条目。
  • 照片质量低:许多菜单照片在昏暗光线下拍摄,有玻璃框架的眩光或背景混乱。小字体和倾斜拍摄增加噪音。图像质量差降低 OCR 准确性,错误级联到 LLM 阶段,降低最终转录质量。

通过人工评估,团队发现几乎所有转录失败都可以追溯到这三个类别之一。

Guardrail 模型

为解决准确性问题,工程团队引入了他们称为 guardrail 模型的东西。

在其核心,这是一个分类器,预测从给定菜单照片产生的转录是否满足生产所需的准确性标准。逻辑很简单:

  • 如果 guardrail 预测输出足够好,结构化菜单数据自动发布。
  • 如果 guardrail 预测可能失败,照片路由给人工进行转录。

构建 guardrail 意味着不仅仅是看图像。

团队意识到模型需要理解照片、OCR 系统和 LLM 如何相互作用。所以他们从三个来源工程特征:

  • 图像级特征:捕获照片本身的质量,是否黑暗、模糊、有眩光,或与背景物体混乱。
  • OCR 衍生特征:测量文本提取的可靠性,如令牌有多有序,置信度分数是否高,或系统是否产生片段和垃圾文本。
  • LLM 输出特征:反映结构化转录的质量,如类别和属性有多内部一致,或覆盖是否看起来不完整。

这种多视图方法直接针对早期识别的三个失败模式:不一致的菜单结构、不完整的菜单和差的照片质量。

通过结合来自图像、OCR 过程和 LLM 本身的信号,guardrail 学会分离高置信度转录和那些可能出错的。

模型架构

设计 guardrail 模型提出了哪个架构实际上在实践中工作最好的问题。

团队实验了一个三组件神经网络设计,看起来像这样:

  • 图像编码:原始菜单照片通过预训练视觉骨干传递。他们尝试基于 CNN 的模型如 VGG16 和 ResNet,以及基于 transformer 的模型如 ViT(Vision Transformer)和 DiT(Document Image Transformer)。
  • 表格特征:除了图像编码,网络摄取从 OCR 输出和 LLM 转录衍生的特征。
  • 融合和分类:这些输入通过全连接层组合,结束于分类器头,预测转录是否足够准确。

下图说明这个设计:一边是图像模型,另一边是 OCR/LLM 表格特征,都馈入密集层然后合并到最终分类器。这是一种标准的多模态融合方法,设计用于同时从多个来源捕获信号。

结果

然而,结果令人惊讶。

尽管神经网络复杂,最简单的模型(LightGBM:梯度提升决策树)优于所有深度学习变体。

LightGBM 不仅实现更高准确性,而且运行更快,使其更适合生产部署。在神经网络变体中,基于 ResNet 的编码最接近,而基于 ViT 的模型表现最差。主要原因是数据:有限的标记样本使更复杂的架构难以发光。

生产管道

一旦 guardrail 模型就位,团队构建了一个完整的生产管道,平衡自动化和人工审查。它一步一步工作:

  1. 照片验证:每个提交的菜单照片经过基本检查以确保文件可用。
  2. 转录阶段:候选模型(最初是 OCR + LLM 管道)从照片生成结构化转录。
  3. Guardrail 推理:来自照片、OCR 输出和 LLM 摘要的特征馈入 guardrail 模型,预测转录是否满足准确性要求。
  4. 路由决策:如果 guardrail 预测转录准确,结构化数据自动发布。如果 guardrail 预测可能错误,照片升级给人工转录。

这个设置立即提高效率。机器快速处理简单情况,而人类集中精力在困难菜单上。结果是平衡的过程:自动化加速操作并降低成本,而不降低最终菜单数据的质量。

多模态 LLM

AI 研究的步伐没有停滞。在第一个 guardrail 模型上线后的几个月,多模态 LLM(可以直接处理图像和文本的模型)变得足够实用以在生产中尝试。不是仅依赖 OCR 提取文本,这些模型可以直接看原始照片并直接推断结构。

DoorDash 工程团队将这些多模态模型与现有 OCR + LLM 管道集成。每个方法都有清晰的优缺点:

  • 多模态 LLM 证明在理解上下文和布局方面优秀。它们可以更好地解释有不寻常设计、多列布局或 OCR 经常打乱的视觉线索的菜单。然而,当照片本身质量差时,它们也更脆弱,有黑暗光线、眩光或部分裁剪。
  • OCR 和 LLM 模型 在嘈杂或降级输入上更稳定,但在细微布局解释方面挣扎,经常错误链接类别和属性。

下图显示两个管道现在如何在同一个 guardrail 系统下共存。

两个模型都尝试转录,它们的输出被评估。Guardrail 然后决定哪些转录满足准确性标准,哪些需要人工审查。

这种混合设置导致两全其美。通过让 guardrail 在 multimodal 和基于 OCR 的模型之间仲裁质量,系统提高自动化率,同时仍然保持生产所需的高准确性。

本文为学习目的的个人翻译,译文仅供参考。

原文链接:How DoorDash uses AI Models to Understand Restaurant Menus

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。