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.py 或 flyte serve serving.py env 執行。
入門指南 – 該儲存庫提供 DevBox 以進行快速本地試用,以及現成的 GitHub Codespaces 範本。一個 10 分鐘的 Colab notebook (ten_minutes_to_flyte.ipynb) 會引導新用戶完成基礎操作。
適用場景 – Flyte 2 對於以下對象非常有用:
- 需要可重複、版本化的流水線,且不想學習新 DSL 的數據科學團隊。
- 需要自動化容器處理,並將模型部署為服務 (FastAPI 等) 的 ML 工程師。
- 需要構建多步驟實驗,且可能在本地執行或稍後擴展到 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.
相關
- 專案
- 專案
- 專案
- 專案
- 專案