flyte-sdk
纯 Python 编写的 AI 流水线编排 SDK,支持 async/await 语法、自动容错和 Kubernetes 分布式执行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
纯 Python 编写的 AI 流水线编排 SDK,支持 async/await 语法、自动容错和 Kubernetes 分布式执行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨三点,你的 GPU 集群正在训练一个价值数千美元的大模型。突然,某个 spot 实例被云厂商强制回收——训练进度归零,一切从头开始。这不是段子,这是每个 AI 工程师都可能经历的真实噩梦。
Flyte 2 SDK 正是为解决这类问题而生的。它是 Flyte 开源平台的全新 Python SDK,让开发者用纯 Python 语法编写分布式 AI 流水线,同时享有自动容错、可视化追踪、热启动容器等生产级能力。这个项目目前在 GitHub 拥有 126 颗星,被 Pfizer、LinkedIn、NVIDIA、Tesla、Mercedes 等头部企业用于生产环境,累计下载量已达数千万级别。
Flyte 的故事始于 2016 年的 Lyft。当时团队被数据流水线的复杂性折磨得苦不堪言——传统的 Airflow 配置繁琐、缺乏类型安全、分布式执行更是噩梦。几位工程师决定从零打造一个专门为 ML 场景设计的编排引擎,这就是 Flyte 的起点。
2021 年,Lyft 将 Flyte 捐赠给 Linux Foundation LF AI & Data 基金会,成立了 flyteorg 组织,由此开始了社区化发展的道路。经过多年迭代,Flyte 1.x 已成为 ML 编排领域的标杆项目之一,服务于 Spotify、LinkedIn、PayPal 等科技巨头。然而 1.x 版本依然依赖 YAML 配置和约束性 DSL,对于习惯 Python 原生语法的开发者而言,上手门槛始终存在。
2025 年,Flyte 2 正式发布,最大的改变是引入了纯 Python 工作流定义——不再需要学一门"飞特定制语言",直接用你熟悉的 async/await 语法就能编写生产级 AI 流水线。
想象你要做一道复杂的菜,比如佛跳墙。传统方式是你自己一个人在厨房里忙活——洗菜、切菜、炖汤,所有步骤串行执行,一旦某个环节出错(比如火候不对),整道菜就废了。
Flyte 就是你的智能厨房团队:
Flyte 2 最大的技术亮点是彻底抛弃了工作流 DSL。以往的编排工具(如 Airflow、Kubeflow Pipeline)要求用户学习特定的 YAML 语法或领域专用语言,调试困难,与 IDE 原生集成差。Flyte 2 允许开发者直接用 Python 编写工作流逻辑:
@env.task(retries=3, cache="auto")
async def predict(x: int) -> int:
return 2 * x + 5
@env.task
async def main(data: list[int]) -> float:
xs = await asyncio.gather(*(predict(x) for x in data))
return sum(xs) / len(xs)
这不只是语法糖。@env.task 装饰器将 Python 函数注册为可追踪、可缓存、可重试的分布式任务。asyncio.gather 让任务并行执行如同写普通异步代码一样自然。
除了训练流水线,Flyte 2 还支持将模型直接作为服务部署。通过 FastAPIAppEnvironment,用户可以在同一个 Python 文件中定义模型推理逻辑,并通过 flyte serve 一键启动服务:
from flyte.app.extras import FastAPIAppEnvironment
env = FastAPIAppEnvironment(
name="my-model",
app=app,
image=flyte.Image.from_debian_base(python_version=(3, 12)).with_pip_packages(
"fastapi", "uvicorn"
),
)
这是 Flyte 2 最具生产价值的能力之一。传统的流水线一旦中途失败,往往需要从第一步重新执行,浪费大量计算资源。Flyte 2 通过 Checkpoint(检查点) 机制实现了真正的"断点续传"——系统会记录每个任务的状态,失败后只需从最后一个成功节点恢复。
配合内置的重试策略(retries=N)和错误隔离机制,大型训练任务可以真正做到"无人值守"运行。
Flyte 2 引入了"可复用容器"(Reusable Containers)概念。与传统方案每次任务都启动全新容器不同,可复用容器保持运行状态,任务启动延迟可低至 100ms 以下。对于高频调用的推理服务,这个优化意味着从"秒级响应"到"毫秒级响应"的质变。
通过 cache="auto",Flyte 会根据输入内容自动计算缓存 key。相同的输入参数永远不会重复执行计算。这个功能对于调试阶段反复运行相同参数的场景尤为实用。
入门门槛:低。 安装仅需一行命令:pip install flyte。本地运行直接 python your_pipeline.py,无需任何基础设施配置。开发者可以在笔记本上完成完整的流水线开发和调试。
与 CLI 配合:提升效率。 flyte run your_pipeline.py main --data '[1,2,3]' 提供了一个友好的命令行界面,支持参数传递和任务选择。
生产部署:有门槛。 Flyte 2 在本地运行非常轻量,但生产级分布式执行依赖 Kubernetes 集群。对于没有 K8s 运维能力的团队,Union.ai 提供了托管云服务"Devbox",可在浏览器中一键体验完整的 Flyte 2 环境。
从代码结构来看,Flyte 2 SDK 的架构分层清晰:
flyte.schedulers):基于时间触发和事件触发的工作流调度。flyte.tasks.*):支持 Python async/sync 两种执行模式。flyte.io.File):抽象了 S3/GCS 等对象存储的大文件传输逻辑。plugins/):支持 Spark、Ray、PyTorch、AWS Batch 等外部计算后端。依赖项方面,Flyte 2 选型现代:使用 connectrpc 替代传统 gRPC(解决了 0.11.0 版本的兼容性问题)、使用 pydantic>=2.10 进行数据验证、使用 protobuf>=6.30 进行序列化。需要 Python 3.10 以上环境。
AI 编排赛道近年来竞争激烈——AWS Step Functions、Vertex AI Pipelines、Metaflow、Semporal 等产品各有特色。Flyte 2 的差异化定位在于三点:纯 Python 优先(开发者体验)、容错优先(生产稳定性)、开源可控(不被云厂商锁定)。
对于 AI 爱好者来说,Flyte 2 提供了一个从零学习 ML 工程化的绝佳入口——本地写代码、本地调试、生产一键部署。对于 AI 开发者来说,它解决了"实验到生产"最后一公里的工程化难题,让pipeline 代码可以直接在 GPU 集群上运行,无需重写。
本报告基于 GitHub 公开信息及官方文档生成,分析结论仅供参考。