分层测试在AI系统测试中的实践(1)

分层测试在AI系统测试中的实践(1)

首页休闲益智云端之约完整测试版更新时间:2024-06-07
写在前面

本人2017年加入国内新能源车龙头,负责车载语音对话系统的测试工作,和团队构建起一套适合业务迭代的测试方法。最近有些*把这个过程中的心得体验分享给有缘人。

说一个前提,也是一个经典解释:测试工作就是质量和成本博弈的结果,所有任何测试都需要考虑性价比。

有一个限制,不清楚会不会涉及到信息泄漏,不能绘制流程图和系统架构图,望各位理解。

系统组成

我了解的车载对话系统通用的解决方案为车机端的服务和APP族(包括语音识别服务,ASR下同),车机操作系统,车机网关和车联网云端网关,云端对话系统,自然语言理解(NLU,下同)模型,运营系统,大数据服务,其他垂直类应用服务(例如负责地图和导航GIS、媒体搜索)等。

/*

下面是插入的内容

规则:可以简单认为是正则匹配,例如“(|查询)*天气”可以匹配到“查询北京天气”“查询天津天气”“哈尔滨天气”等。但随着功能越来越多,规则会更加复杂,也可能产生规则之间的冲突。

模型的产生流程为:

  1. 需求分析
  2. 模型体系设计
  3. 收集数据(语料)
  4. 标注,审核
  5. 迭代2~4,理论上迭代越久有效数据量越大,后续生成模型效果越好
  6. 使用标注好的数据,通过机器学习,训练模型
  7. 系统集成
  8. 测试
  9. 通过验收上线

可以看到,模型的迭代周期从逻辑上就很长,但是由于模型可以完成类似“收集1w数据,对10w乃至更多同类型但不同的输入能达到99%的准确率”的效果,性价比还是比配置规则高。所以大家都会优先考虑用模型代替规则。

*/

对话系统作为AI类复杂系统,各模块迭代频率不尽相同,对测试的要求也不尽相同。下面就从两个维度进行以下简单的分析。

测试分类

一般性工程类测试关注功能实现和性能指标,可以认为解决“对不对”的问题。

NLU、ASR等算法类更关注的是效果指标,可以认为解决“好不好”的问题。对这个点举个例子方便理解

由于车载对话系统需要考虑网络和车机算力有限等问题,一般会将车机端算法模块做成云端算法的一个精简版,相对低频迭代,而云端支持随时上线新功能,更新频率相对更高。

各模块重点关注

根据系统构成和测试分类,我们可以推导出不同模块测试工作的侧重点。

  1. 云端服务:通过接口提供给前端APP及服务调用。云端工程类。
  2. NLU模型:向云端服务提供接口服务,一般分成多个,例如有功能类模型、话术分类模型、问答类模型、多轮对话模型等。云端算法类。
  3. 在线ASR服务:语音识别。云端算法类。
  4. 车机端App:负责对话调度和界面展现。终端工程类。
  5. 车机端ASR服务:包括唤醒和语音识别。主要是算法类。
  6. 对话系统整体:关注端到端的功能实现和效果等所有内容。

在我的意识里,云端可以约等于高频迭代。高频的迭代意味着开发更新频率高,测试频率也高。云端接口更稳定,对自动化测试维护成本较低、友好。而终端/前端工程,更容易受到设计、产品等项目角色的影响,自动化测试维护成本高,不易完美实现。

未完待续...

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved