llama.cpp 修復純 embedding 模型計算圖為空的問題
llama.cpp 合併 PR #30522,修復純 embedding 模型在未開啟 embeddings 時計算圖為空、輸入始終未被分配的問題:這類模型沒有 logits,且 build_pooling() 在 embeddings 關閉時會提前返回,圖會變空,因此改為在這種情況下也擴充套件 t_embd。
原標題:b11643
閱讀原文
| 評分 | 45 / 40(平均 42,門檻 60) |
| 狀態 | 未入選 |
|---|
原文
graph: keep the graph non empty without embeddings ( #30522 )
An embedding-only graph has no logits, and build_pooling() returns
early when embeddings are off, so since the models no longer expand
t_embd the graph ends up empty and its inputs are never allocated.
Expand t_embd in that case.
Website:
https://llama.app
Attestations:
https://github.com/ggml-org/llama.cpp/attestations/56206571
macOS/iOS:
macOS Apple Silicon (arm64)
macOS Apple Silicon (arm64, KleidiAI enabled) DISABLED
macOS Intel (x64)
iOS XCFramework
Linux:
Ubuntu x64 (CPU)
Ubuntu arm64 (CPU)
Ubuntu s390x (CPU)
Ubuntu x64 (Vulkan)
Ubuntu arm64 (Vulkan)
Ubuntu x64 (CUDA 12) - CUDA 12.8 libraries
Ubuntu x64 (CUDA 13) - CUDA 13.4 libraries
Ubuntu arm64 (CUDA 13) - CUDA 13.4 libraries
Ubuntu x64 (ROCm 10.0)
Ubuntu x64 (OpenVINO)
Ubuntu x64 (SYCL FP32)
Ubuntu x64 (SYCL FP16)
Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide
Android:
Android arm64 (CPU)
Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide
Windows:
Windows x64 (CPU)
Windows arm64 (CPU)
Windows arm64 (OpenCL Adreno)
Windows x64 (CUDA 12) - CUDA 12.4 DLLs
Windows x64 (CUDA 13) - CUDA 13.4 DLLs
Windows arm64 (CUDA 13) - CUDA 13.4 DLLs
Windows x64 (Vulkan)
Windows arm64 (Vulkan)
Windows x64 (OpenVINO)
Windows x64 (SYCL)
Windows x64 (ROCm 10.0)
openEuler:
DISABLED
openEuler x86 (310p)
openEuler x86 (910b, ACL Graph)
openEuler aarch64 (310p)
openEuler aarch64 (910b, ACL Graph)
UI:
UI
相關報導
llama.cpp releasesAI 評分41
llama.cpp 發布 b11537,重點是修復 Gemma 4 的 embedding 相關問題、改進輸入 embedding 的建置邏輯。該版本在 graph 中重排了 embeddings 使用的 get_rows,修好 raw embeddings 路徑,在 Gemma 4 的 embedding 路徑中避免 ple cast,併為 LoRA 留下 TODO。
llama.cpp releasesAI 評分52
llama.cpp 發布 b11597 建置:提取 pooled embeddings 的上下文不再展開 LM head,模型只宣告 t_logits,除非池化型別不是 NONE,set_outputs() 才會展開它,省去了每個 token 的 n_vocab 維 logits 計算和對應的 host buffer。改動同時新增獨立的 build_logits() 來建置 LM head,並在 build_sampling() 之前呼叫;
X @ggerganov● 精選AI 評分69
llama.cpp 已實現對 EmbeddingGemma 2 的 Day-0 支援,由作者 ggerganov 公布。對應 GGUF 權重由 ggml-org 發布在 Hugging Face,可直接下載用於本地推理。Day-0 意味著模型發布當天即可在 llama.cpp 上執行,無需等待社群自行轉換。
llama.cpp releasesAI 評分45
llama.cpp b11436 修復 ggml-openvino 後端的 CI 測試失敗與多項 GPU 迴歸。上游 #29622 給輸入 embedding 圖加入混合 token/embd 分支,後端改為只從計算節點建置 OV 模型,並把同型別連續 DUP 按 CONT 翻譯以避免圖被拆分,修復了 CPU 與 GPU 上首個單 token decode 失敗;
llama.cpp releasesAI 評分48
llama.cpp 發布 b11412,修復 k-pool 模型(qwen4exp、glm5-next)解碼時意外重新預留計算圖並中止的問題。原因是兩模型按 cache_safe、n_tokens 等 reserve 無法預知的狀態分支,解碼圖與預留圖節點數不一致(如 7564 對 7762),解碼時被迫按當前狀態重預留、丟掉最壞情況尺寸,在 GGML_SCHED_DEBUG_REALLOC=1 下直接 abort。