网站首页做30个关键词,wordpress邮件内容,爱站网使用的是什么网站,注册网站费属于什么费用复杂的深度模型中#xff0c;如果效果不好#xff0c;是因为网络设计的欠缺#xff1f;还是数据天然缺陷#xff1f;是训练代码的bug#xff1f;还是Tensorflow自身的问题#xff1f;基于此#xff0c;阿里工程师推出了DeepInsight深度学习质量平台#xff0c;致力于解…复杂的深度模型中如果效果不好是因为网络设计的欠缺还是数据天然缺陷是训练代码的bug还是Tensorflow自身的问题基于此阿里工程师推出了DeepInsight深度学习质量平台致力于解决当前模型调试和问题定位等一系列问题。接下来阿里巴巴高级技术专家、DeepInsight深度学习质量平台技术负责人孙凯花名路宸带我们一起探索。
1. 背景
机器学习训练过程的调试、可视化以及训练效果的评估一直是业界难题。在数据较少模型较简单如LR、GBDT、SVM超参不多的情况下模型的可调性和可解释性都有一定保障那么我们用简单的训练再观察召回/精度/AUC等指标就可以应对。
而深度学习时代模型的复杂性远远超乎想象层层嵌套的网络结构优化器和大量超参的选择特征的连续化一起构建了复杂的深度模型。如果效果不好其原因是多样的为了定位和解决这些问题算法研发同学需要花费大量精力反复尝试而且很可能得不到准确的答案。简单来说网络模型近似于黑盒。 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在训练指标产出后对用户给予提示做到辅助决策的作用。 原文链接 本文为云栖社区原创内容未经允许不得转载。