火山引擎机器学习平台架构与最佳实践详解
如果无法正常显示,请先停止浏览器的去广告插件。
1. 火山引擎机器学习平台
架构与最佳实践详解
顾谭
火山引擎系统工程师
2021/10/30
1
2. 1.产品介绍
2.云原生机器学习平台架构设计
3.最佳实践
2
2
3. 3
产品介绍
4. 产品目标
4
4
模型开发
53%
从数据+想法到AI生产力
mlops
dataops
数据处理
AI 工程化
模型训练
mlops
dataops
模型推理
模型部署
devops
www.volcengine.com
5. 算法工程师的痛点
异构数据的处理
5
5
算力及调度的规模化
开发过程的标准化和团队协作
www.volcengine.com
6. 一站式云原生机器学习平台
6
平台产品功能
命令行
Web 页面
ML Service
数据服务
WebIDE
模型训练
SDK
AutoML
OpenAPI
模型推理
端智能
开发套件
MLFlow
AI资产中心(镜像/模型/代码/实验Tracking)
机器学习任务调度 K8S Operator
ML System
训练框架
TensorFlow/PyTorch/GBDT/BytePS/ByteGiant
推理引擎及优化
Trition/OpenVINO/ByteNN/TensorRT/XLA
火山引擎云原生底座
( ECS /VKE/存储/大数据开放平台/网络)
www.volcengine.com
7. 产品设计理念
7
7
To Developer: 极致的开发者体验
资源利用率
可观测
代码 0 侵入
高性能
www.volcengine.com
8. 模型开发——WebIDE
8
整合
•
全功能 VSCode: 社区插件+自定义插
件(Tensorboard、数据浏览 Hive/MySQL/
本地文件系统浏览器、实验记录)
•
深度优化的 Notebook: 多语言内核
(MLSQL+Python+Spark)、可定时运行、
Cell 运行历史、刷新页面不丢内容等
解耦
•
计算节点: 自定义规格(CPU/GPU)+自定义
图片区域
镜像,随时随地开关机,支持本地 IDE 直连
•
代码: 可脱离于计算节点,独立编辑和分享,支
持 Git
•
数据: 无缝对接 -> 对象存储/NAS/HDFS/Hive
www.volcengine.com
9. 模型训练——自定义训练
Web 页面
(交互式表单/监控/日志
/WebTermimal)
镜像
(预置/自定义)
9
交互式命令行
(全功能 Termial/日志)
SDK/OpenAPI
任务生命周期管理
代码 数据
(WebIDE/本地上传/Git) (TOS/HDFS/NAS/vePFS)
(排队中/部署中/运行中/完成/失败/取消)
图片区域
多种分布式训练框架编排和调度
(Horovod/PyTorchDDP/TensorflowPS/MXNet/XGBoost/ BytePS/ByteGiant )
实验 Tracking
(代码快照、超参数、效果指标、
TensorBoard、日志)
多种计算规格实例
(CPU / A100/V100/A30/T4 with RDMA)
www.volcengine.com
10. 模型推理
•
10
高性能在线推理: Trition Inference
Server/OpenVINO/自研QuickSilver
• 高吞吐离线批量推理
• 一键发布+弹性扩缩容
• 全面监控+日志+告警
• 模型转换:
•
• 格式转换:TensorRT/XLA/TVM
• 精度转换: fp32->fp16/int8
图片区域
Perf:
• 性能报告: QPS/Latency
• Profile Timeline
www.volcengine.com
11. 资源组
11
1. 调配每个算法工程师 Quota 占比
2. 运行中任务管控
3. 利用率监控及报表:
• 指标:申请率、已申请部分利用率
• 维度:组、个人、任务
图片区域
www.volcengine.com
12. 12
云原生机器学习平台架构设计
13. 云原生——基于火山引擎云原生底座
K8S Operator
ML
Platform
AutoML
MLJob
Kubeflow
TensorBoard
大数据开放平台
PaaS
Volcengine Kubernetes Engine
计算
网络
Spark/Flink/EMR/Ray
云存储
ECS VPC TOS/CloudFS/
vePFS/
VCI vRDMA MySQL/Redis/云监控
Cloud Infra
开源存储
MiniIO/NFS/HDFS/Hive
MySQL/Redis/ELK
/Prometheus/Granfana
www.volcengine.com
14. 云原生——符合云原生标准
14
容器化
无服务器
OpenAPI
节约成本
图片区域
• 全托管服务 • 自定义镜像 • 所有功能 API 化 • • 免运维 • • • 高可用 MicroVM 容器,提供全面
的资源隔离(CPU/MEM/
GPU/网络/磁盘 IO) 统一定义资源、权限、
Quota 包年包月+按量计费,灵活
组合
• • 弹性扩缩容 • 支持被集成 在离线融合一体化调度,降
低资源碎片,提升利用率
• 高性能
•
挂载用户 VPC 的 ENI,打
通上下游资源
ü 样本托管
ü 训练框架
www.volcengine.com
15. 云端优化——高性能+易用的样本托管方案
15
模型训练
数据处理
TensorFlow/PyTorch/
GBDT/Ray
MLSQL /Spark/Ra
y
POSIX接口+缓存加速
Hive/HDFS/TOS/MyS
QL/Kafka
源数据
HDFS/TOS/vePFS
样本
HDFS/TOS
模型/日志/代码快照
www.volcengine.com
16. 云端优化——高性能+易用的样本托管方案
16
GPU K8S PODS
主容器
SideCar
CloudFS
TensorFlow
PyTorc
h
XGBoost
/LightGB
M
FUSE
Client
Ray
/
/b
/a
PV&CSI
hostPath
volume
图片区域
/file2
/file1
Hot Block Cache
Write to Cache
file1-blk-0 file2-blk-0
file1-blk-1 file2-blk-0
Read Cache
分
布
式
目
录
树
服
务
分
布
式
块
存
储
Write Back Cache
vePFS/NAS
/a/file1
Async Upload UFS
/a/file2
TOS/HDFS
www.volcengine.com
17. 云端优化——高性能+易用的样本托管方案
高性能和扩展性
•
•
•
单租户每秒数百
GB/s 的吞吐
数千个计算实例同时
访问的高性能共享存
储
PB 级别的容量
17
易用使用
•
•
代码 0 修改
• 数据处理: Spark/Flink/Ray/MLSQL
• 训练: Tensorflow/Pytorch/GBDT/Ray
接口友好
• 兼容 POSIX
• 兼容 HDFS 协议
• 兼容 TOS
成本
• 管理成本: 免于拷贝数据
• 存储费用:分层存储,在低
廉的 TOS/HDFS 中归档数
据,发起 AI 训练时候做透
明加速代理
www.volcengine.com
18. 云端优化——高性能分布式训练框架 BytePS
18
DNN
Models
ResNet-50
(26M params)
DNN
Training
BERT-Large
(387M params) GPT-3
图片区域 (175B
params)
Estimated #iters. Estimated
to converge
training time
DNN model Device Computation time
(FP + BP) ResNet-50 1x Tesla
V100 32ms + 64ms
(batch size 32) 3.6M 96 hours
BERT-Large 1x Tesla
V100 339ms + 508ms
(batch size 35) 8M 78.4 days
分布式训练加速
www.volcengine.com
18
19. 云端优化——高性能分布式训练框架 BytePS
19
3. CPU Bottleneck: optimizer is too heavy
CPU
Machine
CPU
Machine
CPU
Machine
CPU
Machine
ALL-
Reduce
PS
GPU
Machine
GPU
Machine
GPU
Machine
GPU
Machine
GPU
Machine
GPU
Machine
图片区域
Best strategy: combine together
1. GPU machine
Bandwidth not saturated
CPU
Machine
CPU
Machine
1. CPU Machine
Bandwidth not
utilized at all
2. Intra-Machine multi-GPU
communication
GPU
Machine
GPU
Machine
GPU
Machine
www.volcengine.com
20. 云端优化——高性能分布式训练框架BytePS
CPU Machine 0
GPU Machine 0
GPU
GPU
GPU
GPU
Computation
Computation
Computation
Computation
机内通信优化
20
CPU Machine k-1
Summation
Service … Summation
Service
Communication
Service … Communication
Service
Summation
Service
Summation
Service
机间通信优化
GPU Machine n-1
图片区域
GPU
GPU
GPU
GPU
Computation
Computation
Computation
Computation
解决 CPU
算力瓶颈
www.volcengine.com
21. 云端优化——高性能分布式训练框架 BytePS
21
BytePS 在典型任务上的性能分别比 All-reduce 和 PS 高出 84% 和 245%
TensorFlow ResNet-50
MXNet VGG-16
PyTorch UGATIT-GAN
CV
Models
图片区域
TensorFlow Transformer
MXNet BERT-Large
PyTorch GPT-2
NLP
Models
GPU: V100, NVLink,100Gbps NIC
CPU: 96Core,512G
www.volcengine.com
22. 22
最佳实践
23. 最佳实践
23
www.volcengine.com
24. 欢迎加入
24
抖音扫码关注 扫码关注
“火山引擎开发者社区”抖音号 “火山引擎开发者社区”公众号
24
www.volcengine.com
25. www.volcengine.com