DoorDash 如何使用 AI 模型解析餐厅菜单

B站影视 欧美电影 2025-09-28 21:54 1

摘要:然而,对于外卖平台而言,保持菜单更新是一项永无止境的挑战。餐厅会不断更新菜品、价格和特价活动,而大规模地手动完成所有这些工作既昂贵又缓慢。

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

然而,对于外卖平台而言,保持菜单更新是一项永无止境的挑战。餐厅会不断更新菜品、价格和特价活动,而大规模地手动完成所有这些工作既昂贵又缓慢。

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

从表面上看,这个想法很简单:拍张照片,通过 AI 处理,然后得到一份清晰的数字菜单。但在实践中,现实世界中图像的混乱情况(如裁剪过的照片、光线不佳、布局杂乱)很快就暴露了大语言模型自身的局限性。

但关键的洞见在于,大语言模型虽然擅长总结和组织,但在面对含噪声或不完整的输入时会失效。为了克服这一点,DoorDash 设计了一个带有护栏 (guardrails) 的系统。这是一种决策机制,用于判断自动化何时足够可靠可以使用,以及何时需要人工介入。

在本文中,我们将探讨 DoorDash 是如何设计这样一套系统以及他们所面临的挑战。

基础版最小可行产品 MVP

第一步是验证菜单是否能以自动化的方式被数字化。

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

这种方法作为原型效果不错。

它表明,机器原则上可以拍摄一张菜单照片并输出类似数字菜单的东西。但一旦系统进行规模化测试,裂痕开始出现。准确性遭受了持续性的影响,不容忽视。

主要原因如下:

不一致的菜单结构: 现实世界的菜单并非整齐有序的列表。有些是多栏的,有些使用混合字体,还有许多菜单以不可预测的方式散布类别和项目。OCR 工具常常会打乱读取顺序,这意味着 LLM 最终会将项目与错误的属性配对,或完全错置类别。 不完整的菜单: 照片通常是经过裁剪或部分的,只捕捉到菜单的某些区域。当 LLM 接收到没有其父项目或没有其描述的属性时,它会进行猜测。这些猜测导致了结构化输出中的不匹配和错误条目。 照片质量低下: 许多菜单照片是在昏暗的光线下拍摄的,存在玻璃镜框的反光或背景中的杂物。小字体和倾斜的拍摄角度增加了噪声。图像质量差会降低 OCR 的准确性,而这些错误会级联传递到 LLM 阶段,从而降低最终的转录质量。

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

LLM 护栏模型

为了解决准确性问题,工程团队引入了他们称之为护栏模型的组件。

其核心是一个分类器,用于预测由给定菜单照片生成的转录结果能否达到生产所需的准确度标准。其逻辑很简单:

如果护栏模型预测输出足够好,结构化的菜单数据将自动发布。 如果护栏模型预测可能失败,照片将被转交给人工进行转录。

构建这个护栏模型不仅仅是观察图像。

团队意识到,该模型需要理解照片、OCR 系统和 LLM 之间是如何相互作用的。因此,他们从三个不同来源设计了特征:

图像级特征: 这些特征捕捉照片本身的质量,例如是否昏暗、模糊、有反光,或者背景中是否有杂物。 源自 OCR 的特征: 这些特征衡量文本提取的可靠性,例如 Token 的有序程度、置信度得分是否高,或者系统是否产生了碎片和无用文本。 源自 LLM 输出的特征: 这些特征反映了结构化转录的质量,例如类别和属性的内部一致性如何,或者覆盖范围是否看起来不完整。

这种多视角方法直接针对前面发现的三种失败模式:不一致的菜单结构、不完整的菜单和照片质量差。

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

护栏模型的训练与性能

设计护栏模型引出了一个问题:哪种架构在实践中效果最好。

团队试验了一个三组件的神经网络设计,如下所示:

图像编码: 原始菜单照片通过一个预训练的视觉骨干网络进行处理。他们尝试了基于 CNN 的模型,如 VGG16 和 ResNet,以及基于 Transformer 的模型,如 ViT 和 DiT (Document Image Transformer)。 表格化特征: 除了图像编码,网络还接收从 OCR 输出和 LLM 转录中提取的特征。 融合与分类: 这些输入通过全连接层进行组合,最终进入一个分类器头部,用于预测转录是否足够准确。

