前段时间,有朋友问到企业级Data+AI平台技术选型和性能评估的问题,今天向大家介绍一下解决这个问题的工具之一:TPCx-AI。无论是用户企业,还是提供企业数据平台产品的厂商,都开始关注传统企业数据平台是否具备满足用户使用要求的人工智能能力。AI能力,已成为企业数据平台的标配。这种Data + AI的组合,呈现出高度多样化的特点,这导致了行业需要标准化的方法和工具,帮助用户科学地比较不同厂商的Data+AI产品和系统,以选择最适合自己的解决方案。人工智能评测基准的发展
大概从2018年开始,研究人员和从业者已经开始构建面向AI领域的基准测试。这些开创性的工作,包括了基准数据集、微基准测试、基准测试套件、组件级基准测试和应用级基准测试。基准数据集在机器学习研究中有着较长的历史。其中一些著名的例子包括ImageNet和WordNet,以及各种ML数据集合,如UCI机器学习库、OpenML等。这些数据集可用于评估ML算法的准确性,但只有数据集,并不能提供对企业人工智能应用场景的完整评估能力。一些基准测试方案使用了这些数据集,例如MLBench和MLPerf。微基准测试是对基本的深度学习计算进行基准测试,如矩阵乘法、全局归约或卷积。比如DeepBench和SLAB,这些评测方案可以深入了解基础机器学习计算的底层性能,但这些结果同样不能反映实际部署中端到端的性能体验。MLPerf 是相对完整的基准测试套件,它包括训练和服务任务的度量标准。不足的是,MLPerf不包括数据加载、预处理或后处理阶段的评测设计。截至目前,TPCx-AI是唯一一个完整的企业Data+AI平台的行业标准基准测试,可以覆盖应用级别的、端到端的、机器学习和人工智能全部典型工作负载。
企业级Data+AI平台的评测工具TPCx-AITransaction Processing Performance Council(TPC)是标准化评测的重要推动者,大家熟悉的数据库基准测试工具,比如TPC-H/TPC-DS,就是已经被广泛接受的成功实践。TPCx-AI是用于企业级Data+AI场景的、新的TPC Express性能测试基准,这也是业界第一个实现对端到端Data+AI解决方案进行标准化性能评测的行业基准。TPCx-AI提供了一个完整的软件套件,包括了数据生成器、驱动程序以及基于Python库和基于Apache Spark的完整工作负载实现代码。TPCx-AI起源于ADABench,2021年被TPC标准化。TPCx-AI的工作负载包括了10个企业Data+AI应用的典型用例,这些用例基于多样化的零售场景任务,涉及不同的数据类型和深度学习/机器学习模型,这些评测用例的设计,参考了麦肯锡公司的一项关于零售和其他垂直领域AI和ML技术潜在用例的研究论文。我们用表格总结了10个测试用例的数据表类型、预处理任务、模型训练和模型服务,以及评分测试等用例信息;用例编号名称 | 数据表 | 数据预处理 | AI模型训练 | AI模型服务 | 评分测试 |
---|
UC01 - 客户分群 | 客户、订单、订单详情、订单退货数据表 | 删除重复项和空值 | 使用k-means对客户进行聚类 | 使用聚类将新用户分配到组 | 检查结果的准确性 |
UC02 - 客户对话转录 | 音频数据表 | 加载音频数据并重新采样 | 计算MFCC并训练深度神经网络 | 在提供服务时预测转录,并计算单词错误率 | 比较生成的转录与基准数据的单词错误率 |
UC03 - 销售预测 | 订单、产品、订单详情、店铺部门数据表 | 加载数据表并连接 | 拟合Holt-Winters模型用于销售预测 | 在提供服务阶段预测销售额,检查结果的准确性 | 检查结果的准确性 |
UC04 - 垃圾邮件检测 | 产品评分文本数据表 | 加载评论并删除重复项 | 将文本转换为n-gram和向量,并训练朴素贝叶斯模型 | 对新评论进行分类为正常或垃圾邮件,使用马修斯相关系数评分 | 使用马修斯相关系数评分 |
UC05 - 价格预测 | 市场数据表 | 消除重复项和空值 | 在数据上训练模型以进行价格预测 | 在提供服务时预测物品价格,并使用均方根对数误差进行评分 | 使用均方根对数误差评分 |
UC06 - 硬件故障预测 | 故障日志数据表 | 执行重复项和空值移除 | 基于已知数据和故障训练支持向量机 | 预测即将发生的故障,并使用F分数进行评分 | 使用F分数进行评分 |
UC07 - 产品评分 | 产品评分数据表 | 加载并转换成数值格式 | 使用矩阵分解和交替最小二乘回归进行训练 | 针对用户-物品对预测和评分,使用平均绝对误差 | 使用平均绝对误差评分 |
UC08 - 购物出行分类 | 订单、订单详情、产品表 | 生成购物历史记录并对分类值进行二值化 | 使用梯度提升树基于活动购物会话预测购物出行类型 | 针对购物出行类型进行分类预测,计算分类准确度 | 计算分类准确度 |
UC09 - 人脸识别 | 客户表、人脸图像数据表 | 对名称进行编码、对图像进行对齐和调整大小 | 对客户图像进行微调的预训练嵌入和逻辑回归模型训练 | 识别客户图像并评估准确性 | 评估准确性 |
UC10 - 欺诈检测 | 财务账户表、财务交易表 | 拆分和清理数据表、对交易数据进行归一化 | 训练用于分类的逻辑回归模型 | 对交易进行分类并使用分类准确度进行评分 | 使用分类准确度进行评分 |
TPCx-AI提供了一个完整的工具包,这个工具包包含一个基于Parallel Data Generation Framework(PDGF)的合成数据生成器,一个管理基准完整执行的驱动程序,以及两个参考实现:一个基于Apache Spark,另一个基于Python库。TPC还可以通过审查和批准任何贡献者提交的评测实现,截止到2023年6月已经有14个正式的基准提交给了TPC。
评测基准中每一个测试用例基本都包括了Data+AI机器学习管道的完整过程,包括数据生成、数据管理、训练、评分和服务阶段。
完整的Data+AI基准测试运行包括多个测试子任务,其中一些需要计时,以下步骤按顺序执行:
TPCx-AI Express包括两个规模尺度的参考实现,一个用于单节点部署,另一个用于集群部署。数据生成器也可以根据“规模因子”,生成从GB级到TB级的测试数据,满足用户和厂商从单机系统到多节点集群等不同规模系统的评估测试要求。所有三个主要指标都需要在官方基准测试结果中报告。??????@??代表不同规模因子-SF下的Data+AI用例性能得分,这是不同阶段测试运行时间(秒数)几何平均值的综合指标。这样设计的目的是防止基准测试中某个子任务性能的改进对整体性能指标产生过大影响。ThinkMachine的观察
TPCx-AI Express只是符合其测试标准的快速技术实现方案之一,并不意味着被评测系统或产品必须跑通Express才是满足TPC要求的,实际上很多厂商的产品都需要修改代码才能跑通官方脚本。TPC允许厂商遵循评测规范编写自己的技术实现代码,当然,厂商在公开其TPCx-AI测试结果的同时,需要公开其自研版本的TPCx-AI测试代码,并向TPC申请官方审计验证,以获得TPC对测试结果的官方认可。
如TPCx-AI这样专业的标准化评测方案,实际是对真实世界人工智能应用场景的简化,评测结果不可避免存在片面性。在具体实践中,充分结合用户自身的使用场景和基础技术栈能力,客观、理性分析TPCx-AI的评测结果,对于做好Data+AI供应商和解决方案的技术选型、架构规划和项目评审无疑是有助益的。