Running three AI models on one local server when your VRAM doesn't cover all of them
개요
VRAM 용량이 세 가지 AI 모델을 동시에 로드하기에 부족한 로컬 서버에서 Whisper, bge-m3, Gemma 모델을 순차적으로 로드하여 활용하는 방법을 제시한다.
주요 내용
* 하드웨어 제약 극복을 위한 순차적 로딩: 로컬 워크스테이션의 VRAM이 세 개의 AI 모델(Whisper, bge-m3, Gemma)을 동시에 로드하기에 충분하지 않아, 하드웨어 증설이나 다중 머신 구성 대신 필요할 때마다 모델을 로드하고 사용 후 언로드하는 순차적 로딩 방식을 채택했다.
* 모델 선택 기준 및 성능:
* bge-m3: 한국어/영어 혼합 문서의 임베딩 정확도 향상을 위해 기존의 MiniLM-L6-v2에서 bge-m3로 변경했으며, VRAM 소모 증가에도 불구하고 정확도 향상을 확인했다. 첫 로딩 시 bge-m3의 로딩 시간이 더 길다는 점을 관찰했다.
* Whisper: 30분 녹음 파일의 전사(transcription)에 medium.en 모델을 사용했으며, 약 2분 이내의 속도로 VRAM 사용량 대비 충분한 정확도를 보였다.
* Gemma: 스크린샷 및 스캔 문서의 이미지 분석을 위해 Gemma, LLaVA, MiniCPM-V 등을 테스트한 결과, Gemma가 문서 중심 이미지 분석에 가장 높은 정확도를 보였다. Gemma의 처리 시간은 입력 이미지 해상도에 따라 크게 달라질 수 있음을 확인했다.
* 실제 적용 및 안정성: 순차적 로딩 설정은 몇 주간 OOM(Out Of Memory) 오류 없이 안정적으로 작동하고 있으며, 개별 모델들은 독립적으로 작동하고 이를 순차적으로 체인하여 처리하는 코드가 구현되었다.
시사점
이 접근 방식은 제한된 하드웨어 환경에서도 여러 AI 모델을 효과적으로 활용할 수 있는 실용적인 해결책을 제시하며, VRAM 제약이 있는 환경에서 AI 모델을 구축하려는 사용자들에게 적용 가능하다.
댓글
GitHub Discussions