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 클러스터로 확장할 수 있는 다단계 실험을 구축하는 연구원.
링크
- Docs: https://www.union.ai/docs/v2/flyte/user-guide/running-locally/
- SDK reference: https://www.union.ai/docs/v2/byoc/api-reference/flyte-sdk/
- CLI reference: https://www.union.ai/docs/v2/byoc/api-reference/flyte-cli/
- Backend details:
docs/BACKEND_README.md - Community: Slack, GitHub Discussions, Issues.
라이선스 – Apache 2.0.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트