ggml-org가 오픈소스 추론 엔진 llama.cpp v0.7.0을 2026년 10월 16일 공개했다. 호스트 메모리에 둔 전문가 혼합(MoE) 모델의 전문가를 GPU의 LRU 캐시에서 실행하는 기능이 들어갔고, 전문가를 호스트로 내려 보낸 경우 디코딩이 최대 약 2.2배 빨라진다고 릴리스 노트는 밝혔다.
캐시 크기는 --moe-cache-mib 옵션으로 정하며, 라이브러리 컨텍스트 매개변수에는 moe_cache_size가 추가됐다. 이 캐시는 여러 GPU에서 함께 쓸 수 있다. 추측 디코딩에서는 LiliCorr 방식이 새로 지원되고, GLM5-Next에는 MTP 추측 디코딩이 들어갔다.1
추측 디코딩과 메모리 옵션
LiliCorr는 DFlash 위에서 작은 트랜스포머 초안 모델로 후보를 고르는 방식이다. 초안 모델 변환과 연산 그래프도 이번에 추가됐다. GLM5-Next의 MTP 추측 디코딩에는 최적화한 희소 어텐션 경로가 쓰인다. 같은 릴리스에서 MTP 초안이 멀티모달 입력을 올바르게 처리하도록 고쳤고, Qwen3.8 Flash Next는 이미지 임베딩을 받는다.
--spec-draft-n-ubatch 옵션을 쓰면 초안 컨텍스트의 배치 크기를 따로 지정해 VRAM을 절약할 수 있다. 초안 샘플링과 거부 처리 오류, DFlash 출력 헤드 공유 문제도 수정했다. KV 캐시가 LLAMA_STATE_SEQ_FLAGS_PARTIAL_ONLY 플래그를 따르도록 바꿔, 초안 체크포인트가 전체 KV를 싣지 않게 했다.1
새로 지원하는 모델
- K2 Horizon: dense와 MoVA 두 변형. 변환, 토크나이저, 채팅 템플릿, -sm tensor 분할을 지원한다.
- Prism Bonsai 2 27B: 3진(ternary) 모델이다.
- EmbeddingGemma-2: 텍스트, 이미지, 오디오를 받는 임베딩 모델이다.
- 결정 모델: LiquidAI d1-3B와 d1-omni-600M, vLLM decision 2와 vLLM d3, pplx-decider. 서버의 /v1/systemone이 이 모델들까지 확장됐다.
- MiniCPM-V 4.7, Nemotron Super 3.5 VL, Nemotron Bolt 74B A9B, maion-coder 아키텍처. Mellum은 MoE 게이팅 매개변수를 GGUF에서 읽는다.
PLaMo-3 토크나이저는 기준 구현과 같은 토큰화 결과를 내도록 사전 분절을 구현했고, LLAMA_VOCAB_TYPE_PLAMO3 어휘 유형이 추가됐다. cohere2 비전 인코더도 지원한다. 리랭커는 classifier_activation을 지원하며, ModernBERT 인코더에는 정확한 GELU를 쓴다.
임베딩 모델은 풀링을 켜면 로짓 버퍼와 LM 헤드를 건너뛴다. 릴리스 노트는 이 경우 VRAM이 최대 10배 적게 든다고 적었다.1
서버와 웹 UI 변경
서버의 기본 포트가 8080에서 9931로 바뀌었다. 기존 설정에 8080을 전제한 사용자는 확인이 필요하다. Docker 이미지는 컨테이너 안에서 8080을 그대로 쓴다.
채팅 계층은 common_chat_session과 feed()·finish() 중심으로 다시 짜였고, 포맷된 채팅 출력은 문자열 하나에서 부분(part)의 배열로 바뀌었다. 이 API를 직접 쓰는 개발자는 호환성을 점검해야 한다.
프롬프트 캐시에는 복원 가능한 슬롯 상태만 저장해서, 리랭크와 임베딩 요청이 캐시를 채우지 않는다. 자식 작업은 빈 슬롯을 우선 쓰고 덮어쓸 상태를 보존한다. 슬롯 저장과 복원은 컨텍스트 체크포인트와 초안 모델 상태를 유지한다. SWA 재사용 임계값의 두 칸 어긋남과 std::regex로 특수 토큰을 이스케이프할 때의 스택 오버플로 충돌도 고쳤다. --slot-save-path에 대응하는 환경 변수 LLAMA_ARG_SLOT_SAVE_PATH도 생겼다.
웹 UI에는 모델 관리자가 들어갔다. 서비스 중인 모든 모델을 한 표에 보여 주며 양자화 버전 펼치기, 검색, 필터, 정렬, 즐겨찾기를 지원한다. 행 단위로 로드와 언로드, 디스크 삭제, 숨김, 이어받기가 되는 다운로드와 진행률 표시를 쓸 수 있고, 옆 서랍에서 모델 정보와 채팅 템플릿을 보고 새 채팅을 시작할 수 있다. 에이전트 턴 기본 한도가 100이 아닌 10으로 떨어지던 오류도 고쳤다.1
ggml 0.27.0과 백엔드
ggml은 v0.27.0으로 올랐다. 백엔드 스케줄러에 가중치 분할 복사와 컴퓨트 버퍼 재할당용 사용자 콜백이 생겼고, RPC 프로토콜은 v8로 올라 텐서 병렬 RPC 서버를 지원한다. 심볼 가시성은 기본값이 숨김이다.
CUDA와 HIP에는 청크 방식 gated-delta-net 커널이 들어갔다. CPU에서는 KleidiAI SME2 k-quant 행렬곱과 AVX2 Q2_0 내적이 추가됐다. Vulkan은 L2를 고려한 coopmat2 스케줄링과 BF16 활성화를 지원하고, SYCL은 재배열 레이아웃 MoE 커널을, OpenCL은 dp4a MoE GEMM을 얻었다. Metal은 텐서 API와 더 넓은 헤드 차원의 플래시 어텐션을, Hexagon은 DMA/HVX 복사 개편과 풀링, 3D im2col 연산을 지원한다.
비연속 뷰와 스트라이드 뷰, 그리드·워크그룹 크기 제한, 범위 밖 접근을 고쳤고, 전문가 ID가 중복될 때의 mul_mat_id 동작도 명확히 했다.1
빌드 b11669는 nightly 시험판으로 표기돼 있다. macOS와 iOS, Linux, Android, Windows용 바이너리와 UI 묶음이 제공되며, openEuler 빌드는 비활성(DISABLED) 상태다.2
출처
- ggml-org/llama.cpp v0.7.0 github.com
- ggml-org/llama.cpp b11669 github.com