로컬에서 거대 모델을 돌리는 개발자들이 3년 반을 기다린 끝에, llama.cpp가 11월 13일 버전 1.0.0을 출시했다. 이 C/C++ 추론 엔진의 첫 공식 메이저 릴리스이자, 2023년 3월부터 커밋 번호를 버전으로 써 온 프로젝트가 처음으로 시맨틱 버저닝을 도입한 사례다. 함께 제공되는 텐서 라이브러리 ggml도 동시에 1.0.0을 출시했고, 두 프로젝트는 이제 공개 C API의 비호환 변경은 메이저 릴리스에서만 이뤄진다고 약속한다.
1.0.0에서 실제로 바뀐 것
가장 큰 변화는 정리다. 1.0.0은 폐기 예정이던 공개 함수 35개와 워밍업 설정, 조각 모음 임계값 같은 오래된 옵션을 삭제하고, NextN 추측 디코딩 API를 확장 헤더에서 메인 llama.h 헤더로 승격시켜 새 버전 약속의 보호 범위 안에 넣었다. 새 기능으로는 OCP FP8 형식 KV 캐시, 혼합 전문가 모델용 호스트 메모리 전문가 캐시, 별도 GGUF 샤드에서 외부 PLE 또는 engram 데이터를 불러오는 기능이 있다. 공식 설명에 따르면 llama.cpp는 현재 150종 이상의 모델 아키텍처 변형과 모든 주류 추측 디코딩 방식을 지원한다.
이번 업그레이드의 영향을 받는 사람
직접적인 영향은 llama.cpp 위에 구축된 도구들, 대표적으로 Ollama와 LM Studio 같은 로컬 AI 앱이 받는다. 이들은 커밋 번호를 따라갈 때마다 조마조마하는 대신, 마침내 안정적인 공개 API에 의존할 수 있게 됐다. 기성 앱만 쓰는 일반 사용자에게 버전 번호 자체는 눈에 보이는 변화가 없다. 이점은 향후 업그레이드가 더 예측 가능해지고 호환성 문제가 줄어든다는 점이다. 다만 한 가지 경고가 있다. 1.0.0 자체가 정리 릴리스이기 때문에, 삭제된 API를 쓰는 앱은 업그레이드 전에 코드를 먼저 수정해야 하며, 바이너리만 교체해서는 안 된다. 로컬 배포의 문턱은 바뀌고 있다. 최근 사례가 145B 모델을 노트북에 집어넣은 Edge0이다.
안정적이라는 것이 영원히 바뀌지 않는다는 뜻은 아니다
시맨틱 버저닝 약속은 구체적이다. 메이저 버전은 공개 C API의 비호환 변경에 해당하고, 마이너 버전은 호환성을 깨지 않고 기능을 추가하며, 패치 버전은 버그만 수정한다. 다만 대상은 공개 C API이지, 모델 출력이나 성능, 모든 명령줄 옵션이 아니다. 공식은 배포 채널도 빠짐없이 제시했다. 사전 빌드 산출물은 Linux, macOS, Windows, Android, iOS를 지원하고, Docker, Debian, Homebrew, conda-forge, MacPorts, Winget도 함께 제공된다. 로컬 AI 생태계는 '돌아가면 된다'에서 '인터페이스에 약속이 있다'로 이동했다. 1.0.0의 의미는 바로 여기에 있다.