分析挖掘平台助力数据价值利用

发布时间:2018-03-08 作者:洪科(中兴通讯) 阅读量:

  随着大数据的兴起,分析挖掘在各种架构设计图的位置日益突显。但现实是,人人都说分析挖掘很重要,但除了金融、保险等少数几个领域,其他领域很少有具体的落地应用。原因有很多,其中缺少一款实用、能与多种业务场景契合的分析挖掘工具或平台是一个重要的原因。

分析挖掘平台定位

  分析挖掘工具的定位是什么,应该提供什么样的功能?不同的回答,影响到最终客户使用工具的方式,同时对分析挖掘工具本身的设计、研发思路影响巨大。为了更好地回答这个问题,可换个角度思考:如果没有分析挖掘工具,涉及到有分析算法的应用是如何开发的?一种典型的架构图可能是图1这样的。


  如图1所示,硬件设施、操作系统,一般情况下按客户指定要求配置;计算框架虽然有一定的选择权,但限制较大,一般要遵守不同领域上游应用开发商的传统习惯;一旦确定了计算框架,基本确定了可用公共算法库(譬如:Spark之上的MLLIB、Python之上的scikit-learn)和自研算法可用的API函数;业务分析逻辑的研发是一个反复探索迭代的过程,如果有一个实用的分析挖掘工具参与这个过程,可大大提高研发效率;再往上就是将分析逻辑模块与其他模块进行整合,完成产品的过程。

  至此,如果不考虑分析师的技术能力、不同场景可复制性等因素,分析挖掘工具似乎可有可无,这种观点在分析场景不是很多的情况下,是可接受的。

  但是要从多方面考虑问题。一方面,模型探索是一个反复迭代的过程,这一点与技术能力无关,即使数据分析师对业务很熟悉,也不能保证一次编码就达到良好的分析效果。所以通过编写代码方式完成业务分析逻辑是一种低效的工作方式。另一方面,同样的分析逻辑模块,大部分业务场景,是需要部署到多个不同的软硬件设施之上。不同场景提供的计算框架存在差别(即使是同一套框架,版本不同,API也有可能不同),同样的业务逻辑代码需要重复实现多次,这是一种研发资源的浪费。

  分析挖掘平台正是解决上述问题的工具,其价值在于:降低分析类应用的技术门槛,让数据分析师专注于业务分析,聚焦于为客户带来价值。为了完成这个目标,结合前面的分析,分析挖掘工具需要具备的基本要素有:

  ●    易用性,以零编码为目标,业务分析师不需要编写代码就可完成业务模型的探索;

  ●     开放性,为高级用户提供定制领域算法的能力;

  ●     移植性,同一套分析流程,可快速部署多个环境中;

  ●    易集成,可与不同的模块、业务系统进行融合,输出完整的应用;

  ●     易部署,系统可运行在不同软硬件、计算框架中;

  ●    易扩展,底层基础计算技术发展迅速,日新月异,架构上需支持异构计算。

中兴通讯分析挖掘工具AI Explorer

  分析挖掘工具的设计,如果不重视易用性,其存在的价值就会大大降低。分析挖掘工具使用人员主要是数据分析师,他们的强项是业务知识,对不同算法适应的场景也有心得;在编码方面,大部分数据分析师并不擅长,在实际应用中,也较少关注与系统部署相关的限制。简单一句话,业务分析师不关心 “具体如何做、谁来做的”问题,他们关心的是分析挖掘工具能提供什么样的功能、带来什么样的工作便利性,同时不能设置过多的技术方面的前提条件。

  基于以上思考,为了满足数据分析师易用性和系统架构设计等两方面的需求,中兴通讯推出的一款全新的分析挖掘工具AI Explorer,可满足不同场景下、模型探索和模型部署不同方面的需求。AI Explorer提出了驱动层的概念,这与计算机显卡驱动程序的作用类似:屏蔽不同厂家硬件的区别,通过操作系统对应用层开发者提供统一的图形API接口。在AI Explorer架构里,驱动层的作用屏蔽不同计算框架之间的技术差别,提供稳定的算子功能集。

 

  AI Explorer由三层架构组成,其中用户层和驱动层是AI Explorer自身提供的功能,AI Explorer在计算层默认提供一个单节点的计算框架,如图2所示。


