【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

如何针对不同被测模型,自动化筛选 Badcase 呢?

  • 2022-04-06
  • 本文字数:3979 字

    阅读完需:约 13 分钟

如何针对不同被测模型,自动化筛选 Badcase 呢?

嘉宾:赵明

整理:李慧文

 

通常 AI 模型的测试需要依赖高质量的标注数据,不过在不同的应用场景下,所需要的数据标注体量存在差异。QCon 全球软件开发大会(2021)北京站上,好未来 AI 研究院赵明分享了好未来通过借助语音、图像、NLP 等 AI 模型进行有机组合,加入预处理和后处理过程,搭建自动化流水线,在不依赖于标注数据的情况下,对被测模型进行 Badcase 的自动化筛选,从而提高测试效率,辅助算法角色提升算法模型的优化迭代速度的真实案例。

 

赵老师的演讲很受听众欢迎,所以我们整理了他的演讲内容,分享给你。

AI 中台业务、技术背景与工作痛点

 

好未来 AI 研究院研究的是在教育场景下如何通过 AI 提升用户体验,提高整体运营效率。我今天会分享我院实践中的痛点及解决方案,包含在细分领域中筛选 Badcase 的方案,如何通过平台化整合这些方案便捷地做根因分析、Badcase 定位,以及对 AI 研发提效的探索。



AI 覆盖了好未来教育业务的方方面面,具体分为三个方向:语音类、图像类和 NLP。语音类包括语音的识别、评测和合成;图像类包括内容审核、印刷体或屏幕手写 OCR(Optical Character Recognition,光学字符识别)、拍照搜题、笔记工整度评级等;NLP 领域包括课堂特征统计,互动质量检测、作文批改等。

 

通过 AI 虽能大幅度降低人工成本,但实践中仍有很多痛点。第一,教育场景碎片化,分为不同的学科、年级、班次、地区,每个细分场景都需要定制化 AI 能力。

 

第二,评估需要持续获取线上反馈,即大量高质量人工标注数据。人工标注和质检成本高,周期长,难以常态化运营。

 

第三,造成 Badcase 的因素较多,如数据、预处理、模型参数、模型本身泛化能力及鲁棒性等,导致 Badcase 定位难,周期长。

 

基于以上痛点,我们设计了以下筛选 Badcase 的流水线。

TTS 语音合成 Badcase 自动化筛选方案

 

TTS 语音合成是将文本自动合成音频,要求不能吞音丢字、不能有机械音、停顿及语气要与常人讲话相仿。

 

通过人工打分测评合成语音质量不仅效率低,且主观性较强,需要多人评测才能获得较客观的分数,因此我们研发了如下流水线,分为四步。



首先,将 TTS 合成的音频输入一个文本转录模型(ASR)中,该模型会将收到的音频转化为新文本,对比该文本和原始文本的一致性,即可初步判断合成语音的质量。对比一致性可以使用莱温斯坦比或 CER、WER 等指标,差异较大或字词错率较高时即为 Badcase。

 

第二,将语音输入语速检测模型中,检查该语音能否和预标注数据的整体趋势相拟合,进行宏观校验。过程如下图所示,图中原始的音频已有标注,是训练的样本。该样本的音频时长和字数的关系如散点图所示,数据点集中在一个通道中,字数和音频的时长有线性关系,A、B 两个区域的数据点即为语速异常的 Badcase。



第三,通过工程的方式即对比 JSON 文件进行字符停顿检测,检查合成音频断句停顿是否符合人类语言节奏,进行微观校验。我将图中的静音检测标黄了,读图可得 1.0 版本的断句为“天气/很晴朗”,但 1.1 版本成了“天/气很晴朗”,停顿出错。

 


音频打点是用 ARS(Automatic Speech Recognition,自动语音识别技术),获取每一个字起始和结束的时间点及时间间隔。

 

最后,通过语音评测模型,以流利度、音色标准为指标为合成语音和人类语音拟合程度打分。如果得分较低,则证明存在一定的机械音,需要作为 Badcase 处理。

 

该方案只要有回流的数据,即可迅速发现线上合成音频的问题,召回率达到了 99%,基本不会漏检,但可能会误检,需要人工复核。

OCR Badcase 自动化筛选方案

 

搜题是凭借题目的照片,调用 OCR 将图片转换成文本,去题库中搜索正确答案。OCR 场景的技术难关是处理由拍摄光线、拍摄角度、手写和印刷混排等原因造成的低质图片。

 

我们先初步筛选线上回流数据,随后通过图像质量检测模型筛选出低质数据,将低质数据同时输入两个模型:OCR 被测模型和数据增强模型。

 


数据增强模型通过可以调亮过暗图片、调整过曝图片的对比度等等,提高模型识别准确率。对比 OCR 被测模型和数据增强模型的结果,差异越大说明模型拟合效果越差,即为 Badcase。下图为该方案的案例:

 


