社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

腾讯自研机器学习平台“太极”八年进化之路

DataFunTalk • 3 年前 • 564 次点击  

👆点击上方DataFunTalk关注公众号,并设为星标🌟,第一时间接收文章推送

来源|腾讯技术工程    作者|腾讯程序员


导读:腾讯自研搭建了业界一流的太极机器学习平台,致力于让用户更加聚焦业务 AI 问题解决和应用,一站式的解决算法工程师在 AI 应用过程中特征处理,模型训练,模型服务等工程问题。结合对用户的习惯理解和功能沉淀,太极在产品层提供数据/特征工程,模型训练,模型服务三块。闭环了用户离线训练到在线服务的应用,包含了不同场景下的数据访问诉求,不同训练模型的诉求,在线服务可靠性的诉求。算法框架&组件层提供了机器学习、深度学习核心组件。可支持 10TB 级模型训练、TB 级模型推理和分钟级模型发布上线,扩展集群规模则可支持更大的模型训练和推理,为实际业务提供大模型的情况下,同时具有很高的性能,达到行业领先水平。

太极机器学习平台采用了分布式参数服务器架构,这是业界第一梯队企业们公认的最佳选择。这种架构的特点是,存储模型参数和执行模型计算,这两种任务在分别的服务器上运行,增加更多服务器就可以支持更大、计算需求更高的模型。太极机器学习平台中的参数服务器系统 AngelPS 也是腾讯自研的成果,现在不仅可以承载 10TB 级模型的训练,对多维特征融合、复杂模型结构等更高级、更前瞻性的功能也有优秀支持。同时太极机器学习平台还具备超大模型在线推理服务的能力。推理计算方面,不仅支持常规的 CPU 计算,还支持复杂模型的 GPU 计算加速;存储上,根据在线推理模型大小,自适应选择小模型本地内存加载和大模型 AngelPS 远程查询的部署策略;在线服务运营上,平台具备多级容灾能力,脏模型秒级回滚能力,以及完备的系统和业务运行实时指标监控和报警系统。

“太极”八年进化之路:

● 2015 年,太极机器学习平台 1.0 诞生,是腾讯首个涵盖“数据导入-特征工程-模型训练—在线服务“全流程的一站式机器学习平台。

● 2018 年,太极平台深度学习训练加速上线,提供简洁的任务化体验,聚焦训练及训练加速。

● 2019 年,太极平台联合腾讯云,打造了三环境(内网/公有云/私有云)统一的“TI-ONE 机器学习平台”,将机器学习平台能力输出给公网和私有云用户,太极平台服务腾讯内部业务。

● 2020 年,基于 5 年多技术积累,内部共建,太极平台机器学习研发能力再度升级为统一的云原生架构,平台服务腾讯广告、游戏、信安、金融等多个核心 AI 业务场景。

● 2022 年,为了解决“广告模型迭代流程研发效率”问题,太极广告一站式平台上线,目标将广告模型迭代业务流程通过“上太极”产品化,为广告业务提供端到端的一站式模型研发体验。

01

太极平台在腾讯广告践行 MLOps

2015 年 Google 的一篇论文 "Hidden Technical Debt in Machine Learning Systems"中,首次提出机器学习生产化带来的挑战,机器学习模型在经过持续的训练交付,会逐渐积累技术债,使得模型迭代越来越慢,最终大量的人力物力消耗在系统建设而非模型本身。为解决这个问题,业内各公司开始谈及工业生产中机器学习生命周期集成化管理的必要性,之后各大公司都开始尝试建立 MLOps 系统,商业化、开源产品也丰富起来。

太极机器学习平台,作为端到端的 MLOps 平台,也在腾讯广告业务中,践行了 MLOps 的理念,通过系统工程的方法,建设了模型全生命周期管理产品能力,提供了从 AI 开发前期的特征样本处理直至 AI 开发中后期的模型开发、评估和部署功能,帮助业务更快地训练、实验、上线模型。

随着更多的团队协同共建广告大模型,训练一个广告推荐模型只是全链路生命周期中众多步骤的一个环节,太极广告一站式平台提供了端到端从特征入样本、特征抽取、模型训练、模型评估、模型部署上线、线上推理的全链路产品能力,为腾讯广告平台提供了高效易用的模型迭代产品服务,帮助各数据、算法团队快速探索验证,持续提升广告 GMV。

● 统一平台服务:25 个系统统一到太极,60+步骤降低到 7 步内;

● 大模型上线提效:千亿参数大模型在召回/粗排/精排全面上线;

● 特征探索提效:精排特征入模型迭代时间从 20 天->5 天,召回/粗排从 11 天->3.5 天;

