腾讯自研搭建了业界一流的太极机器学习平台,致力于让用户更加聚焦业务AI问题解决和应用,一站式的解决算法工程师在AI应用过程中特征处理,模型训练,模型服务等工程问题。结合对用户的习惯理解和功能沉淀,太极在产品层提供数据/特征工程,模型训练,模型服务三块。闭环了用户离线训练到在线服务的应用,包含了不同场景下的数据访问诉求,不同训练模型的诉求,在线服务可靠性的诉求。算法框架&组件层提供了机器学习、深度学习核心组件。可支持10TB级模型训练、TB级模型推理和分钟级模型发布上线,扩展集群规模则可支持更大的模型训练和推理,为实际业务提供大模型的情况下,同时具有很高的性能,达到行业领先水平。
太极机器学习平台采用了分布式参数服务器架构,这是业界第一梯队企业们公认的最佳选择。这种架构的特点是,存储模型参数和执行模型计算,这两种任务在分别的服务器上运行,增加更多服务器就可以支持更大、计算需求更高的模型。太极机器学习平台中的参数服务器系统AngelPS也是腾讯自研的成果,现在不仅可以承载10TB级模型的训练,对多维特征融合、复杂模型结构等更高级、更前瞻性的功能也有优秀支持。同时太极机器学习平台还具备超大模型在线推理服务的能力。推理计算方面,不仅支持常规的CPU计算,还支持复杂模型的GPU计算加速;存储上,根据在线推理模型大小,自适应选择小模型本地内存加载和大模型AngelPS远程查询的部署策略;在线服务运营上,平台具备多级容灾能力,脏模型秒级回滚能力,以及完备的系统和业务运行实时指标监控和报警系统。
“太极”八年进化之路:
●2015年,太极机器学习平台1.0诞生,是腾讯首个涵盖“数据导入-特征工程-模型训练—在线服务“全流程的一站式机器学习平台。
●2018年,太极平台深度学习训练加速上线,提供简洁的任务化体验,聚焦训练及训练加速。
●2019年,太极平台联合腾讯云,打造了三环境(内网/公有云/私有云)统一的“TI-ONE机器学习平台”,将机器学习平台能力输出给公网和私有云用户,太极平台服务腾讯内部业务。
2015年Google的一篇论文"HiddenTechnicalDebtinMachineLearningSystems"中,首次提出机器学习生产化带来的挑战,机器学习模型在经过持续的训练交付,会逐渐积累技术债,使得模型迭代越来越慢,最终大量的人力物力消耗在系统建设而非模型本身。为解决这个问题,业内各公司开始谈及工业生产中机器学习生命周期集成化管理的必要性,之后各大公司都开始尝试建立MLOps系统,商业化、开源产品也丰富起来。
●统一平台服务:25个系统统一到太极,60+步骤降低到7步内;
●大模型上线提效:千亿参数大模型在召回/粗排/精排全面上线;
●特征模型血缘透视:支持各类预估模型,从特征入样本到模型训练、评估、上线的全链路资源消耗、训练速度大盘透视。
●模型的全生命周期管理,管理特征数据、模型代码、模型训练环境,需要建立安全保障流程来开发、打包和部署模型。
●降低模型开发门槛,面向不同的模型预估类型和业务场景,提供全功能的AI在线编码平台,降低模型开发门槛;
●模型评估与实验,支持面向在线训练和离线训练的各项标准化评估指标,打通线上流量的A/B实验系统;
●AIpipeline各阶段可观测性,平台对特征入库、模型训练、线上推理提供性能、效果监控报告,确保信息数据透明。
●资源管理与模型治理,系统化管理训练、存储资源,对模型的上下线等请求提供完整监控记录和回溯能力,保障模型质量。
平台初期的挑战
●链路复杂成本高:特征从评估到实验,涉及系统和流程多,效率低,涉及多个子系统串联,切换成本过高;
●特征评估需经历入库,注册后才能评估,周期长、效率低;
●各阶段任务信息黑盒:缺失任务透视看板,任务运行情况,资源quota分配缺少规范;
●审批多周期长:完成一次特征入模型实验需要经过18次审批,自动化审批程度还不够,审批效率不能满足现有实验要求;
●监控不完整:缺失数据监控缺位,不利于快速定位数据、模型的问题原因。
●平台能力范围清晰明确,支持特征入样本,模型训练,模型服务上线三个主要环节;
●上下游合作系统边界透明,上游对接特征数据生产,下游打通A/B实验系统;
●核心产品能力
○特征开发、模型训练、推理全流程产品化
○模型全生命周期高效管理
○算力高优资源调度优化
○全链路血缘大盘透视
●跨团队协调:各自为政的团队妨碍工作流的协调和协作;
●标准的可重复过程:如果没有自动且可重复的过程,那么算法同学每次训练并部署新模型时,都必须“重造轮子”,白费力气;
我们构建了平台的四大核心模块来承载模型全链路研发:
●搭建在线训练模型仓库,自动化模型准出一致性验证,模型服务实时秒级更新,在线模型推理安全保障的“模型推理”模块;
●通过“工作空间”来提供跨团队协同共建的定制产品能力
●为离线、实时特征自动调度例行化特征入库任务,版本化管理特征和在线serving数据更新;
●特征从注册开始,平台全链路监控,保证特征数据在离线一致性
●打通下游模型训练,为每个入模型的特征例行化评估特征重要性,量化每个特征为大盘带来的GMV提升。
特征的安全生产和质量管控是平台必须保障的,我们的模型算法同学在日常工作中,当遇到特征断流、特征停止更新,特征加工方式变更等问题时,平台需要及时地介入处理,比如特征生产方能及时提醒与周知下游消费方,特征的生命周期管理可以规范起来。
●特征全生命周期追溯,确保特征上线后不会被误下线;
●特征在维护阶段中可以查看下游模型训练推理阶段的消费详情,确保特征复用率
●特征在断流、覆盖率或特征值发生变更的场景下,可通知特征生产方及时维护更新,通知下游模型消费方特征断流状态变更,以便及时做出调整
●特征断流恢复正常后提醒生产方和消费方,负责人可关联新的升级版特征组并周知消费方。
模型训练需要为用户提供深度学习模型的开发、模型网络结构的调试、在线训练任务的配置、提交管理能力。为此,我们配合支持千亿参数的大模型训练框架,设计了一套可视化的DAG产品页面,来编排大模型训练任务,将大规模PS的在线训练任务抽象成三个可视化组件编排,以极简的产品形态调度和管理模型训练任务,方便用户快速搭建和监控自己的大模型训练。
我们为用户提供云原生的在线编码IDE,提供原生TFAPI,打通生产实时样本数据流,可以本地开发模型,采样样本数据调试模型,并将开发好的模型一键提交到在线训练集群,通过大规模实时训练数据训练更新模型,为高阶的算法开发者提供灵活的模型开发能力。
首先,我们对每个训练任务的模型做好版本化的管理和模型服务部署的模型校验准出服务。每一个模型,除了训练时的评估指标符合预期,还会在部署上线前,平台自动化发起特征抽取算子一致性校验和沙箱单机服务性能、效果验证的模型准出校验,在平台检测指标通过后,自动部署服务进入A/B实验流程,保障模型服务的线上变更安全性。
为了提升模型A/B实验的效率,太极平台结合各类模型预估类型的差异,设计了一套实验申请,放量的标准化流程,面向所有模型实验的同学,在太极上搭建实验放量、信息透视等全链路产品能力:
●通过产品化A/B实验流程,提升实验放量效率和规范性,将实验从申请启动实验-实验审核-合并特性-实验放量-效果查看-整体主链路产品化。
●将实验过程的所有信息标准化、透明化,支持好溯源、宏观监控分析等应用。通过将实验放量模板化和标准化,清晰记录和呈现每一个实验,清晰溯源的同时,也可以结构化查询到每个特性实验的实验逻辑。
跨团队协作,大模型开放共建
为解决跨团队协作,支持大模型开放共建,我们在平台设计了“工作空间”的概念,通过工作空间来区分业务属性,针对不同的业务,提供差异化的产品能力,比如粗排、精排不同的线上主力样本流、主力模型流配置模板,CPU/GPU推理服务部署工具等:
●空间内发起任务配置,均默认匹配当前空间流量位和模型预估类型
我们从平台的角度,实现了一套搭建在K8S、YANR之上的二级AI工作流调度引擎:
●区分任务属性,自动为探索的离线任务分配低成本的混部资源,为高优实验、生产在线学习任务分配稳定的在线资源;
●构建全局任务画像,实现HBO优化器,动态推荐和调整用户提交的训练任务规格,提高单任务的资源利用率;
●从框架和调度层面保障因为机器故障、网络抖动的任务failover能力;
●提供了全局的自动任务削峰填谷的潮汐调度能力,业务无感知的享受到训练任务的动态腾挪带来的成本节约。
随着太极标准化特征入模型的全流程,一次新增特征的探索实验,会经过几个关键卡点,包括特征导入在线KV的存储资源、模型训练资源和线上推理资源的申请和等待,以及模型训练的评估指标是否符合预期、是否可以进一步增量训练或者上线实验。
●从各环节资源申请、分配方面,我们将核心的资源申请、审理环节剥离出来,建立先使用后审计的自动化免审机制,确保我们的用户可以随时提交自己的特征、训练任务,并在平台层面自动审计资源使用的合理性,从资源利用率和业务ROI的角度减少资源的浪费。
在太极一站式的三类用户群中,针对数据科学分析用户群的看清看透需求,是一站式元数据产品化的核心目标。过去因为缺乏统一的完整的特征到模型映射关系,导致无用特征下线、特征一致性校验时需要很高人力成本,且易出错,因此我们需要一套完整的、自动化的元信息管理,提高准确性和系统效率。
●数据积累:统一各阶段(特征注册、模块训练、模型上线)的入口,积累基础信息数据
●血缘构建:特征、模型、服务、实验等各个关键要素之间的映射关系数据的沉淀,API开放,并提供查询分析的产品。
未来展望:向智能化演进
接下来,我们将进一步深化关键节点的提效,引入更多的智能化技术,帮助我们的算法同学减少人工重复劳动,解放生产力将聪明智慧用到刀刃上。
提升特征探索效率
管好特征:建设特征库,实现特征精细化分析挖掘能力
用好特征:建设自动特征工程能力,实现自动特征评估,自动特征集合选择和自动特征交叉能力,提高特征入模型效率。
管好模型:建设模型库,降低模型开放共建门槛,实现模型共享复用
用好模型:建设AutoML模型自动优化能力,提高模型开发效率