写点什么

PP-ChatOCR:基于文心大模型的通用图像关键信息抽取利器,开发提效 50%!

  • 2023-08-10
    北京
  • 本文字数:4016 字

    阅读完需:约 13 分钟

PP-ChatOCR:基于文心大模型的通用图像关键信息抽取利器,开发提效 50%!

在日常生活中,大家经常会遇到图像关键信息自动抽取的场景,比如身份证拍照上传自动识别、发票拍照上传自动报销等。


在这个领域,现有的 AI 技术方案已经能解决一部分需求,但是依然存在一些痛点,比如发票的种类样式极其繁多,基于 OCR 文字识别+规则后处理的方案无法有效覆盖全部样式,即泛化性很差。如果要强行覆盖全部样式,成本又太高。


针对这样的问题,飞桨团队隆重推出基于文心大模型的全新解决方案——PP-ChatOCRPP-ChatOCR 将 LLM(Large Language Model)与经典的 PP-OCR 模型结合,达到了通用场景下的图片关键信息抽取效果,支持身份证、银行卡、户口本、火车票等多种场景的关键信息提取。 您只需要指明自己所关注的字段,PP-ChatOCR 就能帮您从图片中提取出这些字段的信息!下面来看看效果~






要知道,这后面仅仅是一套 OCR 模型和针对 LLM 的 Prompt 模板哦!这强大的泛化能力,不可谓不香了~


在飞桨 AI 套件中使用 PP-ChatOCR

PP-ChatOCR 今天正式上线飞桨 AI 套件 PaddleX!源码全部开放!您可以在 AI Studio 云端或者 PaddleX 本地端尽情探索!一方面可以发挥您的想象力修改 Prompt,另一方面您也可以在 PaddleX 中对 PP-OCRv4 做训练微调。同时 PaddleX 还支持 PP-ChatOCR 的高性能部署,赶快尝试与真实业务场景结合,体验 LLM 带来的生产力变革吧!


PaddleX 是一站式、全流程、高效率的飞桨 AI 套件,具备飞桨生态优质模型和产业方案。PaddleX 的使命是助力 AI 技术快速落地,愿景是使人人成为 AI Developer。


PaddleX 支持 10+任务能力,包括图像分类、目标检测、图像分割、3D、OCR 和时序预测等;内置 36 种飞桨生态特色模型,包括 PP-ChatOCR、PP-OCRv4、RP-DETR、PP-YOLOE、PP-ShiTu、PP-LiteSeg、PP-TS 等。


PaddleX 提供“工具箱”和“开发者”两种开发模式,同时支持云端和本地端。工具箱模式可以无代码调优关键超参,开发者模式可以低代码进行单模型训压推和多模型串联推理。


PaddleX 未来还将支持联创开发,收益共享!欢迎广大个人开发者和企业开发者参与进来,共创繁荣的 AI 技术生态!


目前 PaddleX 正在快速迭代,欢迎大家试用和指正!比心~


PP-ChatOCR 核心思想


PP-ChatOCR 为什么能做到通用的图像关键信息抽取?这样的能力带来了怎样的价值?让我们从 PP-ChatOCR 的设计核心思想来一探究竟。


传统 OCR+规则的信息抽取:规则复杂,泛化能力差


在传统的图像关键信息抽取技术方案中,主要思路是先经过 OCR 文字识别,然后根据业务需求,设计一整套规则来提取若干关键信息。这样的做法有一些明显的缺点:(1)泛化能力差。图像中文字编排略有调整,可能就需要修改提取规则。(2)扩展能力差。新增规则复杂,关键信息字段与规则数量成正比,成本较高。



PP-ChatOCR:扩展能力强,泛化能力强,开发成本降低


图像关键信息提取的关键点在于对 OCR 识别结果的规则化处理。如上所述,传统的技术方案采用人工编写规则的“硬编码”方式,不够优雅,泛化能力很差。那么,既然 OCR 识别结果都是文字,把规则化处理的工作交给号称具备了 AGI 雏形能力的 LLM 来做会不会有很好的效果呢?答案是肯定的。把不经任何处理加工的 OCR 识别结果直接喂给 LLM,编写好 Prompt 提示词,就能非常准确、稳定地获得我们所关注的关键信息了。


