BeeLlama.cpp: 고급 DFlash 및 TurboQuant를 통한 추론, 비전 지원
요약
BeeLlama.cpp는 기존 llama.cpp의 기능을 확장하여, DFlash 투기적 디코딩(speculative decoding), TurboQuant/TCQ KV-캐시 압축, 적응형 초안 제어 등 고급 최적화 기술을 통합한 성능 중심의 포크입니다. 이 도구는 단일 RTX 3090과 같은 소비자급 GPU 환경에서도 Qwen 3.6 27B와 같은 대규모 모델을 높은 컨텍스트 길이(200k) 및 비전 기능 지원과 함께 구동할 수 있게 합니다. 특히, KV 캐시 압축과 동적 초안 제어 메커니즘은 메모리 효율성과 추론 속도를 극대화하여 로컬 LLM 배포의 한계를 크게 확장합니다.
핵심 포인트
- DFlash 투기적 디코딩을 통해 추론 속도와 정확성을 동시에 향상시킵니다.
- TurboQuant/TCQ를 사용하여 KV 캐시를 압축함으로써, 제한된 VRAM 환경에서 대규모 컨텍스트(200k) 처리가 가능합니다.
- 적응형 초안 제어 및 다양한 오버라이드 기능을 제공하여 런타임에 추론 파라미터를 정교하게 조정할 수 있습니다.
- 멀티모달 지원을 포함하여, 단일 GPU 환경에서도 대규모 언어 모델의 복잡한 작업을 안정적으로 처리합니다.
요약하자면, 새로운 llama.cpp 포크입니다! 저는 RTX 3090 한 장비에서 Qwen 3.6 27B Q5 모델을 투기적 디코딩(speculative decoding), 높은 컨텍스트 길이, 과도한 양자화 없이 구동하고 비전 기능을 활성화하는 Windows 친화적인 추론 환경을 원했습니다. (이는 llama.cpp에 MTP PR이 올라오기 전의 상황이었습니다.)
그래서 저는 오래된 트릭을 사용했습니다. 일주일 또는 2주 동안 한 달 분량의 작업을 처리하기 위해 새벽 4시까지 여러 번 밤을 새웠습니다. 이 모든 것을 작동시키려다 머리카락도 꽤 많이 빠뜨렸지만, 이제 제대로 된 해결책을 갖게 되어 공유하고자 합니다.
Anbeeld's BeeLlama.cpp
GitHub 저장소: https://github.com/Anbeeld/beellama.cpp
BeeLlama.cpp (또는 그냥 Bee)는 로컬 GGUF 추론에서 더 많은 속도와 컨텍스트를 뽑아내기 위해 성능에 초점을 맞춘 llama.cpp 포크입니다. 익숙한 llama.cpp 도구 및 서버 흐름을 유지하면서, DFlash 투기적 디코딩(speculative decoding), 적응형 초안 제어(adaptive draft control), TurboQuant/TCQ KV-캐시 압축, 그리고 추론 루프 보호 기능을 추가했으며, 전체 멀티모달 지원까지 제공합니다.
페가수스(pegasus)는 아니지만, 충분히 가깝습니다.
RTX 3090 또는 4090 한 장비에서 Q5 + 실질적으로 손실 없는 KV 캐시 200k 컨텍스트 길이 + 비전 기능을 실행하기 위한 플러그 앤 플레이 Qwen 3.6 27B 설정을 소개합니다.
포크 기능
- DFlash speculative decoding:
--spec-type dflash는 대상 모델과 함께 DFlash 초안(draft) GGUF를 구동합니다. 대상 모델은 은닉 상태(hidden states)를 레이어별 4096 슬롯 링 버퍼에 캡처하고, 드래프터(drafter)는 가장 최근의--spec-dflash-cross-ctx은닉 상태 토큰에 크로스 어텐션(cross-attention)을 수행하여 대상 모델 검증을 위한 초안을 제안합니다. - TurboQuant / TCQ KV-cache 압축: 4x부터 7.5x까지의 압축률을 갖는 다섯 가지 캐시 유형(
turbo2,turbo3,turbo4,turbo2_tcq,turbo3_tcq)이 있으며, 비트 수가 높은 옵션은 많은 경우 실질적으로 무손실입니다.--cache-type-k와--cache-type-v를 사용하여 독립적으로 설정합니다. - 적응형 draft-max 제어: 서버는 고정된
--spec-draft-n-max를 사용하는 대신 런타임에 활성 초안 지평(active draft horizon)을 조정합니다. 기본profit컨트롤러는 추측 처리량(speculative throughput)을 비추측 기준선과 비교하며,fringe대안은 수용률(acceptance-rate) 범위를 초안 깊이로 매핑합니다. - 완전한 멀티모달 지원:
--mmproj가 활성화되면 서버는 텍스트 생성을 위해 평평한 DFlash를 유지합니다. 모델은 VRAM 압력을 줄이기 위해 CPU에 완전히 오프로드(offloaded)될 수 있으며 문제가 없습니다. - 추론 루프 보호: 서버는 반복되는 은닉 추론 출력을 감지하고 개입합니다. 기본 모드는
--reasoning-loop-window와--reasoning-loop-max-period튜닝을 사용할 수 있는force-close입니다. - 샘플링된 DFlash 검증:
--spec-draft-temp는 거부 샘플링(rejection-sampling) 드래프터 동작을 활성화합니다. 초안과 대상 모델의 온도가 모두 0을 초과할 때 활성화됩니다. 초안 로그 확률(Draft log probabilit)
ies must be available for rejection sampling to produce correct output.
- DDTree branch verification: 선택적 플래그
--spec-branch-budget은 메인 초안 경로를 넘어선 브랜치 노드를 GPUparent_ids, 트리 마스크, 재귀 트리 커널과 함께 추가합니다. 대상 모델이 여러 GPU에 걸쳐 있을 경우 자동으로 비활성화됩니다. 이 기능은 작업 진행 중입니다! - 요청 레벨 추측 오버라이드 (Request-level speculative overrides): 서버를 재시작하지 않고도 JSON 필드를 통해 요청별로 Draft-max 및 브랜치 예산(branch budget)을 오버라이드할 수 있습니다.
- CopySpec 모델 비추측 (CopySpec model-free speculation):
--spec-type copyspec은 초안 모델 없이 이전 토큰에 대한 롤링 해시 접미사 매칭을 제공합니다.
전체 기능 및 공개 저장소 비교를 위해
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기