flyteorg/flyte
Dynamic, resilient AI orchestration. Coordinate data, models, and compute as you build AI workflows.
Flyte 2 – 开源 AI/ML 编排运行时
是什么 – Flyte 2 是一个纯 Python 框架,用于大规模可靠地编排机器学习流水线、模型和 AI agent。它提供了一个轻量级的 SDK 和命令行界面,让您可以定义任务、将其组合成工作流,并在本地或分布式后端(即将推出 Kubernetes-native 版本)上运行。该项目是 LF AI & Data Foundation 的毕业项目,也是 Flyte 1 的继任者。
核心能力
- 以任务为中心的 API – 编写普通的 Python 函数(同步或异步)并使用
@env.task进行装饰。Flyte 会处理容器化、依赖项规范和远程执行。 - 简单执行 – 在代码中使用
flyte.run(...)运行工作流,或通过 CLI 使用flyte run <file> <task> …。 - 模型服务 – 将 FastAPI 应用封装在
FastAPIAppEnvironment中,并通过flyte serve进行服务化。 - 本地开发体验 – 可选的 TUI (
flyte[tui]) 为检查任务、日志和执行状态提供了丰富的终端 UI。 - 可扩展运行时 – 开源后端(Kubernetes-native)正在此仓库中构建;Union.ai 目前提供企业级后端。
- 纯 Python 安装 – 使用
uv pip install flyte(或直接通过 pip)进行安装。完整的 SDK 位于配套的flyte-sdk仓库中。
典型工作流
import asyncio, flyte
env = flyte.TaskEnvironment(
name="hello_world",
image=flyte.Image.from_debian_base(python_version=(3,12)),
)
@env.task
def calculate(x: int) -> int:
return x * 2 + 5
@env.task
async def main(numbers: list[int]) -> float:
results = await asyncio.gather(*[calculate.aio(n) for n in numbers])
return sum(results) / len(results)
if __name__ == "__main__":
flyte.init()
run = flyte.run(main, numbers=list(range(10)))
print(f"Result: {run.result}")
使用 python hello.py 在本地运行,或通过 CLI:
flyte run hello.py main --numbers '[1,2,3]'
模型服务化
from fastapi import FastAPI
import flyte
from flyte.app.extras import FastAPIAppEnvironment
app = FastAPI()
env = FastAPIAppEnvironment(
name="my-model",
app=app,
image=flyte.Image.from_debian_base(python_version=(3,12)).with_pip_packages(
"fastapi", "uvicorn"
),
)
@app.get("/predict")
async def predict(x: float) -> dict:
return {"result": x * 2 + 5}
if __name__ == "__main__":
flyte.init_from_config()
flyte.serve(env)
使用 python serving.py 或 flyte serve serving.py env 运行。
入门指南 – 该仓库附带了 DevBox 用于快速本地尝试,以及一个开箱即用的 GitHub Codespaces 模板。一个 10 分钟的 Colab notebook (ten_minutes_to_flyte.ipynb) 将引导新用户了解基础知识。
适用场景 – Flyte 2 对以下场景非常有用:
- 需要可复现、版本化的流水线,且不想学习新 DSL 的数据科学团队。
- 需要自动处理容器化并以服务形式部署模型(如 FastAPI 等)的机器学习工程师。
- 需要构建多步实验,且实验可能在本地运行或稍后扩展到 Kubernetes 集群的研究人员。
链接
- 文档: https://www.union.ai/docs/v2/flyte/user-guide/running-locally/
- SDK 参考: https://www.union.ai/docs/v2/byoc/api-reference/flyte-sdk/
- CLI 参考: https://www.union.ai/docs/v2/byoc/api-reference/flyte-cli/
- 后端详情:
docs/BACKEND_README.md - 社区: Slack, GitHub Discussions, Issues.
许可证 – Apache 2.0。
相关
- 项目
- 项目
- 项目
- 项目
- 项目