Kubeflow Training Operator

Kubeflow Training Operator

PyTorch, TensorFlow, XGBoost, JAX 같은 다양한 ML 프레임워크로 만든 모델의 파인튜닝과 확장 가능한 분산 학습을 쿠버네티스 네이티브로 실행해 주는 컴포넌트가 Training Operator예요. 중앙화된 쿠버네티스 컨트롤러가 분산 학습 작업을 오케스트레이션하고, 쿠버네티스 커스텀 리소스 API나 Training Operator Python SDK로 학습을 제어할 수 있어요.

출처: Kubeflow Training Operator Overview

왜 쓰나요

Training Operator는 AI/ML 라이프사이클의 모델 학습·파인튜닝 단계를 담당해요.

  • 분산 학습·파인튜닝을 단순화해요. 단일 머신에서 시작한 학습을 쿠버네티스 클러스터로 쉽게 확장할 수 있어요.
  • 확장 가능하고 이식 가능해요. 쿠버네티스 클러스터가 있는 어떤 클라우드에도 배포할 수 있고, 다른 프로그래밍 언어로 작성한 자체 ML 프레임워크도 통합할 수 있어요.
  • 쿠버네티스 생태계와 통합돼요. Kueue, Volcano, YuniKorn 같은 고급 스케줄링을 활용해 학습 자원 비용을 아낄 수 있어요.

ML 라이브러리(HuggingFace, DeepSpeed, Megatron-LM 등)를 Training Operator에 통합해 쿠버네티스에서 학습을 오케스트레이션할 수도 있어요. 대규모 모델을 효과적으로 학습하기 위해 쿠버네티스 워크로드를 사용하죠.

프레임워크별 커스텀 리소스

분산 학습을 위해 Training Operator는 ML 프레임워크마다 다음과 같은 쿠버네티스 커스텀 리소스를 제공해요.

ML 프레임워크 커스텀 리소스
PyTorch PyTorchJob
TensorFlow TFJob
XGBoost XGBoostJob
MPI MPIJob
PaddlePaddle PaddleJob
JAX JAXJob

MPIJob 덕분에 쿠버네티스에서 Message Passing Interface(MPI)를 실행해 HPC 작업도 처리할 수 있어요.

더 알아보기