原始输出结果经过了去雾、清晰增强、对比增强、图像增强等处理后,输出结果增多,效果较好。增强后模型效果好,即证明原模型鲁棒性较差,需要将该数据同步算法工程师进行定向优化。通过提高图像质量检测模型的精度,也可以实现本功能。实际上线效果如下图所示:

 


左侧图片经过数据增强后结果如右图所示,此时机器可识别红框中的内容。通过计算莱温斯坦比可得黄色的文字,即漏检的文本信息。

 

传统的方式很难从亿级别数据中找到有问题的数据,通过该流水线能够提效至少 50%,成本也会大幅度降低。

NLP 作文批改 Badcase 自动化筛选方案

 

作文批改是先通过 OCR 手写体识别获取文本信息,将其送入 NLP 模型,识别及纠正其中的错别字,将修辞的手法(如夸张、比喻、拟人)作为量化评估的方法,评估该作文的水平。

 

好未来作文批改的 Badcase 自动化筛选模型分为两条路线,如下图所示:



左侧路线是调用 SimBert 模型(可在 GitHub 上搜到),获取形似字、易错字、近义词等作为错误插入范文,将含错范文输入作文批改模型。如该模型能正确检测出插入的多数错误, 则 P/R 值高,如遗漏率高,则为 Badcase。因为前置处理 OCR 精度无法达到 1,所以本流水线需要兼容或部分兼容前置 OCR 的错误。

 

前期模型无法检测出某些语法错误,所以需补充右侧路线:人工标注回流数据,结合左侧路线共同判别 Badcase。

 

该流水线实现了每日消息无人值守:首先在凌晨进行线上回流数据的清洗、脱敏,随后将所得部分数据的子集输入该流水线,即可得到昨日线上的高疑似 Badcase。将所有 Badcase 整理为 List,即可供进一步调优和根因分析以及后期模型的迭代优化使用。

AI 模型指标评测平台化整合

图像、语音、NLP 等各大能力虽然逻辑简单,但每个子模型的输入输出均不完全相同,对平台的整合挑战巨大。我们设计了如下分层方案。



底层是数据/脚本持久化层。在该层我们存储部分的目标数据,设定部分接口调用脚本逻辑,通过模板配置快速兼容新能力。

 

第二层算法指标计算处理层。算法分析指标众多,如语音类的 WER、CER,图像类的序列准确、字符准确度等。归一化这些指标后,即可获取算法指标计算脚本库和归一化处理逻辑的映射,也可做竞品评测对比。

 

第三层是作业调度层。大量数据处理速度会较慢,因此我们会将数据分片、拆开做分布式处理,辅以多线程处理和多进程处理。

 

上层由前文介绍的众多 Badcase 筛选流水线组成而成。平台效果如下图:



该平台汇集了 Badcase 的标注数据、实际在线处理数据、转录后的语音及文本结果等,可供随时查询、事后跟踪和分析。内部验证集和测试集不能完全的拟合线上的情况,通过该平台,即可常态化地定量抽取线上数据,评估实际线上表现,如低于内部评测表现可继续深入分析。

 

该平台研发仅半年,处理数据已破千万。使用者除了算法测试的工程师外,还包括产品。产品推广 AI 能力,需要提供 WER 值行业内水平等量化评估数据。通过该数据平台,产品可便捷地查询最新量化指标。图中指标包括一致性、相关系数和 MAE 等。而工程的人员即使不懂算法和计算逻辑,也可通过该平台快速算出最新版模型的线上效果。

AI 研发提效的持续思考

 

我们在数据、代码、模型、产品四个方面探索了 AI 研发提效。对于数据,我们正在探索如何精准标注、自动标注、管控质量。精准标注即用最少数据获取有用算法和加速 PR 值提升,会通过对线上回流后的数据打签,减少识别效果好的数据选取。比如印刷版本识别即可少选数据,而手写公式识别则需多选数据。自动标注即用成熟模型做预标注。但有预标注的话,标注员可能会放松审核,因此需建立体系管控外部标注团队的质量。

 

算法模型有工程代码,因此无法避免内存泄露、模型崩溃、缓存器溢出等问题。拿到数据后通过静态和动态扫描,可避免后期才发现前期的问题而返工,造成资源的浪费。此外,对复杂代码进行降维,如果代码的圈复杂度高或模型性能衰退严重立即反馈。

 

模型方面,我们做了自动训练、历时估算、一致性对比。自动训练指自动化调参、拟合,也可以是半自动的,即通过配置预设参数,每一参数后接一个自动化评测的脚本,通过选举法选取 PR 值最大的模型。历时估算即用内部 Kubernetes 容器调度的一个集群,通过每个模型的复杂度、数据质量预测当前训练任务的结束时间,减少排队和碎片化的情况。此外,模型归一化后输出的指标和线上经过工程处理后的指标存在一致性问题,需要权衡性能和效果。

 

在产品方面,我们做了 A/B 实验、在线评估和埋点反馈。

 

