794
社区成员




这些年,随着算法设计和设备算力的发展,AI 的端侧应用逐步从零星的探索走向规模化应用。行业里,FAANG、BAT 都有众多落地场景,或是开创了新的交互体验,或是提升了商业智能的效率。
Client AI 是字节跳动产研架构下属的端智能团队,负责端智能 AI 框架和平台的建设,也负责模型和算法的研发,为字节跳动开拓商业智能新场景。
Pitaya 则是由字节跳动的 Client AI 团队与 MLX 团队共同构建的一套端智能工程链路,为端智能应用提供从开发到部署的全链路支持。
Pitaya 的愿景是打造行业领先的端智能技术,助力字节智能商业化应用。我们通过 AI 工程链路为端智能业务提供全链路支持;通过 AI 技术方案,帮助业务提升指标、降低成本、改善用户体验。
迄今为止,Pitaya 端智能已经为抖音、头条、西瓜、小说等应用的 30 + 场景提供了端智能支持,让端智能算法包在手机端每天万亿生效次数的同时,错误率控制在不到十万分之一。
在这一节我们来详细介绍一下 Pitaya 架构的两个最核心的部分:Pitaya 平台和 Pitaya SDK。
*MLX: 字节通用机器学习平台
*Libra: 字节大规模在线 AB 实验评估平台
*Slardar: 字节性能和体验保障的端监控 APM 平台
Pitaya 平台为算法包的开发、管理、调试、发布、部署、实验、监控提供了一套完善易用的 Pitaya Workbench。
为了应对大数据处理、深度学习模型训练需求,Pitaya 平台连通字节 MLX 平台,为通用机器学习场景提供一套自研的云端协作式 Notebook 解决方案。
MLX Notebook 内置 Spark 3.0 以及 Flink 等大数据计算引擎,和 local、yarn、K8S 等多种资源队列,可以将多种数据源(HDFS / Hive / Kafka / MySQL)和多种机器学习引擎(TensorFlow, PyTorch, XGBoost, LightGBM, SparkML, Scikit-Learn)连接起来。同时 MLX Notebook 还在标准 SQL 的基础上拓展了 MLSQL 算子,可以在底层将 SQL 查询编译成可以分布式执行的工作流,完成从数据抽取,加工处理,模型训练,评估,预测,模型解释的 Pipeline 构建。
Pitaya SDK 的核心是自研实现的端上虚拟机 - PitayaVM,为算法包和端上模型在手机端上运行提供了必要的环境。为了能够让虚拟机在端上运行,解决端上虚拟机存在的性能差、体积大的问题,Pitaya 在保留了大部分的核心功能的同时,对虚拟机做了许多优化:
对于严格要求体积的产品线(比如 ToB 业务),还可以选用 Pitaya SDK 的 MinVM 方案,通过自研轻量级解释器,在 PitayaVM 的基础上进行极致轻量优化,将包体积压缩到 100KB 以内。
Pitaya SDK 提供了对数据准备流程的一系列支持。提供从设备、应用、业务、端上特征中心,云端设备画像平台、搜推广模块获取特征数据的能力。同时 Pitaya SDK 也支持在端上进行动态 labeling 来对数据进行标注,提升训练数据质量,进而提高端上模型效果。
端上特征工程分成三个主要部分:「特征管理」、「端上特征存储」、「端上特征中心」。
特征存储
Pitaya SDK 提供了 KV 和 SQL lite 等多种方式的特征存储,在端上实现了类似于 Redis 和 Hive 的数据存储模块。同时 Pitaya SDK 也提供针对端上进行裁剪优化的 numpy、MobileCV、MLOps 等基础库,以兼容更多格式的数据、提供更复杂的端上数据处理能力。
Pitaya SDK 提供的高时效、多维度、长序列特征和合规允许下的隐私数据,除了可以支持相当比例的端内决策,还可以进一步加工特征、样本,为云端模型推理、训练提供支持,进而支持 CV、NLP、信息流等不同的端上智能场景。
端上特征中心
Pitaya SDK 提供一个端上特征中心模块,通过对端上的丰富多样的特征数据进行多维度的整合和管理,来让不同的端上业务场景方便高效地消费、共享、定制、复用各自的特征数据。端上特征中心可以通过中心化部署的形式,自动化地通过时间、应用生命周期、甚至自定义的 session 来对特征数据进行整合和生产,然后提供给不同的模块进行使用,显著提高特征开发效率。同时由于数据的生产、消费都在本地,整个过程可以实现毫秒级的数据时效。
特征管理
端上数据来源丰富,特征生产灵活,可以经过端上特征工程处理后得到较复杂高阶的端上特征,还可以进行二次特征交叉后再提供给业务场景进行消费。针对端上特征的这种特性,Pitaya SDK 在端上维护了一套特征管理机制,做到特征上下游生产可靠、可维护、可溯源。同时提供以下能力:
Pitaya SDK 对 AI 模型在端上的部署和实际应用进行了深度优化,连通字节自研的高性能异构推理引擎框架,Client AI 团队开发的机器学习决策树推理引擎 ByteDT,以及 AML 团队谈发的字节 TVM 引擎,让 AI 模型可以在端上进行快速部署和高性能推理。目前 Pitaya SDK 支持的端上推理引擎可以覆盖大部分端上 AI 场景,并提供完善的工具链支持,包括:
端监控模块提供对端上 AI 耗时、成功率、大盘稳定性和模型效果的主动监控。
客户端在推理任务运行过程中,会自动监控算法包运行关键链路上的性能并进行埋点,然后针对不同类型的埋点,上报到不同的平台进行相应的展示。
对应不同的平台,端监控支持:
资源管理资源管理具备对算法包的更新、下线、版本兼容等能力,让算法包能够自动丝滑地部署在端上;同时还维护了一整套的客户端 AI 运行环境。经过长时间的磨练,我们提供了这些功能:
任务管理
由于数据和模型都在端上进行计算和推理,不需要依赖网络,也没有网络延迟。因此端上 AI 相比云端 AI 的耗时低非常多,使得端上 AI 可以做到频率更高,响应更快。任务管理专门对应端上 AI 的特性进行设计,支持了多种能力:
为了保障用户的数据隐私,Pitaya SDK 提供 Pitaya 联邦学习模块,支持在不上传任何隐私数据的情况下训练 AI 模型。在这个过程中,AI 模型训练只依赖于经过隐私保护和加密技术处理后的端上模型更新结果,用户相关的数据不会被传送到云端保存,也无法反推出原始数据信息,实现了模型训练和云端数据存储的解耦。除此之外,Pitaya SDK 还支持直接在端上进行模型训练、部署和迭代,来实现千人千模或者千人百模的用户个性化模型。
为了保证用户体验,Pitaya FL 在端上实现了一套自动调度方案,只有在设备同时满足空闲、充电以及有 wifi 连接状态下才会进行联邦学习训练,整个过程不会对设备造成任何影响。
字节 Client AI 团队的端智能架构 Pitaya 目前已经为端智能提供了一套完善成熟的开发平台,为端智能开发 workflow 中的各项环节都提供了完整易用的功能模块,并在 SDK 里提供了业界领先的端上虚拟机、特征、监控、推理引擎支持。
在未来的几个月,字节 Pitaya 会致力于进一步建设端到端的 AI 工程链路,覆盖开发、迭代、监控流程,提升业务 AI 算法研发能效。同时我们计划在目前已经趋近成熟的端智能架构上,沉淀更多可复用的 AI 应用能力,实现 AI 能力在应用间、To B 的高效迁移,将端上 AI 进行规模化应用。
小知识分享:每一个HTML 文档中,都有一个不可或缺的标签:<head>,在几乎所有的HTML文档里, 我们都可以看到类似下面这段代码:
<head><meta charset=utf-8><meta http-equiv=content-type content=text/html; charset=utf-8><meta name=renderer content=webkit/><meta name=force-rendering content=webkit/><meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1/><meta http-equiv=Content-Type content=www.sxhxtt.cn ;charset=gb2312><meta name=viewport content=width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no></head>
head标签作为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签一般不会在页面中被显示出来,主要告知搜索引擎本页面的关键字以及对应网址,在SEO中传递相关权重起到非常重要的作用。