用户层

  在用户层,采取了流程设计与执行分开的设计架构(见图3)。数据分析师在可视化界面,根据业务目标,将不同用途的算子进行编排,输出一个完整的分析流程。元数据在不同的算子之间变化、流动,通过静态检查器实时的进行合法性检测。合法性检测包括两部分:算子自身参数和算子之间的逻辑关系。整个检测过程根据上下文的环境不同,动态显示提醒信息,引导客户完成流程编排工作。


  AI Explorer采取上述设计,主要考虑到大部分算子的执行属于CPU计算密集型的任务,特别在计算层是大数据Hadoop集群场景下。在设计流程时,如果用户界面不能及时地为数据分析师的操作提供反馈,那么可能有些算子到了运行期才会发现错误,这将大大降低用户建模的效率。元数据相对是静态的信息,某些合法性检测,需要根据数据的内容进行判断,所以引入动态检查器模块,如SQL和Python语法的检测。动态检查器主要与AI Explorer提供的高级功能有关。

驱动层

  驱动层是AI Explorer的核心,是整个系统中承上启下的组件(见图4)。


  驱动层提供的主要功能有:

  ●   为用户层提供元数据信息。如接入的计算框架实例个数、数据表、字段等信息。

  ●   生成执行计划。用户层输出的流程图可能存在多个分支、循环、分支依赖等关联关系,另一方面,分析师在探索模型过程中,可能需要单步、区间、全量等不同的流程执行方式。上述过程中,不同分支的执行顺序、依赖关系、并发执行等运行策略就是由驱动层分析控制的。

  ●    算子的解析和适配。用户层传递过来的算子只是描述信息(算子名称、参数等信息),驱动层结合上下文、数据存储方式、计算层可提供的能力,动态解析成与环境相关的API操作。

  ●    参数寻优。数据挖掘中,算法调参是个大难题。算子智能模块,通过取样、遗传算法、退火算法等技术手段,帮助数据分析师自动快速缩小参数范围或寻找到次优的参数组合。另一场景下,同样的一套分析流程,基于不同的现场,都有各自的数据分布特点,为了达到更好的分析效果,需要对已发布流程中的算子参数根据实际情况进行微调,而现场工程实施人员一般缺少相关技能,参数自动寻优功能可弥补此方面的不足。

  ●    对外提供HTTP Rest API接口,其他业务系统可通此类接口进行系统间的融合和交互。

计算层

  计算层主要为第三方平台,当前AI Explorer可接入中兴通讯的大数据平台DAP、ADMA系统、中兴通讯ZAIP深度学习平台;同时支持Hadoop标准发布版本、Python 2.X、Python 3.X等框架。在驱动层加上不同的适配模块可对接不同的计算平台。

AI Explorer主要特性

  ●   零编码、可视化建模:简单,方便使用,降低使用门槛。

  ●   灵活部署:将可视化建模能力与底层计算平台进行解耦;支持单机、集群;支持同样框架的不同版本;执行引擎可脱离可视化建模单独部署。

  ●    支持异构计算框架:提供深度学习建模能力,将GPU的计算能力引入到机器学习领域;支持在一个流程中使用不同计算架构的算子,适应性强。

  ●   扩展性:提供JAVA、SCALA、Python等语言的二次接口,不同的用户可根据自己的技术特点,选取一种适合自己的语言将已有的算法实现包括成规范化的算子,并可与其他人员共享成果。

  ●    移植性/开放性:使用AI Explorer 编排输出的流程,可部署到不同的计算框架版本中; 提供丰富的HTTP Rest API接口,方便与其他业务系统进行互动,形成信息流的闭环。

应用案例

  AI Explorer在电信领域的应用,如无线基站天线的调优,通过业务系统采集原始数据、结合当前天线参数进行分析、得到优化后参数,然后通过网管系统自动下发到基站,形成一完整改进网络质量的价值闭环。AI Explorer同时也可以作为现有业务系统的补充,譬如,在告警根源分析上,机器学习与规则引擎系统配合,可以协助运维人员更加快速的定位原始告警系统,提高快速定位问题的能力。