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.pyflyte serve serving.py env 运行。

入门指南 – 该仓库附带了 DevBox 用于快速本地尝试,以及一个开箱即用的 GitHub Codespaces 模板。一个 10 分钟的 Colab notebook (ten_minutes_to_flyte.ipynb) 将引导新用户了解基础知识。

适用场景 – Flyte 2 对以下场景非常有用:

  • 需要可复现、版本化的流水线,且不想学习新 DSL 的数据科学团队。
  • 需要自动处理容器化并以服务形式部署模型(如 FastAPI 等)的机器学习工程师。
  • 需要构建多步实验,且实验可能在本地运行或稍后扩展到 Kubernetes 集群的研究人员。

链接

许可证 – Apache 2.0。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目