쿠버네티스가 AI, ML, LLM를 위한 플랫폼인 이유

2023. 9. 6. 21:18AI/LLM

728x90
반응형

Kubernetes는 MSA 같은 워크로드 뿐만 아니라,
LLM과 같은 대규모 인공 지능(AI) 및 머신 러닝(ML) 워크로드의 전체 라이프사이클을 지원하는 데 이상적인 플랫폼입니다. 

2022년, Red Hat의 컨테이너 워크로드 현황에 대한 보고서에 따르면 응답자의 76%가 데이터베이스 또는 데이터 캐시 시스템을 구축했으며, 65%가 인공 지능 및 머신 러닝 워크로드에 쿠버네티스를 사용했습니다. 웹 서버가 59%, 로깅 및 모니터링 솔루션이 58%, 데이터 수집/분석이 56%로 그 뒤를 이었습니다.



Kubernetes는 언어 모델을 구축, 학습 및 배포하는 데 있어 지배적인 플랫폼으로 부상하여 AI 환경을 혁신하고 있습니다.
Kubernetes에서 AI/ML 워크로드를 호스팅하면 확장성, 유연성, 네트워크 추상화, 더 나은 사용자 경험 등 많은 이점을 제공합니다.
Kubernetes를 사용하면 가장 적합한 도구와 기술을 사용하여 AI/ML 워크로드를 쉽게 빌드, 학습 및 배포할 수 있습니다.

 

실제 성공 사례 (Real-world success stories)

OpenAI의 클러스터는 7,500개 이상의 노드로 구성되어 있으며, 대규모 언어 모델과 분산형 머신 러닝 워크로드를 지원합니다. Slurm과 같은 대안이 있지만, K8S는 더 유리한 개발자 환경과 클라우드 네이티브 통합을 제공합니다. 또한 컨테이너 배포, 이기종 노드 관리, 동적 인프라 요소 처리의 유연성과 용이성을 제공합니다.

 


"이제 연구팀은 실험을 쉽게 시작하고 10배 또는 50배까지 확장할 수 있으며 관리에 거의 수고를 들이지 않고도 Kubernetes를 기반으로 구축한 프레임워크를 활용할 수 있습니다." - 크리스토퍼 버너, OpenAI 인프라 책임자
출처: https://kubernetes.io/case-studies/openai/

Azure의 여러 데이터 센터에서 Kubernetes를 실행하는 OpenAI는 노드 간에 병렬 작업과 일괄 작업을 가능하게 하는 클러스터 전체 MPI 커뮤니케이터의 이점을 누리고 있습니다. Kubernetes는 배치 스케줄링 시스템 역할을 하며, 오토스케일러는 동적 확장을 보장하여 유휴 노드 비용을 줄이면서 지연 시간을 낮게 유지합니다. 게다가 매우 빠릅니다. 분산 훈련 시스템을 연구하는 연구원들은 몇 달이 아닌 며칠 만에 실험을 스핀업하고 확장할 수 있습니다.

Kubernetes를 채택함으로써 OpenAI는 향상된 이식성을 누리며 클러스터 간에 연구 실험을 쉽게 이동할 수 있습니다. Kubernetes가 제공하는 일관된 API는 이 프로세스를 간소화합니다. 또한 OpenAI는 Azure와 함께 자체 데이터 센터를 활용할 수 있으므로 비용을 절감하고 가용성을 높일 수 있습니다.

 




최근에는 대규모 언어 모델(LLM)을 효율적이고 효과적으로 개발, 교육 및 배포하려는 조직에서 활용하고 있는 등 새로운 사용 사례에 매우 유용하다는 것이 입증되었습니다. LLM의 전체 수명 주기에 걸쳐 포괄적인 지원을 제공하므로 여러 기술 스택에 걸쳐 복잡한 프레임워크를 통합할 필요가 없으며, 사전 교육부터 배포, 실험 및 앱 구축에 이르기까지 LLM 수명 주기의 각 단계에서 사용할 수 있는 다양한 이점이 있습니다.

The advantages at each stage

Model pre-training

모델 사전 학습 단계에서 Kubernetes는 탁월한 확장성과 탄력성을 제공합니다. 리소스 수요에 따라 자동으로 확장 및 축소할 수 있는 이 기능은 특히 대규모 컴퓨팅 성능을 필요로 하는 AI/ML 워크로드에 가장 큰 장점 중 하나입니다. 또 K8S는 파드의 수명 주기를 자동화하여 이를 달성하며, 파드에 오류가 발생하면 자동으로 종료되고 다시 시작됩니다. 즉, 자가 복구가 가능합니다. 


LLM과 프롬프트 엔지니어링을 실험하려면 Jupyter 노트북이나 VS Code와 같은 도구가 필요하며, K8S의 네트워킹 추상화를 통해 데이터 과학자는 이러한 도구에 연결하여 매우 쉽게 개발 환경을 구축할 수 있습니다. 또한 포트 포워딩과 구성 관리가 자동화되어 최종 사용자를 위한 작업 공간 프로비저닝과 클러스터 관리자를 위한 환경 및 네트워킹 관리가 간소화됩니다.

