Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kvprs

Pure Rust port of NVIDIA's kvpress - KV cache compression for transformer models.

Features

  • Zero Python dependencies - pure Rust + Candle
  • Multiple compression algorithms
  • Trait-based design for easy extension

Compression Algorithms

Algorithm Description Use Case
KNormPress L2 norm-based pruning General purpose
SnapKVPress Recent attention window Streaming/chat
StreamingLLMPress Attention sink preservation Long sequences
ExpectedAttentionPress Statistical prediction Highest quality
RandomPress Random selection Baseline/testing

Usage

use kvprs::{KNormPress, Press, CompressionContext, ModelConfig};

// Create a press with 50% compression
let press = KNormPress::new(0.5);

// Compress KV cache
let ctx = CompressionContext::new(keys, values, config);
let (compressed_keys, compressed_values) = press.compress(&ctx)?;

Installation

[dependencies]
kvprs = { git = "https://github.com/..." }  # Update with actual URL

Or as a path dependency:

[dependencies]
kvprs = { path = "../kvprs", package = "kvpress-rs" }

Testing

cargo test

All 6 tests passing.

License

Apache-2.0

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages