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-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.py 또는 flyte serve serving.py env로 실행합니다.

시작하기 – 이 저장소는 빠른 로컬 테스트를 위한 DevBox와 바로 사용할 수 있는 GitHub Codespaces 템플릿을 제공합니다. 10분 분량의 Colab 노트북(ten_minutes_to_flyte.ipynb)을 통해 새로운 사용자가 기초를 익힐 수 있습니다.

적합한 용도 – Flyte 2는 다음과 같은 경우에 유용합니다:

  • 새로운 DSL을 배울 필요 없이 재현 가능한 버전 관리 파이프라인이 필요한 데이터 과학 팀.
  • 자동화된 컨테이너 처리를 통해 모델을 서비스로 배포하는 ML 엔지니어(FastAPI 등).
  • 로컬에서 실행하거나 나중에 Kubernetes 클러스터로 확장할 수 있는 다단계 실험을 구축하는 연구원.

링크

라이선스 – Apache 2.0.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트