Model fine-tuning

K8S에는 LLM 개발에 필요한 모든 툴이 포함되어 있지만, 현재 많은 기업들은 모델을 처음부터 새로 구축하는 것이 아니라 기존 모델을 가져와 특정 상황에 맞게 커스터마이징하고 파인튜닝하고 있습니다. 이 시나리오에서 기존 모델을 사용하여 파인튜닝을 수행하려는 경우, 매우 다이나믹하기 때문에 K8S가 이상적입니다. K8S는 여러 워크로드를 동시에 처리할 수 있어 트레이닝 프로세스가 훨씬 더 효율적입니다. 또 다른 장점은 모델 학습을 위해 K8S과 통합되는 풍부한 도구와 에코시스템에 관한 것입니다. Kubeflow(Pytorch, Tensorflow, MPI용 연산자 포함), KubeRay Operator, MLflow가 그 예입니다.

 

Model deployment

LLM 자체 또는 추론을 위한 모델 서비스를 배포할 때, 데이터 과학자에게 제공할 엔드포인트만 있으면 되는 간소화된 프로세스를 Kubernetes에서 제공합니다. K8S는 로드 밸런서, 인그레스 컨트롤러, 네트워크 정책 등을 통해 모델 배포를 위한 포괄적인 도구 세트와 풍부한 에코시스템을 제공합니다. 이를 통해 LLM 엔드포인트를 원활하게 배포하고 서비스 및 애플리케이션에 통합할 수 있습니다. 

인프라 추상화는 배포 프로세스를 더욱 간소화하여 확장성과 자동 확장 기능을 보장합니다. K8S는 모든 기본 인프라를 추상화하여 컨테이너 관리를 위한 공통 API로 간소화하므로 워크로드가 실행되는 위치에 관계없이 동일한 도구와 프로세스를 사용할 수 있습니다. 따라서 프로덕션 환경의 관리와 모니터링이 크게 간소화됩니다.

출처: https://www.run.ai/blog/why-kubernetes-is-the-platform-for-genai

 


 

다음은 ChatGPT에게 물어본 GPT-3같은 LLM(대규모 언어 모델)이 Kubernetes가 필요한 이유입니다.

확장성: 대규모 언어 모델은 보통 리소스 집약적(resource-intensive)입니다. Kubernetes는 컴퓨팅 파워를 쉽게 확장, 축소할 수 있어 리소스 할당을 효율적으로 관리할 수 있도록 도와줍니다.

로드 밸런싱: Kubernetes는 로드 밸런싱을 제공합니다. 이는 요청을 언어 모델의 여러 인스턴스에 분산하여 높은 트래픽 부하를 처리하는 데 유용할 수 있습니다.

고가용성: Kubernetes는 다양한 배포 방식을 지원하여 언어 모델의 가용성을 높이고 다운타임 없이 업데이트할 수 있도록 합니다.

리소스 관리: Kubernetes는 리소스 활용도를 모니터링하고 관리하기 위한 도구를 제공하여 대규모 언어 모델 실행의 성능과 비용 효율성을 최적화하는 데 도움을 줍니다.

유연성: Kubernetes는 다양한 클라우드 제공업체 또는 온프레미스에 배포할 수 있으므로 조직이 인프라를 유연하게 선택할 수 있습니다.


 

다양한 문서들에서 AI/ML에 Kubernetes가 적합한 이유와, 장점을 말하고 있습니다.

One of the biggest advantages of Kubernetes is its ability to scale up or down dynamically based on the demand for resources.

출처: https://www.linkedin.com/pulse/host-aiml-workloads-kubernetes-prasad-telasula

 

Kubernetes는 효율적인 리소스 활용을 가능하게 하고 머신 러닝 워크로드를 원활하게 확장할 수 있도록 지원하며 인프라 관리에 대한 선언적 접근 방식을 제공합니다.

출처: https://www.datacamp.com/tutorial/containerization-docker-and-kubernetes-for-machine-learning

 

Kubernetes의 observability나 관리 영역 중 몇몇은 특히 AI와 ML에 적합합니다.

출처: https://www.techtarget.com/searchitoperations/tip/Manage-complexity-in-Kubernetes-with-AI-and-machine-learning

 

 


결론

 

EC2를 비롯한 클라우드 컴퓨팅 환경에서 모델을 돌리고 있는 회사들이 많다.

K8S로 옮겨오면 얻을 수 있는 이점은 대표적으로 효율적인 리소스 활용이다. (GPU 인스턴스는 비용도 크고, 수요도 많다.)

Kubeflow, MLflow, Argo Workflows 등 Kubernetes에서 동작하는 워크플로우 엔진에 대한 수요가 늘지 않을까

ML, LLM 프로세스 전반을 이해하는 Kubernetes 전문가가 되면 MLOps, LLMOps 포지션으로 어필할 수 있지 않을까

'AI > LLM' 카테고리의 다른 글

LLM으로 알아보는 RAG  (0) 2024.04.14
Stable Diffusion이란?  (0) 2024.04.08
LLMOps란?  (0) 2023.08.30
MLOps, DataOps, AIOps란?  (0) 2023.08.27