Janus: Vulkan 지원 및 OpenAI 호환 API를 갖춘 로컬 LLM 서버
Janus는 GPU 또는 CPU에서 로컬로 .gguf 모델을 실행하도록 설계된 단일 Go 바이너리로, Cursor 및 Cline과 같은 클라이언트와 원활하게 통합할 수 있는 OpenAI 호환 API를 제공합니다. llama.cpp를 Vulkan을 통해 활용함으로써, Python, Docker 또는 Ollama 런타임 없이도 AMD, Intel, NVIDIA GPU에서 하드웨어 가속 추론을 가능하게 합니다.
핵심 기능 및 기술적 능력
Janus는 llama.cpp를 가볍게 감싸는 래퍼로, 로컬 모델 배포를 간소화합니다. 주요 기술적 장점은 다음과 같습니다:
- 다양한 제조업체 GPU 가속: Vulkan 백엔드를 사용하여 AMD, Intel, NVIDIA GPU를 포함한 광범위한 하드웨어를 지원하며, 호환 가능한 그래픽 하드웨어가 없는 시스템에는 CPU 백엔드를 기본으로 제공합니다.
- OpenAI 호환 API:
/v1/chat/completions및/v1/models와 같은 표준 엔드포인트를 구현하여, 호환 클라이언트에서 OpenAI의 즉시 대체 가능하도록 합니다. - 동적 모델 관리: 서버를 재시작하지 않고도
/models/load엔드포인트를 통해.gguf모델을 실시간으로 교체할 수 있습니다. - 이해 모델 지원:
</tool_call>추론 블록을 별도의reasoning_content필드로 분리하여 "사고" 모델을 특별히 처리합니다. - 자동 구성: GGUF 메타데이터에서 채팅 템플릿을 자동 탐지하여 수동 프롬프트 포맷팅의 필요성을 줄입니다.
시스템 요구 사항 및 배포
Janus는 최소한의 종속성 오버헤드를 위해 설계되었으며, 소스에서 빌드하려면 Go 1.22+만 필요합니다.
플랫폼 지원
| 플랫폼 | 요구 사항 |
|---|---|
| Windows | Windows 10/11, Go 1.22+, Vulkan 대응 GPU 권장 |
| Linux | Go 1.22+, Vulkan 또는 CPU |
| macOS | Go 1.22+, CPU 백엔드 (Vulkan 지원은 다양함) |
구성 매개변수
사용자는 .env 파일을 통해 서버를 구성합니다. 주요 변수는 다음과 같습니다:
INFERENCE_BACKEND:vulkan,cpu, 또는openrouter로 설정합니다.JANUS_GPU_LAYERS: GPU 오프로딩을 제어합니다 (-1은 모든 레이어를 GPU에,0은 CPU만 사용).JANUS_VRAM_CEILING_MB: 메모리 할당을 관리하기 위한 VRAM 예산 힌트를 제공합니다.JANUS_MODEL_PATH:.gguf모델 파일의 절대 경로 또는 상대 경로입니다.
API 엔드포인트
Janus는 상태 모니터링, 모델 관리 및 추론을 위한 여러 엔드포인트를 노출합니다:
| 메서드 | 경로 | 설명 |
|---|---|---|
GET |
/health |
라이브니스 체크 (자세한 상태를 보려면 ?deep=true 사용) |
GET |
/v1/models |
사용 가능한 모델 목록 출력 |
POST |
/v1/chat/completions |
스트리밍 지원 채팅 인터페이스 |
POST |
/models/load |
활성 모델 실시간 교체 |
GET |
/models/list |
모델 디렉터리 내에 있는 사용 가능한 .gguf 파일 목록 출력 |
GET |
/engine/status |
현재 VRAM 사용량 및 백엔드 정보 반환 |
커뮤니티 분석 및 비판적 시각
일부 사용자에게 Janus는 설정 프로세스를 단순화하지만, Hacker News의 기술 커뮤니티는 그 활용성과 성능에 대해 여러 가지 지적을 제기했습니다.
llama.cpp와의 중복성
일부 사용자는 Janus가 llama.cpp의 네이티브 llama-server보다 추가적인 가치를 제공하지 않는다고 주장합니다.
"이것은 libllama를 감싸는 래퍼처럼 보입니다. 뭐가 의미가 있나요? Llama.cpp는 이미 웹 서버를 제공합니다. README에 라마.cpp가 이미 지원하는 기능이 무엇인지 보이지 않습니다."
하드웨어 성능
특히 Intel 하드웨어에서 Vulkan 백엔드의 효율성에 대한 우려가 제기되었습니다. 다른 백엔드에 비해 상당한 오버헤드를 유발할 수 있다고 지적됩니다.
"제가 본 바로는 Intel 하드웨어에서 Vulkan은 많은 오버헤드를 추가합니다."
벤치마크 부족
비판자들은 vLLM, SGLang, ExLlama와 같은 고성능 추론 엔진과의 성능 비교 데이터가 부족하다고 지적하며, 생산 환경이나 고처리량 사용 사례에서의 효율성을 평가하기 어렵다고 언급했습니다.
Sources
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트