flyteorg/flyte

Dynamic, resilient AI orchestration. Coordinate data, models, and compute as you build AI workflows.

Flyte 2 – 開源 AI/ML 編排執行階段

什麼是 Flyte 2 – Flyte 2 是一個純 Python 框架,用於可靠地大規模編排機器學習流水線、模型和 AI agent。它提供輕量級 SDK 和命令列介面 (CLI),讓您能夠定義任務 (tasks)、將其組合成工作流 (workflows),並在本地或分佈式後端(即將推出 Kubernetes-native 後端)上執行。該專案是 LF AI & Data Foundation 的畢業專案,也是 Flyte 1 的繼承者。

關鍵能力

  • 以任務為中心的 API – 編寫普通的 Python 函數(同步或非同步)並使用 @env.task 進行裝飾。Flyte 會處理容器化、依賴項規範和遠端執行。
  • 簡單的執行 – 在程式碼中透過 flyte.run(...) 執行工作流,或透過 CLI 使用 flyte run <file> <task> …
  • 模型服務化 (Model serving) – 將 FastAPI app 包裝在 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]'

模型服務化 (Serving a model)

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 等) 的 ML 工程師。
  • 需要構建多步驟實驗,且可能在本地執行或稍後擴展到 Kubernetes 集群的研發人員。

連結

授權 – Apache 2.0.

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案