如何评估深度学习模型效果?阿里工程师这么做

简介: 复杂的深度模型中,如果效果不好,是因为网络设计的欠缺?还是数据天然缺陷?是训练代码的bug?还是Tensorflow自身的问题?基于此,阿里工程师推出了DeepInsight深度学习质量平台,致力于解决当前模型调试和问题定位等一系列问题。

小叽导读:复杂的深度模型中,如果效果不好,是因为网络设计的欠缺?还是数据天然缺陷?是训练代码的bug?还是Tensorflow自身的问题?基于此,阿里工程师推出了DeepInsight深度学习质量平台,致力于解决当前模型调试和问题定位等一系列问题。接下来,阿里巴巴高级技术专家、DeepInsight深度学习质量平台技术负责人:孙凯(花名:路宸),带我们一起探索。

1. 背景

机器学习训练过程的调试、可视化以及训练效果的评估一直是业界难题。在数据较少,模型较简单,如LR、GBDT、SVM,超参不多的情况下,模型的可调性和可解释性都有一定保障,那么我们用简单的训练,再观察召回/精度/AUC等指标就可以应对。

而深度学习时代,模型的复杂性远远超乎想象,层层嵌套的网络结构,优化器和大量超参的选择,特征的连续化,一起构建了复杂的深度模型。如果效果不好,其原因是多样的,为了定位和解决这些问题,算法研发同学需要花费大量精力反复尝试,而且很可能得不到准确的答案。简单来说,网络模型近似于黑盒。

_


_

  1. DeepInsight

通过研究,我们发现训练和评估过程中大量中间指标与模型效果能产生关系,通过系统的分析建模张量、梯度、权重和更新量,能够对算法调优、问题定位起到辅助决策作用。而且,通过改进AUC算法,分析ROC、PR、预估分布等更多评估指标,能够更全面地评估模型效果。

通过2个多月的努力,我们推出了DeepInsight平台,致力于解决当前模型调试和问题定位等一系列问题。提交模型开始训练之后,用户可以通过DeepInsight平台,能一站式查看并分析训练过程,从训练中间指标到预测指标,再到性能数据,一应俱全。对于训练中明显的问题,平台也会高亮给予提示。未来,我们希望平台能更好地帮助用户发现和定位训练中的问题,并能给予适当提示(如更改某些子网络的最优化算法、更改学习率动量等),就如同GDB之于C++一样。

_


2.1 目标

沉淀并持久化训练数据。深度学习的数据非常宝贵,每次训练的网络拓扑、参数、训练中间过程、模型评估指标都会持久存储,方便后续人工分析和二次建模;

沉淀对模型训练的认识,提供分析调优手段,辅助决策,同时规避各类已知问题;

利用大数据分析建模,寻找中间过程指标的关系,更好地辅助决策,我们称这个目标为Model on Model,即利用新的模型来分析评估深度模型;

在大数据分析建模的基础上,尝试对已有模型进行深度强化学习(DRL),提高深度学习调试效率。

_


2.2 架构

系统主要分为四层:输入层、解析层、评估层、输出层;

同时包括五大组件:Tensorboard+可视化分析;TensorViewer日志展示对比;TensorDealer集成配置;TensorTracer数据透出;TensorDissection分析调优。

_


2.3 进展

2.3.1 高性能可视化组件TensorBoard+

Google的TensorBoard(简称为TB)是TensorFlow(简称为TF)的可视化组件,可以查看深度学习的网络结构、中间指标等。原生的TB是单机版命令行方式运行,无法多用户使用;易用性差,每次切换日志路径都需要kill掉当前进程;同时性能也很差,加载工业模型数据立即卡死;指标分层混乱,几千个指标全都罗列,无法查看;用法复杂功能较弱,不支持已展示图形的二次数据对比,不支持X轴浮点数据展示等。

因此,我们重构了TB的核心代码,支持GB级日志加载和数据分层,将整个服务改造成多用户版本,利用Docker灵活管理资源并自动回收。UI上支持了高亮自定义指标、分层展示、数据对比、日志上传等,具体如下:

支持在线更改TF日志路径:


_


支持图形数据在线聚合对比:

_


支持X轴浮点数值类型展示:

_


_


支持图形数据Hightlight分维度显示:

_


支持手动调整前端定时刷新时间,实时展示数据:

_


2.3.2 集成配置日志管理系统TensorViewer

TF的任务缺乏有效管理,用户无法按需查看和分析数据,更无法回顾历史数据。我们打通了TF与DeepInsight的通路,收集了所有任务的信息,用户可以查看每次训练的实时数据和所有历史数据,支持多任务对比分析;同时支持一键跳转到Tensorboard+,直接对当前日志数据进行可视化展示。

_


_


2.3.3 改进TensorFlow的可视化数据透出

我们定义了一套数据透出方式,可以把所有内部数据透出成统一的Summary格式,并被Tensorboard+处理。由于PS架构没有Master集中处理中间数据,再加上张量、梯度等指标的透出是极为消耗资源的,所以,如何透出数据是值得深入研究的。当前我们在Worker0上透出数据,能满足一般模型训练的要求,未来,会研究Snapshot数据透出方案,在大规模网络下也能取得较好效果。

当前,我们已经初步解析了Tensorflow透出的过程指标,正在这些海量指标上进行有监督和无监督的建模探索。

_


2.3.4 改进模型评估指标

Tensorflow自带的AUC计算方式分桶较少,计算精度有bug,在处理大量数据时性能不够,而且,仅仅能计算AUC,无法绘制ROC、PR等曲线。

