导航菜单
首页 >  » 正文

深信服的AI平台了解一下?看它如何助力AI算法敏捷开发

QCon全球软件开发大会在广州召开。QCon全球软件开发大会是由Geek Bang Technology旗下的InfoQ中国主办的综合性技术盛会,迄今为止,已有来自阿里巴巴、谷歌等国内外知名科技公司的数万名高级工程师分享技术。工程技术部人工智能研发平台负责人孟斌应邀出席会议,并作了题为“数字工程集成机器学习开发平台,支持人工智能算法的敏捷开发”的主题演讲。在这次演讲中,他分享了AI平台团队多年来的AI研发经验。以下是他的演讲摘要。

构建机器学习平台的背景解释深度说服人工智能技术主要应用于网络安全和云计算这两大业务。在网络安全方面,AI功能将应用于病毒文件检测和家族分类、反Web攻击、威胁情报和数据分层分类等产品。在云计算中,桌面云视频屏幕增强、托管云平台智能故障预测和性能诊断与优化、边缘云安全生产视频监控分析等场景也将使用AI。

为了将不同的安全数据分析任务与不同的模型部署场景结合起来,机器学习平台涉及高度复杂的特征工程和人工智能算法工程开发。人工智能算法的开发过程可以抽象为这样一个典型的研发范式,业务可以从网络安全和云计算两个维度来处理各种网络流量、系统日志、恶意文件等问题。它涉及到云平台运营和运营日志等大规模业务数据的对接。在中间,您需要与业务相关的强特征提取,或基于自动编码器、图形嵌入和Word2Vec等技术的自动特征提取。最后,我们将考虑基于云、PC或边缘计算设备有效地部署和运行算法。

人工智能技术的研发主要面临三大核心挑战:数据、算法和计算能力。第一个挑战是数据层面。我们坚信,人工智能研发面临的主要问题是业务数据孤岛众多,业务的不同部门都有自己的数据存储系统。如果算法工程师想要获取这些研发数据,障碍相对较大,获取研发数据需要时间。其次,算法工程师获取这些数据进行复杂的功能工程,但由于企业内部缺乏支持工具来更有效地管理这些中间功能和一些高价值数据,因此算法工程师将这些数据使用两次。它很难被重复用于高度相关的任务。第二个挑战是AI层面。首先,人工智能算法是针对业务人员的,有一定的发展门槛,专业算法工程师的数量有限,这意味着他们无法扩大人工智能驱动业务的覆盖范围。其次,从业务计划构思到AI算法原型输出,再到AI模型最终上线,整体流程时间相对较长,跟不上企业内部业务创新发展的速度。第三个挑战是AI的计算能力。为了应对安全服务SaaS的趋势,算法工程师在机器学习平台上消耗大量安全数据,只要提供分布式CPU和GPU计算能力管理功能,就可以支持分布式AI建模。在新的服务和小规模的实验场景中,基于整体物理卡分配和GRID vGPU静态分配的资源动态共享将不是主流,昂贵的GPU的计算能力利用率将非常低。计算工程集成机器学习平台的设计方案基于敏捷开发理念,通过DevOps、DataOps、ModelOps和ServiceOps四个动作实现算法开发流程的自动化、AI实验的可重复性和AI模型的迭代性。目前,机器学习平台的重点是实现异构数据的统一管理,异构计算任务的统一调度,统一授权不同用户。异构数据的统一治理是指基于结构化数据和非结构化集成的对象存储服务和统一元数据管理服务。异构计算任务的统一调度是指数据分析型的特征提取任务和AI模型训练任务,针对这两个异构任务,实现一个任务调度和集群管理方案。同时实现异构计算框架间的数据高效交换。多样化的用户集成授权意味着专业算法工程师和商务人士可以使用该机器平台开发AI功能。机器学习平台被划分为五个抽象层:底层是基本平台层。基于公司的托管云和EDS服务,它实现了异构AI计算能力管理、高性能存储以及网络资源的统一调度和管理。在底层平台层之上是数据层。数据层实现了对大量结构化和非结构化数据的统一访问和存储服务,以及对这两种异构数据元数据的统一管理,同时也实现了中间研发数据管理。它还提供了基于元数据的数据集的数据目录管理功能,使工程师能够在数据架构字段、安全产品类型(AF、SIP、EDR等)、日志类型(http、dns等)和用户名等多维搜索人工智能研发数据并查看详细信息。在数据层的顶部是框架层。典型的计算和培训框架,包括机器学习和大数据。更高的是核心计算层,它支持自动化机器学习、分布式培训、一键部署和灰度发布等机制,以及通过AI Flow进行模型二次开发、低代码开发等。在框架层,我们不断沉淀能够更广泛地应用的典型场景和业务中使用的算法功能,最终实现AI功能的二次开发和重用,如网络安全领域的网页篡改和病毒检测分析。接下来,我们将介绍AI研发数据治理模块。针对外部异构数据,AI数据存储是一个数据系统,用于统一存储和消费各种AI研发数据,继承了湖仓的集成设计理念,实现对外部数据的统一访问和存储管理。例如,三种类型的数据可以进行统一存储管理:数据库类结构化数据、文件类结构化数据和文件类非结构化数据。我们开发了Data Store SDK工具或CLI命令行工具。基于CLI命令行,算法工程师可以像提交代码和管理代码一样管理数据集。它还包括支持推送和拉动AI数据集。同时,它支持大数据操作,即通过直接内存对计算节点进行分布式读取,可以绕过笔记本本地存储空间的限制,使大数据和分布式计算更加便捷。对于数据存储的实现,我坚信采用数据抽象层次设计,主要分为三个层。第一层是最底层的原始数据层,对大量访问或上传的文件数据进行统一存储管理,算法工程师根据这一层的原始数据进行数据清洗和一些细化的特征提取。提取的数据存储在特征数据层中,该层中的数据进一步转换为机器学习训练并用于训练。在训练离线AI算法的过程中,可以消耗ML DataSet层数据,实际上每一层的数据都可以由AI框架直接加载和消耗。除了上面提到的线下消费场景,还有线上消费场景。可以直接从特征数据层实现在线消费。同时,在原始数据层中增加了一个滑动窗口,支持Latest-K模式下的热数据消耗,在线消耗或模型灰度测试,可以实现对这一相对最新的数据的访问,从而实现算法的效果验证。此外,通过集中管理元数据,实现AI数据集CRUD操作。没有元数据管理的数据湖本质上是一个数据沼泽,算法工程师和人工智能开发人员无法有效地使用大量数据,即使有大量业务数据,也很难有效地实现价值。对于结构化和非结构化数据,机器学习平台设计了统一的元数据层,支持用户定义数据集的元数据,为管理非结构化数据集带来了极大的便利。非结构化数据本身缺乏丰富的元数据,这使得算法工程师无法高效灵活地对文件数据执行CRUD操作。为了解决由不同AI任务引起的异构计算引擎调度管理困难的问题,AI研发团队将AI计算引擎分为两类:一种是大数据分析,主要用于数据清理和特征提取,如Spark,Flink等。另一种是AI算法计算型,主要用于训练ML&DL算法,包括图形分析、计算框架dgl、graphscope、强化学习mengers等。此外,人工智能研发平台为异构计算框架提供统一调度和高效数据通信。在泛AI领域,大数据分析平台和AI计算平台始终有两种对接方式。一种是数据工程,围绕大数据资产或特征处理,其特点是:为了实现数据的重用,减少计算开销和数据调试,需要明确的数据丢磁盘存储。一种是算法工程,围绕AI的计算性能(训练和推理),其特点是数据不需要磁盘存储,从而加快特征提取和模型训练的异构任务(特别是在大规模、生产环境中),以及CPU和GPU之间的数据传输(特别是在大规模DL模型训练和推理环境中)我们坚信,不同的场景需要对这两种异构任务进行“分割”和“整合”,而构建机器学习平台的目标是基于一套任务调度框架,实现大数据分析任务和人工智能计算任务的统一管理。