llama.cpp v0.7.0 릴리스 노트
요약
llama.cpp v0.7.0 릴리스 노트는 성능 최적화와 모델 지원 확장에 초점을 맞추고 있습니다. 특히 MoE expert를 위한 새로운 GPU 캐시(`--moe-cache-mib`)가 추가되어 디코드 속도가 최대 2.2배 향상되었으며, LiliCorr 및 GLM5-Next 같은 고급 스페큘레이티브 디코딩 기술이 도입되었습니다.
핵심 포인트
- MoE expert용 GPU 캐시로 디코드 속도 최대 2.2배 향상
- LiliCorr 및 GLM5-Next 등 최신 디코딩 기술 지원
- K2 Horizon, EmbeddingGemma-2 등 대규모 신규 모델 지원
- 새로운 결정(decision) 모델과 리팩토링된 API 제공
개요
llama.cpp v0.7.0에서는 LiliCorr speculative decoding 기술과 GLM5-Next를 위한 MTP가 추가되었으며, 호스트 메모리에 보관되는 MoE expert를 위한 새로운 GPU 캐시(--moe-cache-mib, expert 오프로드 시 최대 ~2.2배 디코드 속도 향상)와 대규모 신규 모델들을 지원합니다: K2 Horizon (dense 및 MoVA), Prism Bonsai 2 27B, EmbeddingGemma-2 (text+vision+audio), LiquidAI d1/d1-omni 및 vLLM decision 2/d3 decision 모델, pplx-decider, MiniCPM-V 4.7, Nemotron Super 3.5 VL / Nemotron Bolt, 그리고 maion-coder입니다. 서버는 리팩토링된 chat session API(common_chat_session, 부분 기반 형식화 출력), 훨씬 개선된 슬롯 및 프롬프트 캐시 복원 동작, 새로운 아키텍처를 위한 decision-model 지원, 그리고 새로운 기본 포트(9931)를 갖게 되었으며, 웹 UI는 전체 모델 관리자 기능을 얻었고, ggml은 v0.27.0으로 업데이트되었습니다.
주요 변경 사항
-
호스트 메모리 MoE expert용 새 GPU 캐시(
--moe-cache-mib): expert가 LRU 캐시에서 실행되어 디코드가 최대 2.2배 빨라졌습니다 #29887 -
expert 캐시가 여러 GPU에 걸쳐 공유됩니다 #30112
-
LiliCorr speculative decoding: DFlash 위에 작은 draft transformer를 사용한 후보 선택 기능 #30506
-
GLM5-Next: 최적화된 sparse attention path를 가진 MTP speculative decoding #29928
-
dense 및 MoVA 변형 모두에서 K2 Horizon 지원: 변환, 토크나이저, 채팅 템플릿,
-sm tensor분할 #29535 -
Prism Bonsai 2 27B ternary 모델 지원 #29600
-
EmbeddingGemma-2: text + vision + audio 임베딩 모델 #30054
-
새로운 결정 모델: LiquidAI d1-3B, d1-omni-600M, vLLM decision 2, vLLM d3 및 pplx-decider #30110 #30114 #30378 #30383 #30044
-
PLaMo-3 토크나이저가 정확한 토큰화 패리티를 위해 참조 전(reference pre-segmentation)을 구현함 #30045
-
RPC 서버가
-sm tensor(텐서 병렬 RPC, RPC 프로토콜 v8)를 지원하게 됨 #26610 -
서버가 기본적으로 포트 9931에서 수신 대기함 (이전에는 8080이었음) #30159
API 변경 사항
-
include/llama.h: 호스트-전문가 GPU 캐시를 위한 새로운moe_cache_size컨텍스트 매개변수 #29887 -
include/llama.h: 새로운LLAMA_VOCAB_TYPE_PLAMO3어휘 타입 #30045 -
include/llama.h:llama_perf_context_data가 추론 중 그래프 재할당을 보고함 #30329 -
include/llama.h: 풀링 타입이 NONE이 아닌 경우embeddings가 LM 헤드를 건너뜀 #30445 -
include/llama.h: 컨텍스트에 상태 임베딩이 없는 경우llama_batch_ext_set_embd_state가 false를 반환하며, M-RoPE 순서가 문서화됨 #30506 -
tools/server: 채팅 레이어가feed()/finish()를 사용하는common_chat_session을 중심으로 재구성됨 #30210 -
tools/server: 포맷된 채팅 출력이 단일 문자열 대신 파트(parts) 배열이 됨 #30389 -
tools/server: 기본 수신 포트가 9931로 변경되었습니다 (Docker 이미지는 컨테이너 내부에서 8080을 유지합니다) #30159
새로운 모델(New models)
- K2 Horizon: dense 및 MoVA 변형에 대한 변환, 토크나이저, 채팅 템플릿 및
-sm tensor지원 #29535 - Prism Bonsai 2 27B (ternary) #29600
- EmbeddingGemma-2: 텍스트 + 비전 + 오디오 임베딩 #30054
- LiquidAI d1-3B 및 d1-omni-600M 결정 모델 #30110 #30114
- vLLM decision 2 및 vLLM d3 모델 #30378 #30383
- pplx-decider 결정 모델 #30044
- MiniCPM-V 4.7 멀티모달 모델 #29416
- Nemotron Super 3.5 VL 및 Nemotron Bolt 74B A9B #30520
- maion-coder 아키텍처 #29778
- Mellum: GGUF에서 MoE 게이팅 파라미터를 읽고 RoPE 처리를 통합함 #30578
- LiliCorr draft 모델 변환 및 그래프 #30506
- Rerankers:
classifier_activation지원, ModernBERT 인코더에 대한 정확한 GELU #29692 #30108
핵심 변경 사항(Core changes)
-
Speculative decoding: GLM5-Next, LiliCorr drafts에 대한 MTP 지원, MTP 그래프에서 mtmd 처리 수정 #29928 #30506 #30257
-
Speculative decoding: 통합된 행 크롭(row cropping) 및 플래그 변경 시 스케줄 재예약(sched re-reserve)을 통해 공유 nextn 텐서 플래그 지원 #30097 #30017 #30020
-
Speculative decoding: 초안 샘플링(draft sampling) 및 거부 처리 개선, DFlash 출력 헤드 공유 지원 #30095 #30111
-
별도의 초안 컨텍스트 배치(draft context batch) 크기를 지정하고 VRAM을 절약할 수 있는 새로운
--spec-draft-n-ubatch추가 #30459 -
MoE 전문가 캐시(expert cache): 호스트 메모리 전문가를 장치 LRU 캐시에서 제공받고, 여러 GPU에 걸쳐 지원 가능 #29887 #30112
-
임베딩 모델(Embedding models): 풀링이 활성화된 경우 로짓 버퍼(logits buffer)와 LM 헤드(LM head)를 건너뛰어 VRAM을 최대 10배까지 절약 #30255 #30445
-
임베딩 그래프(Embedding graphs):
get_rows재정렬, 불필요한t_embd확장 및 남은ggml_cont호출 제거 #30160 #30461 #30198 -
No-cache 어텐션(attention): 패딩된 KV 차원 및 KQ 편향 처리, 그래프 재할당 방지 #30416 #30446 #30439
-
k-pool 모델: 인과 마스크 레이아웃에 선택 기능 내장, 공유 시퀀스에서 스캐터 데이터 경쟁 조건 수정 #30480 #29994
-
GLM5-Next 희소 어텐션(sparse attention): gather 경로 제거 #30042
-
KV 캐시:
LLAMA_STATE_SEQ_FLAGS_PARTIAL_ONLY를 존중하여 초안 체크포인트가 전체 KV를 포함하지 않도록 함 #30514 -
프리페칭(Prefetching): 시스템 프리페치 호출 전에 범위 병합, 외부 범위를 백엔드 버퍼에 매핑하지 않도록 함 #30532 #30405
-
샘플링(Sampling): 적격한 온도 0 체인에 대한 탐욕적 선택, ubatch 전반에 걸쳐 백엔드 샘플링 그래프 고정 #29797 #30223
-
토크나이저(Tokenizers): PLaMo-3 사전 분할 및 FiM 토큰, Unigram에 대한 선택적 NFC 정규화, 엄격한 UTF-8 검증 #30045 #30090 #30390 #30485
-
Jinja: 루프 변수 스코핑 수정, Python 호환
tojson렌더링, 더 빠른 컨텍스트 복사 #30533 #30483 #30362 #30562 -
모델 분할(Model split): 장치에서 여유 메모리를 보고하지 않을 때 레이어 균등 분배 #29677
멀티모달리티 변경 사항
mtmd_build_inp_attn_mask추가: 비(非)인과적 멀티모달 어텐션 마스크 생성을 위해 #30259- cohere2 비전 인코더 지원 추가 #30062
- MTP 드래프트가 이제 mtmd 입력을 처리하며, Qwen3.8 Flash Next에서 이미지 임베딩을 수용함 #30257 #30397
- 새로운 멀티모달 아키텍처: MiniCPM-V 4.7, Nemotron Super 3.5 VL, EmbeddingGemma-2 (비전 + 오디오) #29416 #30520 #30054
서버 변경 사항
-
/v1/systemone확장: 새로운 의사결정 모델(d1-3B, d1-omni, vLLM decision 2/d3, pplx-decider) 지원 #30110 #30114 #30378 #30383 #30044 -
생성된 텍스트와 토큰이 이제 파서 입력으로 누적되어, 토큰 인식 파싱을 준비함 #29876
-
프롬프트 캐시: 복원 가능한 슬롯 상태만 저장되므로, 재순위화(rerank) 및 임베딩 요청이 더 이상 캐시를 채우지 않음 #30498
-
프롬프트 캐시: 자식 작업은 빈 슬롯을 선호하고, 덮어쓸 상태를 보존함 #30567
-
고정된 바쁜 슬롯(pinned busy slot)은 요청이 실행될 때까지 건드리지 않음 #30295
-
SWA 재사용 임계값에서 오프셋 2 오류(off-by-two)를 수정하여 복원된 상태가 폐기되는 문제를 해결했습니다 #30580
-
std::regex를 사용하여 특수 토큰을 이스케이프할 때 발생하던 스택 오버플로우 충돌을 수정했습니다 #30243 -
--slot-save-path를 위한 환경 변수LLAMA_ARG_SLOT_SAVE_PATH가 추가되었습니다 #30272 -
새로운 컴포넌트별 서버 테스트가 도입되었으며, vendored cpp-httplib이 0.61.0으로 업데이트되었습니다 #30312 #30494 #30134 #30081
UI 변경 사항
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기