[V2] 모델 배포 방식 Colab vLLM - 100-hours-a-week/6-nemo-ai GitHub Wiki

Version 2 실험:

Colab + vLLM / Transformers 기반 로컬 파인튜닝 모델 서빙 보고서

1. 실험 배경

본 실험은 파인튜닝된 언어 모델을 로컬 환경에서 효율적으로 서빙하는 방법을 탐색하기 위한 목적으로 수행되었습니다.

Version 1에서는 Gemini API를 활용하여 클라우드 기반 추론을 진행했으나, 비용 및 호출 제한 등의 제약으로 인해 로컬 환경 기반의 대안을 모색하게 되었습니다.

Version 2에서는 Colab 환경을 활용한 vLLM 및 Transformers 기반 서빙 방식을 테스트하였고, 이 문서는 그 실험 과정을 기록합니다.


2. 실험 과정 요약

2.1 vLLM + Colab 시도

  • 최초 시도는 vLLM 라이브러리를 활용해 Colab에서 직접 모델 서빙을 시도함.
  • 사용 모델: Gemma 3B
  • 문제 발생:
    • vLLM은 고속 추론에 최적화되어 있으나, 파인튜닝된 모델을 로딩하거나 서빙하는 기능은 미지원.
    • 실험 목적이 파인튜닝 모델 서빙이었기 때문에, vLLM은 본 프로젝트와 맞지 않음.

2.2 Transformers + Colab + FastAPI + ngrok

  • vLLM을 배제하고 HuggingFace transformers 라이브러리를 활용해 파인튜닝된 모델을 로딩함.
  • 사용 모델: Gemma 3B, HyperClova X
  • FastAPI로 inference endpoint를 구성하고, Colab 세션 외부에서 접근 가능하도록 ngrok을 통해 도메인 포워딩함.
  • 실제로 inference 호출은 성공적으로 이루어짐.

3. 주요 문제점 및 한계

  1. Colab 세션 지속성
    • Colab Pro+를 사용하더라도 세션 지속 시간이 제한됨 (12시간 이상 유지 불가).
    • 실서비스 형태로 24시간 동작하기 어려우며, 세션 만료 시 수동 재실행이 필요함.
  2. 비용 문제
    • 한 달에 500 크레딧 제공되지만, 모델 실행 시 자원이 빠르게 소진됨.
    • 특히 HyperClova X와 같이 고사양 GPU (예: L4)와 고용량 RAM을 요구하는 모델은 크레딧 소비가 매우 빠름.
  3. 운영 부담
    • 서비스 타겟이 약 100명 이상임을 고려할 때, Colab 노트북을 병렬로 다수 운영해야 하며, 이는 관리상 복잡도가 큼.
    • 복수의 노트북 세션을 모니터링하고 유지하는 구조는 확장성과 안정성 측면에서 부적합.

4. 결론 및 판단

  • vLLM은 파인튜닝 모델 서빙에 적합하지 않음. 고속 추론 목적의 라이브러리로, 본 프로젝트의 목적과 맞지 않음.
  • Transformers 라이브러리를 통한 모델 서빙은 기능적으로는 가능하지만, Colab 환경의 지속성 제약과 크레딧 소모 속도 등의 문제로 실서비스에는 부적합.
  • Version 1(Gemini API) 대비 비용은 절감될 수 있으나, 운영 자동화 및 세션 유지에 대한 추가 인프라 필요.
  • 결론적으로, Colab + Transformers 조합은 데모 또는 소규모 테스트 용도로는 유효하나, 지속 가능한 서비스 운영 방식으로는 부적절하다고 판단됨.