PP-ChatOCR 的泛化能力极强,只要 OCR 能顺利识别出来关键文字,PP-ChatOCR 理论上就能提取出关键信息,甚至少量的文字识别错误也能被 LLM 自动纠正!


PP-ChatOCR 的扩展能力也很强,如果业务中需要额外提取新的字段信息,只需要修改一下 Prompt,就搞定了全部工作!


这样一来,搭建一套通用图像关键信息抽取系统的成本就大大下降了,而这就是大模型技术变革带来的生产力提升!



PP-ChatOCR 要点解读

PP-ChatOCR 整体的技术框架如下图所示。



整体来说,PP-ChatOCR 的技术流程还是比较简单的,一共分为以下若干步骤:


  • OCR 推理。使用 OCR 模型对输入图像进行文字检测识别处理,这里 PP-ChatOCR 默认使用了 PP-OCR 系列的最高精度模型--PP-OCRv4_server,保证在速度不敏感的服务器端提供最准确的 OCR 识别结果。

  • 场景判别。直接将 OCR 识别的结果送入 LLM,并询问 LLM“根据当前的 OCR 识别结果,当前图像的场景属于以下场景列表的哪一种:【火车票】、【身份证】、【驾照】、【营业执照】、【学位证书】...文心大模型基本可以做到 100%的场景判别准确率

  • Prompt 构造。在 Prompt 构造环节,由于我们要使用 few-shot learning 或者所谓的 in-context learning 的技巧,需要知道当前图像所属于的场景,所以正好用上第二步场景判别的结果。除了 few-shot learning 之外,通用的 PP-ChatOCR 暂时没有使用其它特别的技巧,仅仅是将任务要求描述清楚,让大模型输出 json 格式的结果,方便我们解析。

  • 后处理。理想情况下大模型的输出结果应当是符合预期的 json,但是众所周知 LLM 是一个黑盒子,总会有一些意外存在,为了能够在业务系统中稳定运行,就必须妥善处理这些意外。PP-ChatOCR 目前实现了 json 格式检查等后处理操作,在真实业务场景下,可以设置更多的后处理规则,以保证系统的可靠性。


值得注意的是,如果您在一个明确的场景中使用 PP-ChatOCR,上述第二步场景判别过程是可以省略的,第三步的 few-shot learning 直接提供该场景下的例子即可。


整体看下来,不知道大家有没有发现,虽然 PP-ChatOCR 名字里面带了 Chat 一词,但是在使用上并没有显式的 Chat 过程。这里稍微解释一下,PP-ChatOCR 面向的是真实业务场景的落地,是需要集成到业务系统中自动化运行的。要做到这一点,就必须要求其输出格式化的结果,不能有废话(这个其实很关键),而且整体精度要足够高。在真实的图像关键信息提取的场景中,几乎没有人会拿一张火车票或者证件去跟 LLM“聊天”,所以即使在 AI Studio 的应用中心,PP-ChatOCR 也没有要求大家像使用 ChatBot 一样聊天。而之所以带上 Chat 一词,归根到底还是跟 LLM 产生了对话,而且现在跟 LLM 相关的项目,动辄就要带上 Chat,我们也不能例外。


就这一套通用场景下的 PP-ChatOCR 技术方案,基于一个通用的 PP-OCRv4 模型、一套共用的 Prompt 模板,没有增加复杂的前后处理逻辑,目前在 12 种图像场景中,已经达到了平均 80% 以上的精度。在一些相对简单的场景(例如身份证)中,精度可达 97%


在此基础之上,大家可以充分发挥想象力,进行垂类场景中 PP-ChatOCR 能力的定制优化,比如说可以使用更强大的 OCR 模型、使用更多的 Prompt 工程技巧、添加更多的前后处理规则等。在下面一小节,我们就来聊一聊如何打造个性化的 PP-ChatOCR。

如何打造个性化的 PP-ChatOCR

