随着多模态大模型技术的不断进步,大模型的应用范围得到了极大的扩展,其中较为重要的一个分支便是审核场景。现业务域内有较多场景需要人工进行凭证审核,这些审核工作不仅需要耗费较多的人力成本,效率上也有较大的提升空间。
冲出困境
▐ 思路提出
凭证审核的主要任务集中在视觉问答(Visual Question Answering, VQA)上。结合Qwen官网对相关模型的VQA任务测评(如下图所示)以及我们对相关任务的实际测评,初步判断具备可行性。
▐ 实现方案
识别准确率是本项目的关键因素,接下来分别从三个任务:品种识别、商品问题识别以及问题比例识别上详细阐述我们提高识别准确率的方案。在大模型的准确率提升上,通常有三种解决方案,按照投入成本由高到低分别为预训练、微调以及prompt工程。通常来说如果选用的模型足够优秀,那么大多数任务的准确率可以根据prompt工程来提升,在本项目中我们对prompt工程以及微调方案分别做了尝试。
1. prompt工程
在prompt工程上,我们曾尝试了LLM的几个经典思路如链式思维(Chain-of-Thought, CoT)和少样本学习(Few-Shot Learning)等思路,经过相关资料查阅以及相关测试,确定其中较为行之有效的为Few-Shot的思路,如在物体缺陷检测(质量问题)的应用如下。
1)Few-Shot思路
大模型已经在广泛的文本数据上进行了预训练,具备了丰富的语言理解和生成能力。Few-Shot利用这些预训练知识,通过提供少量的任务相关示例(通常是在输入提示中),来指导模型完成特定任务,这些示例可以是问题-答案对、指令-响应对等,帮助模型理解任务的要求和预期的输出格式,往往能达到预期之外的效果,如下图所示,该图引自文章The Dawn of LMMs: Preliminary Explorations with GPT-4V(ision):
zero-shot |
few-shot |
在本项目中,同样也采用了Few-Shot的思路,该思路需要保证样本具备较高的质量,我们收集了各个类目高质量的品控验收标准图作为样本输入。
综上,以核果-桃子类目-腐烂变质场景为例,prompt便可设计如下,其中图1取自商品主图,图2为消费者上传的退款凭证,prompt的大致格式如下:
图1 |
图2 |
prompt |
根据图1,请你确定图2是否发生***等质量问题 |
2)类目prompt单独调优
不同生鲜类目间有不同的质量问题的特征体现,如下表格所示西瓜的变质、葡萄掉粒、柚子失水等等,因此需要对不同类目进行针对性的prompt调优。
西瓜变质 |
葡萄掉粒 |
藕腐烂 |
柚子失水 |
青菜不新鲜 |
各类目的特性问题
为快速对数百个叶子类目进行优化,我们设计了一套prompt调优工程化的方案,根据该调优方案,我们覆盖了发霉、腐烂、脏污、破损、掉粒等20+种场景的识别检测。该方案主要有如下四个环节:
1. 知识对齐,为什么要做知识对齐?这里的对齐是指我们向模型对齐,因为模型对prompt的理解和我们的理解可能存在偏差,我们需要先让模型给出特征的描述,以模型给出的描述作为prompt的组成;
2. prompt构造,基于品、凭证等信息构造prompt;
3. 版本准确率输出,该环节小二会对模型的输出结果进行打标,我们便可以拿到各场景的准确率情况;
4.反馈修正:即不断优化badcase直至准确率达到我们的要求。
类目准确率优化流程图
2. 微调
通过prompt工程,我们已经解决了缺陷识别问题,但还有个问题无法解决,就是比例的问题。如下图所示,比例的问题的关键在于要准确地识别出凭证中出现问题的商品的个数,我们以生鲜场景的爆品-鸡蛋为例,无论使用GPT还是qwen-vl,prompt工程优化准确率达到瓶颈,无法线上使用,基于此我们便尝试了大模型微调方案。
整体流程
下图为整个微调&部署过程的示意图,接下来将详细阐述整个过程。
1. base model的选用
综合评估开源模型能力以及安全稳定性等考虑,我们选用了qwen-vl作为基座模型,以下为qwen-vl模型官方公布数据参数情况以及相关能力评测。
2. 数据集准备
优质的数据集往往能够决定微调模型的表现,得益于历史的数据积累,我们省去了繁重的标注工作。我们根据历史数据清洗出以下数据集,单图鸡蛋质量问题个数、多图鸡蛋质量问题个数(消费者可能上传多张退款凭证,多张图要判断是否为不同视角问题),除此之外,还加入了品种识别的分类任务,以确保我们在品种识别上能够取得更好的表现(前文所述,三个关键信息的识别:品种识别、问题识别、比例识别),另外加入了一些白图和截图数据,减少大模型幻觉。
数据集类型 |
数据集名称 |
数据描述 |
自建 |
鸡蛋问题个数-单图 |
取存量历史数据,一次prompt单张凭证 |
自建 |
鸡蛋问题个数-多图 |
取存量历史数据,一次prompt多张凭证,解决多视角问题 |
自建 |
生鲜类目数据 |
分类任务使用 |
自建 |
非生鲜实物图数据 |
主要为网图、白图、截图等,缓解幻觉,训练大模型说不的能力。 |
3. 训练过程&部署过程
微调以及部署发布过程如上微调&部署过程的示意图所示,其中涉及两个平台使用。1)星云:阿里微调训练平台。2)whale:阿里大模型部署一体化解决方案。有了这两个平台我们便可以完成整个链路的训练及开发。
微调时采用边train边eval方式,数据比为9:1,A100卡训练14h,eval_loss持续收敛,在epoch=2.2时,获得最小的eval_loss,相关超参调整过程不再展开。部署微调后的模型,引用whale平台sdk便可实现访问,访问接口格式遵守Openai协议。
4. 端到端测评
为验证模型表现以及验证全链路调用,我们进行系统测评,在JAVA工程中发起调用,解析返回结果,并与人工标注结果进行比较。以下是测评结果,经过微调之后,问题个数的识别任务准确率相比GPT4提升11pt,分类任务提升2pt。
模型 |
问题鸡蛋任务准确率 |
分类任务准确率 |
GPT4 |
与人工结果误差1个以内准确率为79%。 |
90% |
qwen-vl-sft |
与人工结果误差1个以内准确率为90%左右,标准差也有所收敛。 |
92% |
5. 压测情况
为了摸清微调后大模型服务的QPS水位,我们对模型进行了压测。在双卡L20,单张图片并且输入输出tokens与微调时保持一致的情况下,大概能达到10QPS水准,达到我们的业务场景要求。
大模型技术的蓬勃发展,让我们站在前所未有的变革前沿。这股强大的技术浪潮不仅重新定义了信息处理与分析的方式,更是在深刻地影响着各行各业。作为一个技术人,我们不仅要保持对最前沿科技的热情,学习最新的理论知识和技术工具,还要积极尝试创新的方法。只有这样,才能在这场由大模型引领的技术革命中抓住机遇,创造出更多具有突破性意义的产品和服务。
[1] Bai J , Bai S , Yang S ,et al.Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond[J]. 2023.
[2] Dosovitskiy A , Beyer L , Kolesnikov A ,et al.An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale[C]//International Conference on Learning Representations.2021.
[3] Radford A , Kim J W , Hallacy C ,et al.Learning Transferable Visual Models From Natural Language Supervision[J]. 2021.DOI:10.48550/arXiv.2103.00020.
[4] Yang Z , Li L , Lin K ,et al.The Dawn of LMMs: Preliminary Explorations with GPT-4V(ision)[J]. 2023.
[5] Antol S , Agrawal A , Lu J ,et al.VQA: Visual Question Answering [J].International Journal of Computer Vision, 2015, 123(1):4-31.DOI:10.1109/ICCV.2015.279.
我们是淘天集团-业务技术-自营技术-风控技术团队,致力于通过数据化与智能化能力,精准识别并深入洞察业务风险,构建全方位的风险管理体系,以实现对业务风险的及时有效应对,为业务稳健发展保驾护航。
本文分享自微信公众号 - 大淘宝技术(AlibabaMTT)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。