解決上游與 Prism 格式差異導致的相容性問題
過去要在 ik_llama.cpp 以外的分支運行 Ternary Bonsai 2 相當困難,因為上游 llama.cpp 使用 QK=256 的 TQ2_0 區塊大小,而 PrismML 官方分支則使用 QK=128 的 PQ2_0。
這種差異導致在其他分支嘗試將層卸載到 CUDA 時,會因 Hadamard 符號張量的處理方式而出現效能瓶頸或執行錯誤。
隨著最新提交合併進 ik_llama.cpp,現在已能在 CUDA 和 CPU 上提供完整的原生支援,不再需要依賴 PrismML 的專屬分支。
上游權重可無損轉換為優化格式
若使用者已從 PrismML 下載原生的 PQ2_0 GGUF 檔案,可直接使用;但若持有的是上游 TQ2_0 或 TQ1_0 檔案,ik_llama.cpp 現已內建轉換腳本。
透過執行 python3 scripts/repack_ternary_to_prism.py 指令,可在數秒內將上游格式無損重新打包為 PQ2_0 格式。
此過程保留精確的三值(trits)數據,無需進行重新量化,確保模型權重的完整性與一致性。
NVIDIA GPU 完整卸載不再出現 Token 錯誤
針對 PQ2_0 格式的原生 CUDA 核心已合併至專案中,使用者可將所有層完全卸載至 NVIDIA GPU。
使用 -ngl 99 參數即可進行完整卸載,過程中不會出現 Token 損壞或回退到較重的 k-quants 的情況。
這意味著在支援的硬體環境下,三值模型現在能原生地在 GPU 上執行推理工作,不再受限於先前因 Hadamard 符號張量處理導致的瓶頸或錯誤。
CPU 推理需啟用執行期重新打包以加速提示詞處理
在 CPU 環境進行測試時,ik_llama.cpp 採用由 iqk_mul_mat 核心支援的 8 行交錯格式(PQ2_0_R8)。
為了顯著加速提示詞(prompt)的處理速度,使用者必須在執行指令中加入 -rtr 1 參數以啟用執行期重新打包功能。
若未加上此參數,將無法獲得原文所述「顯著加速提示詞處理」的效果。




