[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. 주요 문제점 및 한계
- Colab 세션 지속성
- Colab Pro+를 사용하더라도 세션 지속 시간이 제한됨 (12시간 이상 유지 불가).
- 실서비스 형태로 24시간 동작하기 어려우며, 세션 만료 시 수동 재실행이 필요함.
- 비용 문제
- 한 달에 500 크레딧 제공되지만, 모델 실행 시 자원이 빠르게 소진됨.
- 특히 HyperClova X와 같이 고사양 GPU (예: L4)와 고용량 RAM을 요구하는 모델은 크레딧 소비가 매우 빠름.
- 운영 부담
- 서비스 타겟이 약 100명 이상임을 고려할 때, Colab 노트북을 병렬로 다수 운영해야 하며, 이는 관리상 복잡도가 큼.
- 복수의 노트북 세션을 모니터링하고 유지하는 구조는 확장성과 안정성 측면에서 부적합.
4. 결론 및 판단
- vLLM은 파인튜닝 모델 서빙에 적합하지 않음. 고속 추론 목적의 라이브러리로, 본 프로젝트의 목적과 맞지 않음.
- Transformers 라이브러리를 통한 모델 서빙은 기능적으로는 가능하지만, Colab 환경의 지속성 제약과 크레딧 소모 속도 등의 문제로 실서비스에는 부적합.
- Version 1(Gemini API) 대비 비용은 절감될 수 있으나, 운영 자동화 및 세션 유지에 대한 추가 인프라 필요.
- 결론적으로, Colab + Transformers 조합은 데모 또는 소규모 테스트 용도로는 유효하나, 지속 가능한 서비스 운영 방식으로는 부적절하다고 판단됨.