llama + spec: MTP 지원 ( #22673 ) spec: MTP 지원 fix batch size rename files cont :
요약
본 기술 기사는 llama와 spec 관련 기능에 대한 대규모 업데이트 내용을 다루고 있습니다. 주요 내용은 MTP(Multi-Turn Prompting) 지원 강화, speculative decoding의 개선을 위한 GDN 중간 상태 저장 및 부분 롤백 기능을 추가한 것입니다. 또한, 다양한 플랫폼과 아키텍처(macOS, Linux, Windows, Android 등)에 대한 광범위한 호환성 및 최적화 작업이 진행되었으며, 여러 백엔드와 프레임워크 전반에 걸쳐 코드 수정 및 기능 개선이 이루어졌습니다.
핵심 포인트
- MTP(Multi-Turn Prompting) 지원을 강화하고 관련 기능을 정리했습니다.
- Speculative decoding의 효율성을 높이기 위해 GDN 중간 상태를 저장하고 부분 롤백 기능을 추가했습니다.
- llama 모델 아키텍처와 관련된 여러 버그 수정 및 기능 개선이 이루어졌습니다 (예: recurrent memory, checkpointing 로직).
- macOS, Linux, Windows, Android 등 광범위한 운영체제 및 다양한 하드웨어 백엔드를 지원하도록 업데이트되었습니다.
llama + spec: MTP 지원 ( #22673 ) spec: MTP 지원 fix batch size rename files cont : simplify ( #7 ) MTP: 정리 ( #9 ) MTP: 정리 review: llama_graph_type 대신 llama_context_type 사용 review: llama_model_has_mtp 제거 review: 변환 이슈 수정 convert: pycheck 수정 review: 포맷팅 use mtp-를 사용하여 MTP 모델 식별 convert: MTP 변환 수정 mtp -> draft-mtp 사용하지 않는 llama_arch 추가 speculative llama에 need_embd 추가 llama: GDN 모델에 대해 speculative decoding용 partial seq_rm 허용 현재 speculative checkpoint는 일부 draft tokens가 수락되지 않으면 checkpoint부터 다시 시작해야 하며, 이는 타겟을 다시 실행하는 과정에서 낭비를 초래합니다. 이 PR은 GDN 중간 상태를 저장하여 draft_max까지 롤백할 수 있는 기능을 추가합니다. pending state 수정 vulkan: GDN partial rollback 추가 meta: axis 1으로 체크 확장 metal: GDN partial rollback 추가 Metal 백엔드에서 partial rollback 지원을 위해 gated delta net 커널이 중간 상태를 저장하도록 확장합니다. 함수 상수로서 K (snapshot slot count)를 추가합니다. 3D state tensor의 slot 0에서 입력 상태를 읽습니다. 토큰 루프 동안 서로 다른 slot에 중간 상태를 씁니다. K=1인 경우, 하위 호환성을 위해 단일 slot 동작을 유지합니다. Ref: 8c05923 Assisted-by: llama.cpp:local pi delta_net_base: new_tensor 대신 ggml_pad 사용 review: need_rs_seq 추가 review: part_bounded를 n_rs로 이름 변경 review: deslop 주석 review: 이름 변경, asserts 추가 server : checkpoint 로직 조정 ( #11 ) server : checkpoint 로직 조정 cont : rm asserts server-context: 조기 종료(early exit) 수정 spec : n-gram과의 호환성 수정 및 TODO 추가 ( #13 ) metal : 정리 llama : recurrent memory의 잘못된 bitwise check 수정 server : 다른 spec type과 결합된 RS 기반 MTP 비활성화 spec : TODO 추가 cont : 주석 수정 cont : 주석 업데이트 common : ngram + mtp 호환성을 위한 로직 수정 llama-memory: partial rollback을 포함한 checkpointing 활성화 cont: dirty ctx로 로드하기 위한 테스트 케이스 추가 llama-memory-recurrent: clear 시 rs_idx 초기화 download: 수정
mtp path llama-arch: enorm op 수정 docs: docs 업데이트 conversion: 타입 어노테이션 (type annotations) 수정
Co-authored-by: Georgi Gerganov ggerganov@gmail.com
macOS/iOS: macOS Apple Silicon (arm64)
macOS Apple Silicon (arm64, KleidiAI 활성화)
macOS Intel (x64)
iOS XCFramework
Linux: Ubuntu x64 (CPU)
Ubuntu arm64 (CPU)
Ubuntu s390x (CPU)
Ubuntu x64 (Vulkan)
Ubuntu arm64 (Vulkan)
Ubuntu x64 (ROCm 7.2)
Ubuntu x64 (OpenVINO)
Ubuntu x64 (SYCL FP32)
Ubuntu x64 (SYCL FP16)
Android: Android arm64 (CPU)
Windows: Windows x64 (CPU)
Windows arm64 (CPU)
Windows x64 (CUDA 12) - CUDA 12.4 DLLs
Windows x64 (CUDA 13) - CUDA 13.1 DLLs
Windows x64 (Vulkan)
Windows x64 (SYCL)
Windows x64 (HIP)
openEuler: openEuler x86 (310p)
openEuler x86 (910b, ACL Graph)
openEuler aarch64 (310p)
openEuler aarch64 (910b, ACL Graph)
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기