在真实业务中,一般不建议直接使用通用版的 PP-ChatOCR,而是需要针对业务场景中的图像类型进行专门的优化适配,以实现足够高的精度和稳定性,满足真实业务需求。那么,如何打造个性化的 PP-ChatOCR 呢?下面让我们一一道来。


获取文心大模型调用能力


首先,我们需要有方法调用文心大模型的能力。AI Studio SDK 中集成了文心大模型服务调用能力,所以没有申请到 API 的同学也可以在 AI Studio 直接调用文心大模型了!


创建 PP-ChatOCR 模型产线飞桨 AI 套件 PaddleX 已上线 AI Studio 平台,目前的入口在模型库,大家可以在这里找到 PP-ChatOCR,阅读其介绍文档,并最终创建属于你自己的 PP-ChatOCR 模型产线。


准备评估数据与效果验证


为了客观地评价 PP-ChatOCR 的效果,建议大家从业务场景中准备一定量的评估数据进行定量的综合评价。例如,可以准备 50 张火车票图像,根据业务需求标注所关注的字段及其真值。


在对通用的 PP-ChatOCR 效果进行评估之后,其结果可以作为 baseline 指导后续针对业务场景的优化工作。


针对业务场景的优化


终于来到了关键的环节,在这里,我们讨论如何针对具体的垂类业务场景进行 PP-ChatOCR 的优化。


PP-ChatOCR 由传统的 OCR 模型和文心大模型两部分组成,所以优化大致可以分为两个方面:一是训练微调 OCR 模 ,使之在垂类场景中的精度进一步提高;二是 “调教”文心大模型,通过 Prompt 工程和适当的后处理工作使大模型能够输出我们想要的结果,甚至可以考虑对 LLM 进行微调。


  • 微调 OCR 模型方面,推荐大家使用飞桨最新推出的 PP-OCRv4 模型。PP-OCRv4 是实用的超轻量通用 OCR 模型。在实现前沿算法的基础上,考虑精度与速度的平衡,进行了模型瘦身和深度优化。在飞桨 AI 套件中即可体验和训练微调 PP-OCRv4,大大提高开发效率。

  • “调教”文心大模型方面,大家就有非常广阔的发挥空间了。Prompt 方面,大家可以基于 PP-ChatOCR 提供的基础 Prompt 进行优化。比如最常见实用的 in-context learning 技巧,给 LLM 几个例子,效果通常就会有明显的提高。再比如给大模型一些场景相关的信息,让大模型充分理解上下文语境,应该也能带来一些效果提升。另外,对大模型输出的约束也很重要,比如不能输出废话,不能被恶意使用者越狱等。最后还有一个终极大招,就是对大模型本身进行微调。不过目前来看文心大模型现有的能力已经能够满足 PP-ChatOCR 的使用场景,因此大概率是没必要“杀鸡用牛刀”的。


到了这一步,作为 PP-ChatOCR 的使用者,模型开发基本就结束了。经过上述步骤的全方位调优之后,确认在评估数据中的精度和稳定性达标,就可以着手部署到真实的业务系统中去啦!


One more thing,未来在飞桨 AI 套件 PaddleX,大家不仅可以开发自己的模型,还可以联创贡献,和平台收益共享!


联创模式不仅可以技术变现,还可以让个人开发者收获满满的成就感,为企业开发者吸引流量和关注,真可谓好事成双!而且,有了大量的用户,就能够收集到有价值的反馈,促进贡献者进一步优化模型,从而吸引更多的用户,可谓双螺旋上升~


为了保护贡献者的知识产权,我们会提供完善的加密鉴权机制,各位贡献者只需要按照我们的文档接入加密鉴权能力,就可以放心地贡献模型啦!关于联创的更多细节,敬请关注飞桨 AI 套件 PaddleX 后续更新!


PP-ChatOCR 所使用的 PP-OCRv4 模型,目前已发布在 PaddleOCR 2.7 新版本中,欢迎大家使用!


用户头像

还未添加个人签名 2022-12-26 加入

还未添加个人简介

评论

发布
暂无评论
PP-ChatOCR:基于文心大模型的通用图像关键信息抽取利器,开发提效 50%!_人工智能_飞桨PaddlePaddle_InfoQ写作社区