Evolving Dataflow to process massive datasets for machine learning
TL;DR · AI 摘要
Google Cloud Dataflow 引入多项创新以应对 AI 时代的海量数据处理需求,包括动态分片、TPU 自动扩展和多语言支持。
核心要点
- Dataflow 的 Liquid Sharding 功能可动态调整工作单元,提升大规模数据处理效率。
- 支持异构工作池和 TPU-aware 自动扩展,优化资源分配与成本效率。
- 提供多语言 SDK 和 ML 框架集成,增强开发者体验与生产可靠性。
结构提纲
按章节快速跳转。
- §引言
介绍 Google 在 AI 时代对大规模数据处理的需求和挑战。
描述 Dataflow 的动态分片、全球计算和自动优化等特性。
介绍异构工作池、TPU-aware 自动扩展和 TPU 调度优化。
说明多语言支持和 ML 框架集成的改进。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Dataflow AI Innovations
金句 / Highlights
值得收藏与分享的关键句。
Liquid sharding dynamically splits work units during execution for on-the-fly rebalancing.
Heterogeneous worker pools allow developers to specify custom resource requirements for different pipeline stages.
Language flexibility is provided through a versatile SDK with a simple API in C++, Java, Python, and Go.
发布时间: 2026-05-28
超过20年前,谷歌创建了MapReduce,以解决当时年轻公司面临的海量数据处理扩展性挑战。如今我们所处的AI时代,从谷歌DeepMind的Gemini等前沿模型训练,到Waymo完全无人驾驶汽车的运行,都要求高效的大规模数据处理能力。
机器学习的诸多环节——包括数据摄入、转换和特征提取——都高度依赖对海量数据集的处理。为满足谷歌内部各项目对天文级规模计算的需求,我们进化出了Flume这一数据平台(作为MapReduce的继任者),其创新集中在扩展性、效率和更卓越的开发者体验三大方向。这些创新中的许多现已集成至Dataflow——我们的全托管批量与流处理平台,该平台基于谷歌支撑最严苛内部负载的核心技术构建。本文将概述Flume平台的众多创新,并展示谷歌云客户如何通过Dataflow应用这些特性。
**应对海量扩展性挑战**
过去20年间,谷歌的数据处理规模呈爆炸式增长,这持续推动着技术创新。为应对极端规模带来的挑战,我们在数据处理平台中引入了以下功能(现已同步至Dataflow):
- 液态分片:在执行过程中动态拆分工作单元(分片),实现实时负载均衡。这项技术帮助处理数据分布不均和滞后任务,随着数据量增长最大化工作者效率。
- 全局计算:通过动态调度工作负载至谷歌全球基础设施,实现巨大扩展能力。系统会综合考量数据本地性、资源可用性等因素,自动选择最优执行位置。
- 自动流水线优化:将连续操作融合为单一阶段,减少I/O和阶段转换开销,使大规模执行更流畅地扩展。
- 外部API调用限速:管理对第三方服务的负载,这对频繁调用API进行模型评估等ML流水线至关重要,防止高数据量级压垮外部系统。
- 并行池:支持无服务器远程推理。该特性通过高效托管、共享、管理和自动扩展外部模型服务器,克服传统远程推理系统的扩展瓶颈。
**利用加速器提升效率**
在有限资源内创造更多价值不仅是约束条件,更是推动进步的动力。通过提高运行效率,我们释放出空间与容量以加速创新。这一点在使用TPU等加速器的工作负载中尤为明显。为提升资源利用率和成本效益,工程师们设计了以下创新功能(现已集成至Dataflow):
- 异构工作者池:允许开发者针对不同流水线阶段指定自定义资源需求。例如,TPU密集型操作运行于配备TPU的工作者节点,其他阶段则使用标准CPU工作者,实现资源精准分配。
- TPU感知自动扩展:避免初始阶段过度分配TPU工作者,在后续扩展事件中提升效率。
- 占空比策略执行:当加速器活跃度较低时自动缩减TPU工作负载,仅在利用率回升时恢复规模。
- TPU通用性:与基础设施团队协作开发优化策略,根据配额和资源可用性,智能调度作业至最适合的TPU版本与机架位置。
**提升开发者体验**
考虑到谷歌内部人员背景与工具链的多样性,快速原型开发、迭代和可靠生产运维极其重要。我们在以下方面投入大量资源优化用户体验:
- 语言灵活性:提供支持C++(内部使用)、Java、Python和Go(含SQL支持)的多功能SDK,拥有简洁API,可用于构建批处理、ML和流处理流水线。
- 深度集成:支持JAX等ML框架,并内置大语言模型专属优化。底层平台还提供构建智能代理推理流水线的基础模块,支持批量与流范式的简易切换。
- 统一批流处理:允许使用同一代码处理历史批数据与实时流数据,大幅简化架构——传统方案需为批处理与流处理分别构建独立流水线。
- 可观测性:通过监控UI提供全面控制与关键诊断数据。详细的性能指标(如按阶段显示的TPU利用率曲线图)为故障排除和优化提供透明视图。
- 高级开发工作流:提供更快的初期部署(Day 0)与后期运维(Day 2)特性,例如采样和试运行可确保代码准确性。用户还可使用内存集合测试流水线,甚至暂停和恢复生产流水线。
**Dataflow将谷歌内部平台创新带入云服务**
Dataflow 基于 Google 内部平台构建,共享了许多核心组件,包括执行引擎和 Apache Beam SDK(源自 Flume 的 API)。这种紧密的关系意味着我们为处理 Google 内部数据处理挑战(例如处理数百亿份文档的管道)所构建的前沿解决方案,能直接惠及 Dataflow 用户。事实上,Dataflow 的独特功能,如垂直扩展、右位适配、动态分片和滞后检测,都源于为 Google 内部工作负载开发的解决方案。
这也是许多 Google Cloud 客户依赖 Dataflow 处理关键 ML 应用的原因之一:Spotify 使用 Dataflow 进行大规模 ML 播客预览生成;Etsy 通过 Dataflow 实现数据准备和 ETL以支持其 ML 工作负载;Moloco 则利用 Dataflow 每日处理数万亿字节的数据,实时更新广告竞价预测模型。
发展势头持续增强:上季度我们在 Dataflow 中新增了对 TPU 的支持,此前已支持 GPU。展望未来,我们正在研发名为推测执行的高级可靠性功能,并计划推出故障隔离、回放与暂停/恢复等功能,以提升开发者体验。若想进一步了解或开始使用 Dataflow,请访问https://docs.cloud.google.com/dataflow/docs/get-started。
发布分类