본문 바로가기

컨퍼런스

24.09.24 컨퍼런스 정리 - Kubeflow, Karpenter 사용 LLMOps 아키텍처


  • 발표자 : MicroSoft 민학준 (Andrew Min)

Kubeflow 란?

  • 최신 내용인 RAG / 프롬프트 엔지니어링 과는 거리가 멀다.
  • AI 모델러들의 Fine Tuning 중심으로 활용가능한 솔루션
  • Istio, CertManager 등의 별도 오픈소스를 다수 활용한다.
  • 주요기능은 다음과 같음
    • KF Pipeline : 워크플로우를 코드베이스로 구성하기
    • Notebook : AI 모델러에게 분석환경 제공
    • Dashboard : UI 대시보드 제공
    • Auto ML : Katib 를 통한 AutoML
    • Model Training : FineTuning 통합 인터페이스, 분산 학습 작업 실행
    • K Serving : 모델 아티팩트 기반 서빙

Karpenter 란?

  • AWS 에서 구현한 Node AutoScaler, MS, GCP 에서 따라가는중
  • Cluster Autoscaler 에 비해 노드 프로비저닝 시간이 빠름
  • De-Provisioning 성능이 좋음 (스케일 인)
  • NodePool, NodeClass 등 CRD 제공
  • Toleration Preset 을 통해 특정 테인트(아마 성능별) 걸린 노드에 파드를 할당시키기 편리함

GPU Driver 의사결정

  1. AKS GPU 인스턴스 OS 이미지 활용
  2. Nvidia Device Plugin (Daemon Set)
  3. Nvidia GPU Operator
    결론은 GPU OPerator 사용함.
    Option #1 은 OS 버전이 너무 낮았고, Option #2는 LLM 을 올리기 위한 추가 설정이 필요했음

맞닥뜨린 문제

MiniO 를 통해 디스크 비용 절감을 활용중이었음.
개발 진행 과정에서 MiniO 의 일부 기능인 MiniO GW 가 Deprecated 로 변경됨.
Blobfuse 기반으로 변경 (솔직히 이부분 잘 이해 못했음….?)


컨테이너 이미지의 Caching

컨테이너 이미지 Pull시 최소 10GB 정도 되는 이미지 필요 (작성자: ML 이미지는 컨테이너 이미지가 거대함…)
GPU 인스턴스는 비싼데, 이미지 Pull 받는동안 GPU 는 놈, 열받음…..
=> Azure 에서 컨테이너 Pre-Loading 하는 기능이 24년 11월에 나온다고 함. 이를 기다리고 있음


실습 링크

깃헙 : https://github.com/HakjunMIN/kubeflow-karpenter-aks