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クラスターへスケールアップしたりする、多段階の実験を構築する研究者。

リンク

ライセンス – Apache 2.0.

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト