共计 5363 个字符,预计需要花费 14 分钟才能阅读完成。
近日,QCon 寰球软件开发大会在广州举办。QCon 寰球软件开发大会是由极客邦科技旗下 InfoQ 中国主办的综合性技术盛会,大会举办至今,曾经有阿里巴巴、Google 等来自国内外头部出名科技公司数万名资深工程师进行过技术分享。深服气工程技术部 AI 研发平台负责人孟宾宾受邀加入大会,并在现场带来《数算工程一体化机器学习开发平台助力 AI 算法麻利开发》的主题演讲。本次演讲重点分享了深服气 AI 平台团队多年 AI 研发的实战经验。以下是他的演讲内容摘要。
机器学习平台建设背景介绍
深服气的 AI 技术次要是利用在网络安全和云计算两大业务中。在网络安全方面,AI 能力会利用在病毒文件检测和家族分类、Web 反抗攻打、威逼情报、数据分级分类等产品中。在云计算方面,像桌面云视频画面的加强、托管云平台故障智能预测和性能诊断与优化、边缘云的平安生产视频监控剖析等场景也会用到 AI。
针对不同的平安数据分析工作,并联合不同的模型部署场景,机器学习平台会波及到非常复杂的特色工程和 AI 算法工程化开发。
深服气 AI 算法研发的过程,能够形象成这样一个典型研发范式,业务上从网络安全和云计算两个维度来看,都会波及到对接海量业务数据,比如说网络流量、系统日志、各种歹意文件以及云平台的运维日志。两头要通过业务强相干的特征提取,或者基于主动编码器、Graph Embedding、Word2Vec 等技术主动的特征提取。最初思考基于云端、PC 端或者边缘计算设施端,高效地将算法部署运行起来。
深服气 AI 技术研发,次要面临数据、算法、算力这三大外围挑战。
第一个挑战是 AI 数据层面。 深服气 AI 研发面临首要问题是业务数据孤岛比拟多,不同的细分的业务,会有本人独立的数据存储系统。算法工程师想获取这些研发的数据,面临的妨碍会比拟大,获取研发数据的工夫长。其次,算法工程师取到的这些数据,因为要做精细化的特色工程,然而当初企业外部短少比拟高效地可能去治理这些两头特色以及一些高价值数据的撑持工具,导致它的数据很难被算法工程师二次应用以及被相关性比拟高的工作复用起来。
第二个挑战是 AI 算法层面。 首先体现在 AI 算法针对业务人员,有肯定的开发门槛,并且业余算法工程师的数量是无限的,这样就无奈扩充 AI 赋能业务的覆盖面。其次是从业务布局想法产生到 AI 算法原型产出,再到 AI 模型的最终上线,整体流程工夫比拟长,跟不上企业外部业务翻新倒退的速度。
第三个挑战是 AI 算力层面。 针对平安服务 SaaS 化趋势,算法工程师基于机器学习平台有海量的平安数据能够生产应用,如果提供分布式 CPU 和 GPU 算力治理能力,能够撑持分布式 AI 建模;针对新业务或者小规模试验场景,当初支流基于整张物理卡调配或者 GRID vGPU 形式动态调配都无奈实现资源的动静共享,使得高低廉的 GPU 算力利用率非常低。
数算工程一体机器学习平台设计方案
基于麻利开发理念,通过 DevOps、DataOps、ModelOps、ServiceOps 四个口头,来实现算法开发流程可自动化、AI 试验可重现以及 AI 模型可迭代。以后机器学习平台的重点是实现异构数据的对立治理、异构计算工作的对立调度、多样用户的对立赋能。
异构数据的对立治理 是指结构化数据和非结构化基于对立的对象存储服务和对立的元数据管理服务。
异构计算工作的对立调度 是指对数据分析型的特征提取工作和 AI 模型训练任务,针对这两个异构工作,实现一个任务调度和集群治理计划,同时实现异构计算框架之间的数据高效替换。
多样用户对立赋能 是指针对业余的算法工程师和业务人员能够对立应用这个机器平台开发 AI 能力。
深服气的机器学习平台共计分为五个形象层:
最底层是根底平台层。 基于公司的托管云和 EDS 服务,实现异构 AI 算力治理,高性能存储以及网络资源的对立调度和治理。
根底平台层下面是数据层。 数据层实现海量的结构化、非结构化数据的对立接入和存储服务以及这两类异构数据的元数据的对立治理,同时还实现两头研发数据管理。此外,还提供了基于元数据的数据集数据目录治理性能,不便工程师通过数据 schema 字段、平安产品类型 (AF、SIP、EDR 等)、日志类型(http、dns 等)、用户名等多维度实现 AI 研发数据的搜寻、详情查看服务。
数据层下面是框架层。 包含机器学习或大数据的一些典型计算 & 训练框架。再往下层是外围计算层,反对自动化机器学习、分布式训练、一键部署,灰度公布等等的机制,以及通过 AI Flow 进行模型的二次的开发、低代码开发等。
在框架层下面,会继续去积淀出一些典型场景或者业务中可能更宽泛应用的算法能力,最终实现 AI 能力的二次开发复用,比如说,网络安全畛域的网页篡改、病毒检测剖析等。
接下来介绍 AI 研发数据治理模块:
针对内部异构的数据,深服气提出了 AI Data Store,一种继承湖仓一体设计理念的多样性 AI 研发数据对立存储和生产的数据系统,实现了内部数据的对立接入和存储管理。比方数据库类的结构化数据、文件类的构造数据以及文件类的非结构化数据这三类数据,能够对立存储管理。
深服气开发了 data store SDK 工具或 CLI 命令行工具,基于 CLI 命令行,算法工程师就能够像提交代码一样或者代码治理的形式一样去治理本人的数据集,包含反对以 push 或 pull 的形式治理 AI 数据集。
同时也反对向海量的数据操作,即间接内存的形式读取分布式到计算节点,这种形式是能够防止通过 notebook 本地存储空间的限度,这样会更不便进行大数据或者分布式的计算。
对于 data store 的实现来说,深服气采纳数据抽象分层的设计方案,次要分为三层。
第一层也就是最底层的原始数据层 Raw Data Layer, 负责对海量的接入或上传的文件数据进行对立存储管理,算法工程师基于这一层原始数据进行数据荡涤以及做一些精细化的特征提取。
提取后的数据寄存在 Feature Data Layer,这一层的数据还能够进一步转换成用于训练的机器学习训练。
在离线 AI 算法训练的过程当中,就能够生产 ML DataSet Layer 的数据,实际上每一层的数据都能够被 AI 框架间接加载生产。
除了下面的离线生产场景,还有在线生产场景。能够间接从 Feature Data Layer 这一层实现在线生产。同时,会在 Raw Data Layer 加一个 Slidding Window,反对 Latest- K 形式的热数据生产应用,在线生产或者模型灰度测试的时候,能够实现这种绝对最新数据的接入,来实现算法的成果验证。
此外,还会通过对立元数据的治理来实现 AI 数据集 CRUD 操作。短少元数据管理的数据湖,实质就是一个数据沼泽,算法工程师或者 AI 研发人员没有方法高效应用海量数据,即便有海量的业务数据也难以高效率的价值变现。
针对结构化数据和非结构化数据,机器学习平台设计了一个对立的元数据层,反对用户自定义数据集的元数据,由其对于非结构化数据集的治理带来很大的不便,因为非结构化数据自身短少丰盛的元数据,天然也就无奈供算法工程师高效和灵便地对文件数据进行 CRUD 操作。
针对多样性 AI 工作导致异构计算引擎调度治理难的问题,深服气 AI 研发团队把 AI 计算引擎分为两大类,一类是大数据分析型的,次要用于数据荡涤、特征提取,比方 Spark,Flink;另一类是 AI 算法计算型的,次要用于 ML&DL 算法训练,甚至包含图剖析、计算框架 dgl、graphscope、以及强化学习 menger 等。
此外,深服气 AI 研发平台实现了异构计算框架的对立调度和数据的高效通信。
在泛 AI 畛域,大数据分析平台和 AI 计算平台始终存在两种对接形式:
一种是以大数据资产或特色解决等为核心的数据工程为主,其特点是:数据须要显式落盘存储,以此来实现数据复用、升高计算开销、数据 debug。
一种是以以 AI 计算性能(训练和推理)等为核心的算法工程为主,其特点是:数据不须要落盘存储,以此来实现减速特征提取与模型训练异构工作的数据传递(尤其在大规模、生产环境)、减速 CPU 和 GPU 之间的数据传递(尤其在大规模 DL 模型训练和推理环境)。
这两种异构工作的“分”与“合”,在不同的场景,有其存在的必要性,而深服气机器学习平台建设的指标就是基于一套任务调度框架,实现大数据分析工作和 AI 计算工作的对立治理。
深服气的解决形式是基于 Ray 实现异构数据分析和 AI 计算框架对立调度,防止多套调度引擎,同时基于 ML DataSet 能够实现框架之间的数据高效传输,无效解决异构分布式工作对接问题。
针对 GPU 训练数据,深服气通过对 dataloader 层面的优化,升高 GPU 训练任务自身的忙等工夫,端到端实现 GPU 训练任务的优化和减速。具体来说该平台通过两个维度来优化:
维度一:缩短分布式存储系统与分布式计算零碎之前的数据传输工夫; 因为机器学习平台是典型的计算和存储拆散架构, 导致 AI 研发数据拜访时延问题,业界做法是在开始模型训练之前:将训练数据复制到本地的磁盘存储中,如一般机械硬盘或者 NVMe、SSD 等高速存储设备;将数据提前复制到部署在计算节点上的分布式存储系统中,如 Ceph、GlusterFS。
这种额定的 AI 训练数据迁徙过程会面临如下问题:
(1)把训练数据复制到 AI 计算节点的形式低效且难以治理。手动复制容易出错。像基于 notebook 的 Local FS 的形式提供本地计算的手动数据拉去就更加会呈现此类数据迁徙治理问题;
(2)深度学习训练数量很大且可能继续减少,分布式 AI 计算节点配置的磁盘容量无限,极容易呈现无奈寄存全量训练数据的状况;
(3)将训练数据寄存在多个 GPU 计算节点上的分布式存储系统内,能够解决数据容量问题,但分布式存储系统本身的运维老本和难度都很大;并且存储系统与计算节点耦合,自身也会产生计算、网络、I/O 等本地资源的争抢和烦扰问题。
维度二:基于 GPU 减速和数据 pipeline 并行优化数据集预处理的工夫; 像计算机视觉类工作(钓鱼网页检测、桌面云视频帧超分优化、数据防泄密检测、边缘 AI 视频剖析等)的算法训练会波及大规模数据集的读取,这些工作都会存在数据集加载效率低导致 GPU 工作忙等,使得 GPU 利用率低问题。原生的 pytorch&tensorflow 框架的 data loader 是基于 CPU 实现数据的加载和数据的预处理,这势必会占用 worker 节点 CPU 大量的资源。而后将预处理之后的数据从 CPU 内存替换到 GPU 显存,这也会减少 IO 的开销,升高端到端训练工作流的整体效率。
因为 CV 类工作的大量操作,比方 Resize、Crop、Normlize 等都非常适合 GPU 并行减速,所以深服气抉择利用 DALI 将预处理工作迁徙到 GPU 计算,这样既升高了 CPU 负载,又进步了 GPU 的利用率。
针对 AI 训练任务而言,还有一个特点是数据并非一次性加载到内存或显存,而是以 batch 迭代的形式加载,这外面就存在 CPU 负责加载数据和 GPU 并行计算两个工作穿插进行的工作。因为这两个子工作的服务和计算特点差别很大,而如果仅以串行的形式执行这两个工作,势必会有一个工作大概率会呈现负载绝对低的景象。
通过将这两个子工作流水线化,能够实现两个子工作执行工夫的重叠,最终数据加载和算法训练都能够高负载执行,从端到端减速 AI 训练速度。
赋能 AI 研发实际成果
借助于低代码开发算法平台,能够使得各个角色之间高效合作。针对端到端的 AI 研发人员来讲,如果是工作比拟小,算法工程师能够单独实现这些工作。但当 AI 的工作业务变得比拟大的时候,数据特色的提取、模型的调参、算法的测试,包含集成到产品线、产品当中去,就能够利用该平台,实现多角色工作合作。
![]()
在数据规模层面,曾经实现反对 TB 级的异构数据的对立治理。在集群规模上,反对 10+CPU 节点。在研发效率上,大规模病毒文件特征提取工夫由 45 天缩短到 15 天。
孟宾宾认为,AI 的价值落地是围绕理论业务数据、产品零碎架构而深度联合和继续优化的 AI 系统工程。为了产品高性价比,企业须要联合 AI 硬件做深度的算法、软件、硬件协同优化;为了产品实时性体验,企业甚至要就义 AI 算法肯定精度,以减小提早或进步并发;为了维持产品成果,企业要设计简单的 AI 闭环零碎,通过 ML-Ops 实现算法的疾速迭代。
以下几点是围绕具体的 AI 工程化落地,深服气在机器学习平台层面能够摸索和继续打磨的方向:
在线(on-line learning)、无监督学习能够升高网络安全标注数据标注门槛、老本。
Al 应用门槛能够进一步升高,除了基于 AI Flow 算法模板和 Auto-ML,业界的新兴计划,如能够思考结余 MLSQL 进行 AI 平民化摸索。
通过模型漂移、数据漂移检测与继续学习 (continue learning),能够继续主动捕捉到平安 AI 模型的成果漂移问题,继续更新训练模型。
通过数据并行、模型并行、流水线并行的策略进行协同优化基于深度学习和海量数据的简单模型训练和推理,让业界更简单、成果更好的 AI 模型迁徙并利用到到公司的网络安全和云计算业务中。
以上就是对于《数算工程一体化机器学习开发平台助力 AI 算法麻利开发》的分享,关注“深服气科技”公众号,继续获取更多技术干货内容。