● 特征模型血缘透视:支持各类预估模型,从特征入样本到模型训练、评估、上线的全链路资源消耗、训练速度大盘透视。

太极广告一站式的搭建和落地,也沉淀了一套完备的 MLOps 系统能力:

● 模型的全生命周期管理,管理特征数据、模型代码、模型训练环境,需要建立安全保障流程来开发、打包和部署模型。

● 降低模型开发门槛,面向不同的模型预估类型和业务场景,提供全功能的 AI 在线编码平台,降低模型开发门槛;

● 模型评估与实验,支持面向在线训练和离线训练的各项标准化评估指标,打通线上流量的 A/B 实验系统;

● AI pipeline 各阶段可观测性,平台对特征入库、模型训练、线上推理提供性能、效果监控报告,确保信息数据透明。

● 资源管理与模型治理,系统化管理训练、存储资源,对模型的上下线等请求提供完整监控记录和回溯能力,保障模型质量。

02

平台初期的挑战

广告大模型迭代链路是个在线学习闭环流程,有着特征数据量级大实时性高、模型训练参数规模大、线上模型推理链路性能、安全要求高等特点,随着过去多年的发展,已经沉淀了一整套能力完备,但交互复杂的子系统集合,因此也存在一些影响到模型迭代效率的问题:

● 链路复杂成本高:特征从评估到实验,涉及系统和流程多,效率低,涉及多个子系统串联,切换成本过高;

● 特征评估需经历入库,注册后才能评估,周期长、效率低;

● 各阶段任务信息黑盒缺失任务透视看板,任务运行情况,资源 quota 分配缺少规范;

● 审批多周期长完成一次特征入模型实验需要经过 18 次审批,自动化审批程度还不够,审批效率不能满足现有实验要求;

● 监控不完整:缺失数据监控缺位,不利于快速定位数据、模型的问题原因。

03

广告一站式产品化

为解决上述挑战,我们思考如何将广告模型迭代的流程整合成一个 AI 工程系统,太极设计规划了涵盖特征入模型的一体化产品方案,方案具备全局观和长期性:

● 平台能力范围清晰明确,支持特征入样本,模型训练,模型服务上线三个主要环节;

● 上下游合作系统边界透明,上游对接特征数据生产,下游打通 A/B 实验系统;

● 核心产品能

    a. 特征开发、模型训练、推理全流程产品化

    b. 模型全生命周期高效管理

    c. 算力高优资源调度优化

    d. 全链路血缘大盘透视


模型全生命周期高效管理

实现一个可以大规模的管理 AI 模型整个生命周期的工程系统是非常复杂的,尤其是广告平台涉及到召回、粗排、精排不同的模型类型,每种模型又有多种模型预估类型,太极需要为用户记录和管理特征数据、模型代码、模型训练环境,需要建立安全保障流程来开发、打包和部署模型,并可以监视各阶段任务性能,提供健壮地 failover 能力。大多数数据、算法团队在生产中也需要管理多个特征、模型,增加了复杂性。所有这些都带来挑战,我们在搭建一体化流程时,特别加强了这些能力,提供高效的模型全生命周期管理:

● 跨团队协调:各自为政的团队妨碍工作流的协调和协作;

● 标准的可重复过程:如果没有自动且可重复的过程,那么算法同学每次训练并部署新模型时,都必须“重造轮子”,白费力气;

● 资源需要大量时间和人力来管理各类存储、训练、推理的计算资源;

● 可审核性随着时间推移而保证模型满足法规标准和性能阈值是困难的。

我们构建了平台的四大核心模块来承载模型全链路研发:

●  为特征数据研发团队提供涵盖用户特征、广告特征、语义特征等全量离线、实时特征的注册、加工、入训练样本、在线 serving 的“特征管理”产品模块

● 在“模型训练”模块中,提供在线 IDE 做广告推荐大模型的在线开发调试,支持供超过 180 天数据的种子模型冷启动训练和可视化的管理实时模型在线训练任务

● 搭建在线训练模型仓库,自动化模型准出一致性验证,模型服务实时秒级更新,在线模型推理安全保障的“模型推理”模块;

● 通过“工作空间”来提供跨团队协同共建的定制产品能力

特征自动入库样本生成,特征质量管控

定义特征、拼接训练样本是广告推荐模型训练的的第一步,特征管理模块为用户提供注册新特征、一键入在离线样本流、例行更新在线 KV 检索的产品服务,帮助大家快速将生产的数据转换成特征

● 抽象出多种特征类型如用户特征、广告特征、语义特征等,提供一致的特征工程、特征入样本的产品体验;

● 为离线、实时特征自动调度例行化特征入库任务,版本化管理特征和在线 serving 数据更新;

● 特征从注册开始,平台全链路监控,保证特征数据在离线一致性

● 打通下游模型训练,为每个入模型的特征例行化评估特征重要性,量化每个特征为大盘带来的 GMV 提升。

特征的安全生产和质量管控是平台必须保障的,我们的模型算法同学在日常工作中,当遇到特征断流、特征停止更新,特征加工方式变更等问题时,平台需要及时地介入处理,比如特征生产方能及时提醒与周知下游消费方,特征的生命周期管理可以规范起来。

● 特征全生命周期追溯,确保特征上线后不会被误下线;

● 特征在维护阶段中可以查看下游模型训练推理阶段的消费详情,确保特征复用率

● 特征在断流、覆盖率或特征值发生变更的场景下,可通知特征生产方及时维护更新,通知下游模型消费方特征断流状态变更,以便及时做出调整

● 特征断流恢复正常后提醒生产方和消费方,负责人可关联新的升级版特征组并周知消费方。

全场景的模型开发、训练、评估能力
模型在线训练pipeline可视化编排

模型训练需要为用户提供深度学习模型的开发、模型网络结构的调试、在线训练任务的配置、提交管理能力。为此,我们配合支持千亿参数的大模型训练框架,设计了一套可视化的 DAG 产品页面,来编排大模型训练任务,将大规模 PS 的在线训练任务抽象成三个可视化组件编排,以极简的产品形态调度和管理模型训练任务,方便用户快速搭建和监控自己的大模型训练。

全功能支持Jupyter生态、VScode生态的在线编码环境

我们为用户提供云原生的在线编码 IDE,提供原生 TF API,打通生产实时样本数据流,可以本地开发模型,采样样本数据调试模型,并将开发好的模型一键提交到在线训练集群,通过大规模实时训练数据训练更新模型,为高阶的算法开发者提供灵活的模型开发能力。

可视化在离线模型评估

模型评估是确定训练的模型能否上线推理的唯一手段,为了帮助用户快速评估模型,我们也为用户提供完整的模型评估下钻分析能力,这里也针对广告场景做了定制优化,可以实时对比当前的主力模型,也可以指定自己业务专有的优化目标来评估。

模型管理、校验、上线、A/B 实验全流程支持

广告模型线上推理链路要求实时性,线上每次请求都会经过“召回、粗排、精排”的推理链路,太极既要保障线上每个主力模型服务可以稳定、及时的更新,更重要的是,需要为用户提供高效便捷的部署模型服务,发起 A/B 实验评价模型的产品方案。

首先,我们对每个训练任务的模型做好版本化的管理和模型服务部署的模型校验准出服务。每一个模型,除了训练时的评估指标符合预期,还会在部署上线前,平台自动化发起特征抽取算子一致性校验和沙箱单机服务性能、效果验证的模型准出校验,在平台检测指标通过后,自动部署服务进入 A/B 实验流程,保障模型服务的线上变更安全性。

我们设计了一套行之有效的验证新版本模型效果的 A/B 实验流程,并在实验流量逐步放大的过程中,可以自动迁移底层的模型训练、推理集群环境,确保实验流量变大会影响到广告业务效果和收入之前,整个模型训练任务、推理服务从实验环境切换到生产环境。

为了提升模型 A/B 实验的效率,太极平台结合各类模型预估类型的差异,设计了一套实验申请,放量的标准化流程,面向所有模型实验的同学,在太极上搭建实验放量、信息透视等全链路产品能力:

● 通过产品化 A/B 实验流程,提升实验放量效率和规范性,将实验从申请启动实验-实验审核-合并特性-实验放量-效果查看-整体主链路产品化 。

● 将实验过程的所有信息标准化、透明化,支持好溯源、宏观监控分析等应用。通过将实验放量模板化和标准化,清晰记录和呈现每一个实验,清晰溯源的同时,也可以结构化查询到每个特性实验的实验逻辑。

跨团队协作,大模型开放共建

为解决跨团队协作,支持大模型开放共建,我们在平台设计了“工作空间”的概念,通过工作空间来区分业务属性,针对不同的业务,提供差异化的产品能力,比如粗排、精排不同的线上主力样本流、主力模型流配置模板,CPU/GPU 推理服务部署工具等:

● 空间按【广告流量位】和【模型预估类型】来分配预置,用户无需创建,并提供其他角色和权限由管理员配置。

● 空间内发起任务配置,均默认匹配当前空间流量位和模型预估类型

训练资源动态调度优化

