피드로 돌아가기
Hugging Face BlogBackend
원문 읽기
llama.cpp가 라우터 모드를 추가해 재시작 없이 여러 모델을 동적으로 로드·언로드·전환 가능
New in llama.cpp: Model Management
AI 요약
Context
llama.cpp 서버는 단일 모델만 실행할 수 있어 모델 전환 시 서버를 재시작해야 했다. 사용자들은 Ollama 스타일의 모델 관리 기능 도입을 요청했다.
Technical Solution
- 라우터 모드 도입: 모델 지정 없이 서버 시작 시 자동으로 캐시된 모델 감지 및 로드
- 멀티프로세스 아키텍처 구현: 각 모델이 독립적인 프로세스에서 실행되어 한 모델 크래시가 다른 모델에 영향 없음
- 자동 감지 기능: LLAMA_CACHE 또는 ~/.cache/llama.cpp 디렉토리 또는 --models-dir 플래그로 지정한 경로에서 GGUF 파일 자동 스캔
- 온디맨드 로딩: 요청 시점에 모델을 자동으로 메모리에 로드
- LRU 제거 정책: --models-max (기본값: 4)에 도달하면 가장 최근에 사용되지 않은 모델을 언로드하여 VRAM 확보
- 요청 라우팅: 요청 내 model 필드로 어떤 모델이 처리할지 결정
- 개별 모델 설정: 모든 모델이 라우터 전역 설정을 상속하며, --models-preset config.ini를 통해 모델별 커스텀 설정 지원
Key Takeaway
멀티프로세스 격리 설계로 안정성을 확보하면서 LRU 제거 정책으로 제한된 리소스 환경에서 여러 모델을 효율적으로 관리할 수 있다.
실천 포인트
로컬 LLM 서빙 환경에서 여러 모델 간 빠른 전환이 필요한 경우, llama.cpp의 라우터 모드를 사용하면 서버 재시작 없이 curl 요청 또는 웹 UI 드롭다운으로 모델을 즉시 교체할 수 있고, --models-max로 동시 로드 수를 제한해 VRAM 부족을 예방할 수 있다.