A/B 实验即并行上线两版模型,定期回捞数据,根据用户反馈,或标注后的真实情况,选择更好的模型;在线评估即通过前文中方案筛选 Badcase,秒级评估且反馈模型的表现情况;埋点反馈即通过埋点,判断模型实际预测结果和最初标注的数据是否吻合。

 

以上机制保证了微服务和产品在客户端上的体验。

 

外部链接

通过专利号:TAL202000729、TAL202100901、TAL202000769 即可查询本次分享的更多技术细节。

 

嘉宾介绍

赵明,好未来 AI 中台质量与工程效率负责人,毕业于清华大学软件学院,具有 10 余年项目实战与管理经验,曾就职于 IBM、FreeWheel 等知名外企,从事产品质量自动化与工程效率工具链研发、测试与管理工作。现就职于好未来教育集团任 AI 中台质量与工程效率负责人,带领 50 人团队负责人工智能产品质量保障,AI 与工程效率平台研发等工作。

 

带领团队自主研发算法指标评测平台、自动化探测平台、数据清洗与增强平台、算法 API 测试自动化平台等。


活动推荐

我们在 ArchSummit 全球架构师峰会中,邀请了腾讯杰出科学家、PGG 应用研究中心专家主任单瀛博士作为出品人,共同策划了【AICon全球人工智能与机器学习技术大会】专题,和国内 AI 技术专家合作,邀请 Google、阿里巴巴、腾讯、虾皮、华为等公司技术专家,分享最新的人工智能技术,尤其是知识图谱,知识计算等话题。


如果你感兴趣的话,扫描下图中的二维码即可获得更多信息。


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2022-04-06 11:383581

评论

发布
暂无评论
发现更多内容

前端安全性问题以及防御措施

甜点cc

前端 安全 学习笔记 10月月更

IP路由基础、路由器静态路由配置方法、自治系统、缺省路由的配置方法、路由选路规则、缺省路由、备份路由、等价路由、三种查询路由表命令

Python-派大星

10月月更

路由基础:三层交换机、单臂路由的特点以及配置特点、DHCP报文类型、DHCP工作原理、在路由器上配置DHCP、在交换机上配置DHCP、配置DNS服务器

Python-派大星

10月月更

为什么软件供应链攻击愈演愈烈?

SEAL安全

开源 开源软件 软件供应链安全 软件攻击

React源码分析8-状态更新的优先级机制

goClient1992

React

安全、可靠、合规,华为云守护企业网站安全

IT科技苏辞

JavaScript数组常用方法大全

CoderBin

JavaScript 面试 前端 数组 10月月更

vue项目启动失败,内存不足处理

甜点cc

JavaScript Vue V8 10月月更

第九期-模块三

wuli洋

云服务的智能堪称颠覆,华为云带来多种守护

IT科技苏辞

【一Go到底】第二十七天---数组注意事项及细节

指剑

Go 10月月更 goalgn

鸿蒙开发实例 | 为什么选择HarmonyOS?

TiAmo

华为 鸿蒙 10月月更

实现企业转型,华为云大数据实力领先

IT科技苏辞

广告内容定向分级,保护未成年人身心健康

HMS Core

广告sdk

零代码,让业务人员实现应用创造自由

华为云开发者联盟

云计算 后端 低代码 华为云 企业号十月 PK 榜

软件测试面试真题 | 测试流程大概是什么?

测试人

面试 软件测试 测试开发

线性表数据结构和使用数组实现顺序表

石柒

10月月更

假如面试官问你Babel的原理该怎么回答

loveX001

JavaScript

offset新探索:双管齐下,加速大数据量查询

华为云开发者联盟

数据库 后端 华为云 企业号十月 PK 榜

用户故事地图怎么用?实践才能出真知

敏捷开发

敏捷 敏捷开发 用户故事 用户故事地图

熬夜整理前端高频面试题(已拿offer)

loveX001

JavaScript

“程”风破浪的开发者|GoFrame 如何优雅的共享变量?

王中阳Go

Go golang 学习方法 10月月更 “程”风破浪的开发者

老生常谈React的diff算法原理-面试版

beifeng1996

React

OSPF基础(一):OSPF工作原理以及优点、OSPF的缺点、OSPF配置方法、DR与BDR的选举原理

Python-派大星

10月月更

Tapdata 创始人唐建法:以秒级响应速度,为企业提供实时数据服务 | 阿里云云原生加速器特别报道

阿里巴巴云原生

阿里云 云原生 Tapdata

华为云大数据,共建智能世界的数据底座

IT科技苏辞

聊聊机器如何“写“好广告文案?

百度Geek说

AIGC 企业号十月 PK 榜 广告创意

项目开发全流程梳理

甜点cc

团队管理 技术管理 敏捷研发 10月月更

问:React的setState为什么是异步的?

beifeng1996

React

前端一面高频react面试题(持续更新中)

beifeng1996

React

从React源码分析看useEffect

goClient1992

React

如何针对不同被测模型,自动化筛选 Badcase 呢?_AI&大模型_李慧文_InfoQ精选文章