T
traeai
登录
返回首页
Google Cloud Blog

Evolving Dataflow to process massive datasets for machine learning

9.2Score

TL;DR · AI 摘要

Google Cloud Dataflow 引入多项创新以应对 AI 时代的海量数据处理需求,包括动态分片、TPU 自动扩展和多语言支持。

核心要点

  • Dataflow 的 Liquid Sharding 功能可动态调整工作单元,提升大规模数据处理效率。
  • 支持异构工作池和 TPU-aware 自动扩展,优化资源分配与成本效率。
  • 提供多语言 SDK 和 ML 框架集成,增强开发者体验与生产可靠性。

结构提纲

按章节快速跳转。

  1. 介绍 Google 在 AI 时代对大规模数据处理的需求和挑战。

  2. 描述 Dataflow 的动态分片、全球计算和自动优化等特性。

  3. 介绍异构工作池、TPU-aware 自动扩展和 TPU 调度优化。

  4. 说明多语言支持和 ML 框架集成的改进。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Dataflow AI Innovations

金句 / Highlights

值得收藏与分享的关键句。

  • Liquid sharding dynamically splits work units during execution for on-the-fly rebalancing.

    Addressing massive scalability

    ⬇︎ 下载 PNG𝕏 分享到 X
  • Heterogeneous worker pools allow developers to specify custom resource requirements for different pipeline stages.

    Boosting efficiency with accelerators

    ⬇︎ 下载 PNG𝕏 分享到 X
  • Language flexibility is provided through a versatile SDK with a simple API in C++, Java, Python, and Go.

    Enhancing the developer experience

    ⬇︎ 下载 PNG𝕏 分享到 X
#Dataflow#Google Cloud#TPU#AI#大数据
打开原文

发布时间: 2026-05-28

超过20年前,谷歌创建了MapReduce,以解决当时年轻公司面临的海量数据处理扩展性挑战。如今我们所处的AI时代,从谷歌DeepMind的Gemini等前沿模型训练,到Waymo完全无人驾驶汽车的运行,都要求高效的大规模数据处理能力。

机器学习的诸多环节——包括数据摄入、转换和特征提取——都高度依赖对海量数据集的处理。为满足谷歌内部各项目对天文级规模计算的需求,我们进化出了Flume这一数据平台(作为MapReduce的继任者),其创新集中在扩展性效率和更卓越的开发者体验三大方向。这些创新中的许多现已集成至Dataflow——我们的全托管批量与流处理平台,该平台基于谷歌支撑最严苛内部负载的核心技术构建。本文将概述Flume平台的众多创新,并展示谷歌云客户如何通过Dataflow应用这些特性。

**应对海量扩展性挑战**

过去20年间,谷歌的数据处理规模呈爆炸式增长,这持续推动着技术创新。为应对极端规模带来的挑战,我们在数据处理平台中引入了以下功能(现已同步至Dataflow):

  1. 液态分片:在执行过程中动态拆分工作单元(分片),实现实时负载均衡。这项技术帮助处理数据分布不均和滞后任务,随着数据量增长最大化工作者效率。
  1. 全局计算:通过动态调度工作负载至谷歌全球基础设施,实现巨大扩展能力。系统会综合考量数据本地性、资源可用性等因素,自动选择最优执行位置。
  1. 自动流水线优化:将连续操作融合为单一阶段,减少I/O和阶段转换开销,使大规模执行更流畅地扩展。
  1. 外部API调用限速:管理对第三方服务的负载,这对频繁调用API进行模型评估等ML流水线至关重要,防止高数据量级压垮外部系统。
  1. 并行池:支持无服务器远程推理。该特性通过高效托管、共享、管理和自动扩展外部模型服务器,克服传统远程推理系统的扩展瓶颈。

**利用加速器提升效率**

在有限资源内创造更多价值不仅是约束条件,更是推动进步的动力。通过提高运行效率,我们释放出空间与容量以加速创新。这一点在使用TPU等加速器的工作负载中尤为明显。为提升资源利用率和成本效益,工程师们设计了以下创新功能(现已集成至Dataflow):

  1. 异构工作者池:允许开发者针对不同流水线阶段指定自定义资源需求。例如,TPU密集型操作运行于配备TPU的工作者节点,其他阶段则使用标准CPU工作者,实现资源精准分配。
  1. TPU感知自动扩展:避免初始阶段过度分配TPU工作者,在后续扩展事件中提升效率。
  1. 占空比策略执行:当加速器活跃度较低时自动缩减TPU工作负载,仅在利用率回升时恢复规模。
  1. TPU通用性:与基础设施团队协作开发优化策略,根据配额和资源可用性,智能调度作业至最适合的TPU版本与机架位置。

**提升开发者体验**

考虑到谷歌内部人员背景与工具链的多样性,快速原型开发、迭代和可靠生产运维极其重要。我们在以下方面投入大量资源优化用户体验:

  1. 语言灵活性:提供支持C++(内部使用)、Java、Python和Go(含SQL支持)的多功能SDK,拥有简洁API,可用于构建批处理、ML和流处理流水线。
  1. 深度集成:支持JAX等ML框架,并内置大语言模型专属优化。底层平台还提供构建智能代理推理流水线的基础模块,支持批量与流范式的简易切换。
  1. 统一批流处理:允许使用同一代码处理历史批数据与实时流数据,大幅简化架构——传统方案需为批处理与流处理分别构建独立流水线。
  1. 可观测性:通过监控UI提供全面控制与关键诊断数据。详细的性能指标(如按阶段显示的TPU利用率曲线图)为故障排除和优化提供透明视图。
  1. 高级开发工作流:提供更快的初期部署(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

发布分类

AI 可能会生成不准确的信息,请核实重要内容

Evolving Dataflow to process massive datasets for machine learning | Google Cloud Blog | traeai