Janas-LLM, NVMe 스트리밍으로 RAM 초과 MoE 모델 실행… llama.cpp 대비 생성 속도 대폭 향상
핵심 내용
Janas-LLM이 32GB RAM 노트북에서 48.4GB MoE 모델 생성 속도 24 tok/s를 달성했다.
자세히 보기
Janas-LLM은 순수 C로 작성된 실험적 추론 엔진으로, NVMe SSD에서 전문가(Expert) 가중치를 스트리밍하여 시스템 RAM보다 큰 Mixture-of-Experts(MoE) LLM을 실행할 수 있게 한다. Maurizio "camauri" Cammalleri가 개발했으며, 자주 사용되는 전문가를 메모리에 캐싱하고 나머지는 토큰 단위로 디스크에서 가져오는 방식이다. Linux와 Windows를 지원한다.
성능 벤치마크
Intel Core Ultra 9 185H, 32GB DDR5 RAM, 1TB NVMe SSD가 장착된 노트북에서 llama.cpp(build 2b18470, Vulkan 백엔드)와 비교 테스트를 진행했다. 시스템 RAM을 초과하는 Qwen3-Next-80B-A3B(48.4GB) 모델의 경우:
- Janas-LLM: 62 tok/s(프롬프트) / 24 tok/s(생성)
- llama.cpp: 16 tok/s(프롬프트) / 2.8 tok/s(생성)
다른 MoE 및 밀도 모델에서도 상당한 성능 향상을 보였다. Qwen3-Coder-Next는 22 tok/s vs 2.2 tok/s, Qwen3-30B-A3B는 32 tok/s vs 15 tok/s로 측정됐다. 다만 3비트 양자화된 Qwen3-30B-A3B의 경우 프롬프트 읽기 속도는 Janas가 느렸으나 생성 속도는 3배 빨랐다.
아키텍처 및 기능
핵심 라이브러리는 외부 의존성 없이 동작하며, 디스크 접근에 O_DIRECT를 사용하고 메모리를 공격적으로 관리한다. 주요 기능은 다음과 같다:
- 초안 생성 지원: Qwen3.5/3.6/Next 및 Gemma 4 모델에 Multi-Token Prediction(MTP)을 구현했다. 모델에 따라 초안 생존율은 63%에서 89% 사이이다.
- 서비스: 대화용
janas-chat, OpenAI 호환 HTTP API용janas-server, MCP 서버 통합용janas-mcp를 포함한다. - 리소스 관리:
--cache <GiB>로 메모리 사용량을 제한하고JANAS_GPU=0으로 GPU 가속을 비활성화할 수 있다.
한계 및 안정성
프로젝트는 초기 개발 단계로 API가 불안정하다. 시스템 리소스를 한계까지 사용하므로 스와핑이 발생하면 데스크톱 지연이나 GPU 드라이버 재설치가 일어날 수 있다. 브라우저 등 다른 애플리케이션이 실행 중일 때 성능이 약 75%로 저하되고 디스크 대기 시간이 5배 증가한다. 현재 특정 Intel 하드웨어에서만 검증되었으며 AMD 및 독립 GPU 구성은 테스트되지 않았다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.