广告模型参数规模已经增长到千亿级别,一个分布式训练任务需要几百核的 cpu 资源和百 G 的参数服务器内存资源,广告每天新启动上千个模型训练,当前平台已经托管了超过百万核的离在线训练集群,同时正在逐步将模型训练迁移到 GPU 训练集群来降低训练资源成本,这都对平台如何调度好海量资源提出了很高的要求。

我们从平台的角度,实现了一套搭建在 K8S、YANR 之上的二级 AI 工作流调度引擎:

● 区分任务属性,自动为探索的离线任务分配低成本的混部资源,为高优实验、生产在线学习任务分配稳定的在线资源;

● 构建全局任务画像,实现 HBO 优化器,动态推荐和调整用户提交的训练任务规格,提高单任务的资源利用率;

● 从框架和调度层面保障因为机器故障、网络抖动的任务 failover 能力;

● 提供了全局的自动任务削峰填谷的潮汐调度能力,业务无感知的享受到训练任务的动态腾挪带来的成本节约。

智能免审,各阶段任务自动串联

为用户提高模型迭代效率是太极广告一站式平台的核心目标,我们设计并实现了特征管理-模型训练-模型推理的标准产品化流程的同时,也在努力进一步为用户降低等待时间,提高迭代效率。因此,首先要解决的就是各个阶段之间的审批流校验繁琐和任务之间的人工等待时间过长的问题。

随着太极标准化特征入模型的全流程,一次新增特征的探索实验,会经过几个关键卡点,包括特征导入在线 KV 的存储资源、模型训练资源和线上推理资源的申请和等待,以及模型训练的评估指标是否符合预期、是否可以进一步增量训练或者上线实验。

● 从各环节资源申请、分配方面,我们将核心的资源申请、审理环节剥离出来,建立先使用后审计的自动化免审机制,确保我们的用户可以随时提交自己的特征、训练任务,并在平台层面自动审计资源使用的合理性,从资源利用率和业务 ROI 的角度减少资源的浪费。

● 在任务调度方面,我们对整个链路做了分解,发现算法同学有相当长的时间在等待任务执行完成,再去确认样本分布、模型评估指标是否符合预期后发起下一阶段任务。因此,我们在平台的云原生工作流调度引擎里设计了服务于广告 pipeline 的主控调度服务,将用户一次复杂的特征入模型实验的各阶段自动串联起来,只需一次配置,后台自动调度计算资源申请、计算集群准备、任务运行时监控、任务结果评估等任务。

全链路血缘信息透视

在太极一站式的三类用户群中,针对数据科学分析用户群的看清看透需求,是一站式元数据产品化的核心目标。过去因为缺乏统一的完整的特征到模型映射关系,导致无用特征下线、特征一致性校验时需要很高人力成本,且易出错,因此我们需要一套完整的、自动化的元信息管理,提高准确性和系统效率。

太极一站式将这些特征和模型的信息进行产品化,提供特征&模型基础信息、关联血缘查询、API 开放等能力,实现数据一致性、特征质量分析、链路成本分析等应用能力,并最终反馈到广告模型生产线,帮助提升效率、降低成本。

● 数据积累:统一各阶段(特征注册、模块训练、模型上线)的入口,积累基础信息数据

● 血缘构建:特征、模型、服务、实验等各个关键要素之间的映射关系数据的沉淀,API 开放,并提供查询分析的产品。

04

未来展望:向智能化演进

随着广告一站式在“召回、粗排、精排”各模型场景中落地,平台建设也逐步进入深水区,过去,我们将特征-训练-推理三要素以一站式的产品方案呈现给用户,打通了各环节研发链路,很好地帮助到用户特征入模型提效。

接下来,我们将进一步深化关键节点的提效,引入更多的智能化技术,帮助我们的算法同学减少人工重复劳动,解放生产力将聪明智慧用到刀刃上。

提升特征探索效率

管好特征:建设特征库,实现特征精细化分析挖掘能力

用好特征:建设自动特征工程能力,实现自动特征评估,自动特征集合选择和自动特征交叉能力,提高特征入模型效率。

自动模型调优

管好模型:建设模型库,降低模型开放共建门槛,实现模型共享复用

用好模型:建设 AutoML 模型自动优化能力,提高模型开发效率


今天的分享就到这里,谢谢大家。

|免费电子书|

|有奖问卷调研|

|往期文章精选|

1. 腾讯广告模型基于"太极"的训练成本优化实践

2. 度小满自动机器学习平台实践

3. 阿里云机器学习平台 PAI 的云原生实践与落地


|关于DataFun|

公众号又改推送规则啦...

将公众号设置为星标🌟,才会第一时间接收到文章推送

设置星标仅需3步👇

👇点击阅读原文可阅读往期全部文章

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/152791