我们改进了计算方式,引入更多桶,并提升计算效率,同时,绘制了更多新的指标。当前绘制的指标包括AUC、ROC、PR、波动率、正负样本分桶分布。通过观察正负样本的分布,我们发现Tensorflow异步计算的缺陷,导致某些桶的样本数量有误差,会带来AUC上极小波动,这个bug目前尚未解决。所有的预估指标都无缝接入DeepInsight平台。

_


2.3.5 研究模型训练中间指标

通过深入观察和建模大规模Embedding子网络的训练指标,我们发现权重(偏置)值的变化可以反应出相关网络结构是否被有效训练。权重(偏置)值变化微弱的区域即为训练的“盲区”—该部分网络没有被训练起来。通过观察权重(偏置)的梯度,可以帮助我们诊断梯度弥散或梯度爆炸等问题,分析了解训练该部分网络的难易程度,有针对性地调整优化器以及学习率等设置。通过全面考察整个网络各部分的激活以及梯度,可以帮助我们深入了解整个网络前后向多路信息相互耦合、协同传导的复杂机制,从而更有效地进行模型结构的设计调优。

对中间指标的研究会沉淀回流到DeepInsight,在训练指标产出后,对用户给予提示,做到辅助决策的作用。

_

原文发布时间为:2018-09-26
本文作者:孙凯
本文来自云栖社区合作伙伴“ 阿里技术”,了解相关信息可以关注“ 阿里技术”。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
数据采集 供应链 监控
RPA助力企业管理,十大高频场景
rpa在财务、人力资源、客服、供应链管理、市场推广、质量管理、项目管理、数据分析、合规管理和业务流程优化等场景中的应用
|
2月前
|
人工智能 自然语言处理 API
LangChain+LangGraph架构拆解:基于复杂AI任务编排与状态管理的大模型应用开发21.4
本文深度解析LangChain与LangGraph两大主流大模型开发框架:LangChain以链式组件封装实现快速入门与轻量应用;LangGraph则通过有向状态图支持分支、循环、多智能体等复杂编排。二者互补协同,构成从Demo到生产级AI应用的完整技术栈。
252 2
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
AI检测技术:如何识别机器生成的“数字指纹”?
AI检测技术:如何识别机器生成的“数字指纹”?
759 115
|
4月前
|
Web App开发 人工智能 Cloud Native
一人买多用不完,多人分享被封号——"Key池化"破解 AI 订阅共享困局
Claude用户面临“独用浪费、共享封号”困局:Max 20x额度闲置,多人拼车却因IP跳变、指纹泄露等触发风控。Key池化方案通过本地代理+虚拟Key分发,实现额度共享而不共号,规避风控,降低成本(3人仅$200/月),提升安全与体验。
1124 7
|
5月前
|
安全 网络协议 网络安全
终端网络访问控制的技术演进与工程实践:从边界防御到内核级微分段
本文探讨网络边界消融背景下终端级微分段技术,提出基于策略域的“策略随行”管控范式,融合内核层(WFP/eBPF)过滤、IP/端口级精细控制、应用级QoS调度及零信任动态授权,实现东西向流量隔离与纵深防御,助力企业安全架构向零信任演进。(239字)
|
7月前
|
Linux 网络安全 API
OpenClaw 阿里云+本地系统部署保姆级图文步骤+千问/Coding Plan配置+Skill体系与实战场景分享
OpenClaw(内部代号Clawdbot)作为2026年主流的本地AI助手平台,核心价值在于通过**技能体系**实现任务自动化、流程串联与跨场景协作。很多用户虽然完成基础部署,但因技能选择混乱、模型配置错误、运行环境不稳定,导致效率不升反降。本文基于稳定实践,完整覆盖**阿里云轻量服务器部署、本地macOS/Linux/Windows11部署、阿里云千问大模型接入、免费Coding Plan模型配置、官方推荐10类核心技能、5类高频实战场景**,并附带可直接复制的命令与常见问题解决方案,实现从环境搭建到高效落地的全流程闭环。
523 8
|
Python
飞桨x昇腾生态适配方案:15_loop算子缺失(下):for循环替换loop
本章节基于上一内容,将ONNX模型拆分为loop算子部分与非loop算子部分,分别转换为OM模型。通过使用for循环替换loop算子的计算逻辑,构造子图执行流程,并编写OM模型推理脚本进行验证。同时,编写ONNX模型推理脚本对比两者推理结果,确保一致性。实验结果表明,拆分后的OM模型与原始ONNX模型推理结果一致,证明方案可行。
660 27
|
机器学习/深度学习 存储 人工智能
开年首场智算沙龙!龙蜥X SGLang邀你共探软硬件协同“最后一公里”,欢迎报名
欢迎大家报名参加,为大模型效能提升与自主算力平台落地提供创新思路。
|
11月前
|
人工智能 运维 Cloud Native
【提示词工程】从战略到执行的断层怎么填?AI辅助OKR制定实战指南
针对技术团队"瞎忙不增长"的痛点,解析OKR在战略对齐中的核心价值。提供一套经过验证的AI指令,帮助管理者将模糊愿景拆解为可量化、有挑战的关键结果,实现从"任务导向"到"价值导向"的转型。
901 10
|
存储 算法 定位技术
软考中级软件设计师专项-操作系统篇
专为软考打造的操作系统终极攻略,涵盖进程管理、死锁、存储系统等核心考点,结合20+真题与答题模板,助你高效掌握命题规律,提升应试能力。
717 1
软考中级软件设计师专项-操作系统篇