본문 바로가기

인공지능

KubeAI: 쿠버네티스에서 프라이빗 AI를 손쉽게 운영하는 방법

728x90
반응형

최근 인공지능(AI) 모델의 활용이 급증하면서, 기업들은 데이터 보안과 비용 효율성을 고려하여 자체 인프라에서 AI 모델을 운영하려는 수요가 높아지고 있습니다. 이러한 요구를 충족시키기 위해 KubeAI는 쿠버네티스(Kubernetes) 환경에서 프라이빗 AI를 손쉽게 배포하고 관리할 수 있는 솔루션을 제공합니다.

KubeAI란 무엇인가?

KubeAI는 쿠버네티스 위에서 대규모 언어 모델(LLM), 임베딩, 음성 인식 등 다양한 AI 추론 작업을 수행할 수 있도록 지원하는 오픈소스 AI 추론 오퍼레이터입니다. OpenAI의 API와 호환되는 HTTP API를 제공하여, 기존 OpenAI API를 사용하는 애플리케이션을 별도의 수정 없이 KubeAI로 전환할 수 있습니다.

주요 특징

  • OpenAI API 호환성: KubeAI는 OpenAI의 API와 호환되는 HTTP API를 제공하여, 기존 OpenAI API를 사용하는 애플리케이션을 별도의 수정 없이 KubeAI로 전환할 수 있습니다.
  • 자동 스케일링: 부하에 따라 자동으로 스케일링되어, 필요 시 리소스를 효율적으로 활용합니다.
  • 다양한 모델 서빙: 텍스트 생성 모델(LLM), 음성 인식, 임베딩 등 다양한 AI 모델을 CPU, GPU, TPU 등 여러 플랫폼에서 서빙할 수 있습니다.
  • 모델 캐싱: EFS, Filestore 등 공유 파일 시스템을 통한 모델 캐싱을 지원하여, 모델 로딩 시간을 단축하고 효율성을 높입니다.
  • 제로 의존성: Istio, Knative 등 추가적인 의존성이 없어, 간편하게 배포하고 관리할 수 있습니다.
  • 내장된 채팅 UI: OpenWebUI를 통해 사용자와의 상호작용이 가능한 채팅 인터페이스를 제공합니다.
  • 오픈소스 모델 서버 운영: vLLM, Ollama, FasterWhisper, Infinity 등 다양한 오픈소스 모델 서버를 운영할 수 있습니다.
  • 메시징 통합: Kafka, PubSub 등 메시징 시스템과의 통합을 통해 스트림 및 배치 추론을 지원합니다.

아키텍처

KubeAI는 OpenAI와 호환되는 HTTP API를 제공하며, 관리자는 kind: Model이라는 쿠버네티스 커스텀 리소스를 통해 AI 모델을 구성할 수 있습니다. KubeAI는 모델 오퍼레이터로서 vLLM과 Ollama 서버를 관리합니다.

로컬 환경에서의 빠른 시작

로컬 환경에서 KubeAI를 시작하려면 다음 단계를 따르세요.

1. 로컬 클러스터 생성

KubeAI를 사용하기 위해서는 먼저 로컬 쿠버네티스 클러스터를 생성해야 합니다. 이를 위해 kind나 minikube와 같은 도구를 사용할 수 있습니다. 아래 명령어로 로컬 클러스터를 만듭니다:

kind create cluster
# 또는
minikube start

2. Helm 리포지토리 추가 및 업데이트

KubeAI 설치를 위해 Helm 리포지토리를 추가하고 업데이트해야 합니다. 다음 명령어를 실행하세요:

helm repo add kubeai https://www.kubeai.org
helm repo update

3. KubeAI 설치

이제 Helm을 사용해 KubeAI를 설치할 수 있습니다. 설치 과정은 몇 분 정도 걸릴 수 있으니 기다려 주세요:

helm install kubeai kubeai/kubeai --wait --timeout 10m

4. 모델 설치

KubeAI에서 사용할 모델을 정의하고 설치해야 합니다. 먼저 kubeai-models.yaml 파일을 생성한 후, 필요한 모델들을 아래와 같이 정의합니다:

catalog:
  gemma2-2b-cpu:
    enabled: true
    minReplicas: 1
  qwen2-500m-cpu:
    enabled: true
  nomic-embed-text-cpu:
    enabled: true

그런 다음, Helm을 사용해 모델을 설치합니다:

helm install kubeai-models kubeai/models -f ./kubeai-models.yaml

5. 포드 상태 모니터링

모델이 배포되는 과정을 모니터링하려면 다음 명령어로 포드 상태를 확인하세요:

kubectl get pods --watch

6. 채팅 UI 사용

이제 KubeAI의 채팅 UI에 접근할 차례입니다. 포트 포워딩을 설정하여 로컬 브라우저에서 UI에 접속할 수 있도록 합니다:

kubectl port-forward svc/openwebui 8000:80

브라우저에서 http://localhost:8000로 접속한 후, Gemma 모델을 선택하고 채팅을 시작해 보세요!

 

문서 및 지원

KubeAI에 대한 자세한 설치 방법, 모델 관리, 리소스 프로파일 구성 등은 공식 문서를 통해 확인할 수 있습니다.

결론

KubeAI는 쿠버네티스 환경에서 프라이빗 AI를 손쉽게 배포하고 관리할 수 있는 강력한 도구입니다. OpenAI API와의 호환성, 자동 스케일링, 다양한 모델 서빙 지원 등 다양한 기능을 통해 기업의 AI 운영 효율성을 높일 수 있습니다. 자체 인프라에서 AI 모델을 안전하고 효율적으로 운영하고자 하는 기업이라면 KubeAI를 고려해보시기 바랍니다.

참고 링크

https://github.com/substratusai/kubeai

 

GitHub - substratusai/kubeai: Private Open AI on Kubernetes

Private Open AI on Kubernetes. Contribute to substratusai/kubeai development by creating an account on GitHub.

github.com

 

728x90
반응형