下图展示了这种设计:一侧是图像模型,另一侧是 OCR/LLM 表格化特征,两者都输入到密集层 (dense layers),然后合并成最终的分类器。这是一种标准的多模态融合方法,旨在同时捕捉来自多个来源的信号。

然而,结果令人意外。

尽管神经网络很复杂,但最简单的模型 (LightGBM:一种梯度提升决策树) 的性能超过了所有深度学习变体。

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

生产流程

护栏模型就位后,团队构建了一个完整的生产流程,平衡了自动化与人工审核。它按步骤工作:

照片验证: 每张提交的菜单照片都会经过基本检查,以确保文件可用。 转录阶段: 候选模型(最初是 OCR + LLM 流程)从照片生成结构化转录。 护栏模型推理: 来自照片、OCR 输出和 LLM 摘要的特征被输入护栏模型,该模型预测转录是否满足准确性要求。 路由决策: 如果护栏模型预测转录是准确的,结构化数据将自动发布。如果护栏模型预测可能存在错误,照片将被上报至人工转录。

下图展示了这个流程:菜单照片进入,通过转录模型,然后由护栏模型评估。之后,准确的案例直接流入系统,而不确定的案例则分流给人工操作员。

这种设置立即提高了效率。机器快速处理简单的案例,而人工则将精力集中在困难的菜单上。结果是一个平衡的流程:自动化加快了运营速度并降低了成本,同时没有降低最终菜单数据的质量。

借助多模态生成式 AI 的快速演进

AI 研究的步伐并未停滞。在第一个护栏模型上线后的几个月里,多模态大语言模型(可以直接处理图像和文本的模型)变得足够实用,可以在生产中进行尝试。这些模型不再仅仅依赖 OCR 提取文本,而是可以直接观察原始照片并推断其结构。

DoorDash 工程团队将这些多模态模型与现有的 OCR + LLM 流程集成在一起。每种方法都有其明确的优缺点:

多模态大语言模型在理解上下文和布局方面表现出色。它们能更好地解读设计不寻常、多栏布局或带有 OCR 常常会搞乱的视觉提示的菜单。然而,在照片本身质量较差(如光线昏暗、有反光或部分裁剪)时,它们也更为脆弱。 OCR 和 LLM 模型在含噪声或质量退化的输入上更为稳定,但它们难以处理细微的布局解读,常常会错误地关联类别和属性。

下图显示了这两个流程现在如何在同一个护栏系统下共存。

两个模型都尝试进行转录,它们的输出都会被评估。然后,护栏模型决定哪些转录达到了准确度标准,哪些需要人工审核。

这种混合设置实现了两全其美。通过让护栏模型来裁决多模态模型和基于 OCR 的模型之间的质量,系统在保持生产所需的高准确性的同时,提高了自动化率。

结论

将餐厅菜单照片自动化转录是一个看似简单实则复杂的问题。一个最初简单的 OCR 到 LLM 流程在面对混乱的现实世界输入时——不一致的结构、不完整的菜单和低劣的图像质量——很快就暴露了其局限性。

工程团队的解决方案不仅仅是更努力地优化模型本身,而是重新思考系统架构。引入护栏分类器使得自动化能够负责任地进行规模化,确保客户和餐厅总能看到准确的菜单,同时让机器处理更简单的案例。

随着生成式 AI 领域的发展,该系统也随之演进。

通过在同一个护栏框架下将 OCR 和 LLM 模型与更新的多模态方法相结合,DoorDash 能够利用两类模型的优势,而不会受其弱点所困。

展望未来,仍有几个机会有待探索:

领域微调 (Domain fine-tuning): 越来越多经人工验证的转录数据集可用于对 LLM 和多模态模型进行微调,以适应餐厅菜单的特定细节。 上游质量控制: 投入于照片预处理技术,如去反光、去噪、去偏斜和裁剪检测,将提升基于 OCR 和多模态系统的准确性。 护栏模型优化: 随着模型不断改进,护栏模型也可以随之改进。扩展其特征集、重新训练 LightGBM,甚至探索混合架构,都将进一步推动安全的自动化。

来源:智慧芯片一点号

相关推荐