TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 26 READS

Vulkan으로 GGUF 모델 돌리는 단일 Go 바이너리 'Janus'

Vulkan으로 GGUF 모델 돌리는 단일 Go 바이너리 'Janus'
SOURCE IMAGE · HACKER NEWS

로컬에서 대형 언어 모델을 돌리려는 개발자에게 지금까지 가장 흔한 조합은 Ollama나 llama.cpp 같은 런타임에 CUDA나 ROCm 같은 벤더별 가속 스택을 얹는 방식이었다. 이 구성은 잘 작동할 때는 편리하지만, GPU 제조사와 드라이버, 파이썬 환경, 컨테이너 설정이 얽히면서 설치와 유지보수가 번거로워지는 경우가 많다. 최근 Hacker News에 공개된 'Janus'는 이 지점을 겨냥한 프로젝트다. Go로 작성된 단일 실행 파일 하나로 로컬 GGUF 모델을 구동하고, OpenAI 호환 API를 외부에 노출하는 것을 목표로 한다.

무엇을 하는 도구인가

Janus의 핵심 주장은 간결하다. 하나의 Go 바이너리가 .gguf 형식의 모델 파일을 사용자의 머신에서 GPU 또는 CPU로 실행하고, 그 결과를 OpenAI와 호환되는 API 엔드포인트로 제공한다는 것이다. 제작자는 파이썬도, 도커도, 별도의 Ollama도 필요 없다는 점을 전면에 내세운다. 모델 추론 자체는 llama.cpp에 의존하는데, Janus는 이를 직접 번들하지 않고 빌드 과정에서 미리 컴파일된 llama.cpp의 Vulkan 라이브러리(윈도우의 llama.dll, 리눅스의 libllama.so)를 끌어와 바이너리 옆에 두는 구조를 택했다.

여기서 눈여겨볼 대목이 가속 백엔드로 Vulkan을 택했다는 점이다. 원제에 드러나듯 Janus는 AMD, Intel, Nvidia 세 진영의 GPU에서 동일하게 Vulkan을 통해 모델을 돌리는 것을 지향한다. CUDA는 Nvidia 전용이고 ROCm은 AMD에 묶여 있는 반면, Vulkan은 그래픽 API이면서도 폭넓은 하드웨어에서 지원되기 때문에, 벤더에 상관없이 같은 방식으로 GPU 가속을 얻으려는 선택으로 읽힌다. 특히 ROCm 지원이 제한적인 환경의 AMD GPU나 내장 그래픽을 쓰는 Intel 사용자에게는 현실적인 대안이 될 수 있다.

실무에서 어떻게 쓰나

사용 흐름은 단순하다. models\ 폴더에 .gguf 파일을 넣으면 되고, 직접 받기 번거로운 경우를 위해 다운로더가 함께 제공된다. 윈도우에서는 build.ps1 스크립트가 llama.cpp의 Vulkan DLL을 내려받고 dist\janus.exe를 컴파일하며, 이미 빌드된 상태라면 run.ps1만 실행하면 된다. 구동하면 브라우저에서 http://127.0.0.1:8990이 열린다. 디스크 용량은 모델 크기에 맞춰 잡아야 하는데, 모델당 보통 2~8GB에 Janus와 llama 라이브러리용으로 약 50MB를 더하면 된다고 안내한다.

노출되는 API가 OpenAI 호환이라는 점은 도입 비용을 크게 낮춘다. curl이나 PowerShell, 각종 스크립트에서 명령줄로 호출할 수 있을 뿐 아니라, Cursor나 Cline 같은 코딩 도구를 비롯해 OpenAI 클라이언트를 지원하는 거의 모든 애플리케이션의 엔드포인트만 로컬 주소로 바꿔 끼우면 그대로 연동된다. 이미 OpenAI API를 전제로 짜인 사내 파이프라인이나 에디터 플러그인을, 코드 수정 없이 로컬 모델로 전환해 테스트해볼 수 있다는 뜻이다. 이는 외부로 데이터를 내보내기 어려운 보안 환경이나, API 호출 비용을 줄이려는 개발 단계에서 특히 의미가 있다.

한계와 남은 질문

다만 공개된 정보만으로 판단할 때 Janus는 아직 초기 단계의 프로젝트로 보인다. 설치와 빌드 안내가 PowerShell 스크립트 중심으로 짜여 있어 1차 대상이 윈도우 환경임을 짐작하게 한다. 리눅스의 경우 libllama.so를 바이너리 옆에 두거나 LD_LIBRARY_PATH에 등록해야 한다는 조건만 제시될 뿐, 빌드 절차가 윈도우만큼 다듬어져 있다고 보기는 어렵다. 또한 지원 모델 범위, 동시 요청 처리, 토큰 생성 속도 같은 성능 지표나 벤치마크는 제공된 내용에 담겨 있지 않아, 실제 처리량이 CUDA 기반 구성과 어떻게 비교되는지는 직접 확인해봐야 한다.

Vulkan 백엔드 자체도 양면적이다. 폭넓은 호환성이라는 장점은 분명하지만, 특정 Nvidia GPU에서 고도로 최적화된 CUDA 커널만큼의 성능이 나오는지는 하드웨어와 모델에 따라 달라질 수 있다. 결국 Janus가 주는 가장 큰 가치는 최고의 속도라기보다, 벤더 중립적이고 의존성이 가벼운 로컬 추론 서버를 바이너리 하나로 세울 수 있다는 운영상의 단순함에 있다. 사내에서 다양한 GPU가 섞여 있거나, 파이썬·도커 스택을 얹기 부담스러운 환경이라면 평가해볼 만하다. 프로젝트는 기여를 받고 있으며 관련 지침은 CONTRIBUTING.md에 정리돼 있다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/Vibra-Ingenn/Janus
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...