80GB 모델을 32GB 램에서 실행하는 Janas, llama.cpp보다 2배 이상 빠르다
원제 Janas: Run LLMs larger than RAM by streaming experts from SSD
132 포인트댓글 41
Key Point
32GB 메모리 제약에서 48GB 모델을 실행하면서 llama.cpp보다 2배 이상 빠른 속도를 달성한 새로운 방식이 기존 로컬 LLM 실행 방식의 성능 한계를 크게 개선한다.
핵심 요약
- Janas-LLM은 48GB의 Qwen3-Next-80B 모델을 32GB 램의 노트북에서 실행하는 도구로, 모델 가중치를 디스크에 유지하면서 필요한 전문가(expert) 블록만 NVMe SSD에서 스트리밍한다.
- 같은 테스트 환경(32GB 메모리, Intel Core Ultra 9 185H, Arc 통합 GPU)에서 llama.cpp와 비교한 결과 모든 모델에서 Janas가 더 빠르며, Qwen3-Next-80B의 프롬프트 읽기 속도는 62 tok/s 대 16 tok/s, 토큰 생성은 24 tok/s 대 2.8 tok/s로 우월했다.
- Qwen3.5-0.8B 같은 소형 모델은 프롬프트 읽기에서 939 tok/s, 토큰 생성 130 tok/s에 도달했으며, 드래프팅 기능(다음 토큰 예측과 검증)을 활용하면 생성 속도를 최대 2배까지 높일 수 있다.
- 본 프로젝트는 초기 개발 단계의 실험이며, C로 작성되었고 외부 의존성 없이 Linux(Ubuntu 22.04, Debian 12 이상) 및 Windows 10/11 x86-64에서 실행된다.
- 전문가 캐시는 열 때 여유 메모리를 점유하고 답변 중에 나머지 모델을 디스크에서 읽으며, 다른 프로그램이 실행 중이면 성능이 저하되지만 부드럽게 성능 감소가 일어난다.
- janas-chat 명령어로 대화를 시작하거나 janas-server로 HTTP API 및 코드 완성 기능을 제공할 수 있으며, OpenAI 호환 인터페이스를 따르고 MCP 클라이언트와 통합이 가능하다.
- Hugging Face에서 이미 변환된 모델을 다운로드하거나 GGUF 파일을 직접 변환할 수 있으며, 측정된 환경(Debian 13, Mesa 26.1.6 Vulkan, 1TB NVMe)에서만 철저히 테스트되었다.
- llama.cpp와의 비교 실험에서 llama.cpp는 메모리 부족으로 Qwen3-Next-80B를 GPU로 실행할 수 없었으나, Janas는 약 19GB의 전문가 캐시로 디스크에서 나머지를 읽으며 옵션 없이 실행되었다.
- 벤치마크는 janas-bench 도구로 측정되었으며 256 토큰 프롬프트와 64 토큰 생성의 3회 반복 평균값이고, 다른 머신에서는 성능이 다를 수 있어 사용자가 janas-bench 보고서를 제출하기를 권장한다.
- 윈도우 11에서도 유사한 성능을 보였으나(Qwen3-4B 프롬프트 읽기 346 tok/s), 단일 개발자 머신(Intel Core Ultra 9 185H)에서만 테스트되어 다른 CPU나 GPU, 느린 디스크에서의 동작은 미검증 상태다.
- GNU GPL 3 라이선스 하에 공개되었으며, 변환된 .jns 파일은 원본 모델의 라이선스를 유지하고, 프로젝트는 llama.cpp, ggml과의 성능 비교, Qwen과 Google Gemma 모델, 오픈소스 라이브러리들의 기여를 명시했다.