Friday, May 16, 2025
Show HN: KVSplit – Run 2-3× longer contexts on Apple Silicon https://ift.tt/PB0N7IV
Show HN: KVSplit – Run 2-3× longer contexts on Apple Silicon I discovered that in LLM inference, keys and values in the KV cache have very different quantization sensitivities. Keys need higher precision than values to maintain quality. I patched llama.cpp to enable different bit-widths for keys vs. values on Apple Silicon. The results are surprising: - K8V4 (8-bit keys, 4-bit values): 59% memory reduction with only 0.86% perplexity loss - K4V8 (4-bit keys, 8-bit values): 59% memory reduction but 6.06% perplexity loss - The configurations use the same number of bits, but K8V4 is 7× better for quality This means you can run LLMs with 2-3× longer context on the same Mac. Memory usage scales with sequence length, so savings compound as context grows. Implementation was straightforward: 1. Added --kvq-key and --kvq-val flags to llama.cpp 2. Applied existing quantization logic separately to K and V tensors 3. Validated with perplexity metrics across context lengths 4. Used Metal for acceleration (with -mlong-calls flag to avoid vectorization issues) Benchmarked on an M4 MacBook Pro running TinyLlama with 8K context windows. Compatible with Metal/MPS and optimized for Apple Silicon. GitHub: https://ift.tt/mxNnqv6 https://ift.tt/mxNnqv6 May 17, 2025 at 01:34AM
Subscribe to:
Post Comments (Atom)
Show HN: I successfully failed at one-shot-ing a video codec like h.264 https://ift.tt/bD1uJCQ
Show HN: I successfully failed at one-shot-ing a video codec like h.264 Read an article yesterday about the H.264 codec increasing their lic...
-
Show HN: Music player for big local collections with mpd support mpz is a C++/Qt music player focused on UX, with derectory tree and playlis...
-
Show HN: Stickerbox, a kid-safe, AI-powered voice to sticker printer Bob and Arun here, creators of Stickerbox. If AI were built for kids, w...
-
Show HN: HCB Mobile – financial app built by 17 y/o, processing $6M/month Hey everyone! I just built a mobile app using Expo (React Native) ...
No comments:
Post a Comment