flyteorg/flyte
Dynamic, resilient AI orchestration. Coordinate data, models, and compute as you build AI workflows.
Flyte 2 – オープンソースのAI/MLオーケストレーション・ランタイム
概要 – Flyte 2は、機械学習パイプライン、モデル、およびAIエージェントを大規模に、かつ確実にオーケストレーションするための純粋なPythonフレームワークです。軽量なSDKとコマンドラインインターフェース(CLI)を提供し、タスクの定義、ワークフローへの構成、およびローカルまたは分散バックエンド(Kubernetesネイティブ、近日公開)での実行を可能にします。このプロジェクトはLF AI & Data FoundationのGraduatedプロジェクトであり、Flyte 1の後継です。
主な機能
- タスク中心のAPI – 通常のPython関数(同期または非同期)を記述し、
@env.taskでデコレートします。Flyteはコンテナ化、依存関係の指定、およびリモート実行を処理します。 - シンプルな実行 – コード内で
flyte.run(...)を使用するか、CLIからflyte run <file> <task> …を実行します。 - モデルサービング – FastAPIアプリを
FastAPIAppEnvironmentでラップし、flyte serveでサービングします。 - ローカル開発体験 – オプションのTUI(
flyte[tui])により、タスク、ログ、および実行ステータスの詳細なターミナルUIを提供します。 - 拡張可能なランタイム – オープンソースのバックエンド(Kubernetesネイティブ)はこのリポジトリで構築中であり、エンタープライズ向けのバックエンドは現在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ノートブック(ten_minutes_to_flyte.ipynb)が、新規ユーザーを基本操作へ導きます。
活用シーン – Flyte 2は以下の場合に有用です:
- 新しいDSLを学習することなく、再現可能なバージョン管理されたパイプラインが必要なデータサイエンス・チーム。
- 自動コンテナ処理を備えたモデルをサービスとしてデプロイする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.
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト