Uzun soluklu yapay zeka etkileşimlerinin sırrı daha fazla VRAM değil de daha akıllı veri yönetimi olsaydı ne olurdu? Yıllardır büyük dil modellerinin bağlam pencerelerinin artan maliyetleriyle boğuşuyoruz. Şimdi, npm kayıt defterindeki yeni bir oyuncu olan gni-compression, özellikle LLM konuşma verileri için kayıpsız sıkıştırmanın sınırlarını zorlayarak önemli bir sıçrama vadediyor.
Bu, bildiğimiz gzip veya brotli formatlarından sadece biri değil. napi-rs aracılığıyla JavaScript için Rust yerel bir ikili program olarak sarmalanan gni-compression paketi, alan odaklı bir yaklaşımla tasarlanmış. Temel yeniliği, doğrudan pakete eklenmiş önceden eğitilmiş bir sözlük (gcdict.bin) içinde yatıyor. Kapsamlı LLM konuşma veri kümeleri üzerinde eğitilen bu sözlük, sıkıştırıcının bu özel etkileşimlerde bulunan yaygın dil kalıplarını ve token’ları tanımasını ve verimli bir şekilde kodlamasını sağlıyor.
Bu Yeni Sıkıştırıcı Gerçekten İşe Yarıyor mu?
Sayılar, dedikleri gibi, yalan söylemez. Beş farklı halka açık veri kümesi üzerinde brotli-6 ile kıyaslanan gni-compression, tutarlı bir şekilde daha iyi performans gösteriyor. Sonuçlar çarpıcı:
| Veri Kümesi | GN Oranı | Tasarruf | brotli-6 |
|---|---|---|---|
| WildChat | 4.94x | 79.8% | ~2.1x |
| ShareGPT | 8.65x | 88.4% | ~2.0x |
| LMSYS | 10.38x | 90.4% | ~2.1x |
| Ubuntu IRC | 8.40x | 88.1% | ~1.2x |
| Claude sohbetleri | 12.40x | 91.9% | ~1.9x |
Bu, 12.40x’e varan sıkıştırma oranı anlamına geliyor ve bazı veri kümelerinde %90’dan fazla tasarruf sağlıyor. Buradaki sürpriz performans gösteren, çok kısa ve sık tekrarlanan mesajlardan oluşan bir veri kümesi olan Ubuntu IRC. brotli-6 bu tür verilerle mücadele ederken (sadece 1.2x oran elde ederken), gni-compression parlıyor. Bu, paketin gücünü vurguluyor: Alanına özgü sözlüğü, genel amaçlı algoritmaların tökezlediği yerlerde, özellikle kısa ve yüksek oranda tekrar eden mesaj dizilerinde üstünlük sağlıyor.
Bu Kadar Yüksek Sıkıştırmayı Nasıl Başarıyor?
Teknik altyapı büyüleyici. gni-compression, her şeyi tek bir sıkıştırma akışına atmıyor. Bunun yerine, girdi verilerini akıllıca iki farklı akışa ayırıyor: biri token kimlikleri için, diğeri ise ham baytlar için. Token kimlikleri, önceden eğitilmiş kelime dağarcığına referans veren kompakt tam sayılardır. Sıkıştırıcı bilinen bir diziyi veya kelimeyi karşılaştığında, onu karşılık gelen kimliğiyle değiştirerek veri boyutunu önemli ölçüde azaltıyor. Ham akış, sözlükle eşleşmeyen kalan verileri yakalıyor - bu artık veri daha sonra GCdict uygulanmış deflate kullanılarak sıkıştırılıyor.
Bu iki yönlü yaklaşım anahtar. Token kimliği akışı, yüksek tekrarlardan dolayı inanılmaz derecede küçülür. Ham akış, daha az tahmin edilebilir olsa da, token kimlikleri üzerinde zaten gerçekleştirilmiş olan anlamsal sıkıştırmadan faydalanır. Verimliliği en üst düzeye çıkaran zarif bir iş bölümü.
İfade uzunluğu analizi, ilginç bir dağılım ortaya koyuyor. Yazar, kelime dağarcığının belirgin bir boşlukla iki modlu bir dağılım sergilediğini gözlemledi. Kısa dolgu token’ları (min uzunluk 4-5) önemli ölçüde azalırken, daha uzun ifadeler (min uzunluk 10+) için tekrar önemli bir düşüş görülüyor. En önemlisi, 5 ila 9 karakter arasındaki ifadeler için kelime dağarcığı kullanımında göreceli bir düşüş var. Bu, gni-compression‘ın konuşma gürültüsünü ve yaygın, kısa ifadeleri budama konusunda özellikle yetenekli olduğunu gösteriyor; bu da sıkıştırılmış bağlam kullanıldığında az çok iyileşmiş aşağı akış model performansı hakkındaki anekdotsal raporları açıklayabilir - sinyal-genlik oranı iyileşiyor.
gni-compression’a Giden Uzun Yol
Bugün piyasaya sürülen şey, odaklanmış bir geliştirme çabasının doruk noktası. Yolculuk, kayıpsız mesaj kurtarma sağlayan güçlü bir seri hale getirme katmanının oluşturulmasıyla yedi makale önce başladı. Bu temel çalışmadan tam teşekküllü, yüksek performanslı bir npm paketine geçiş, çeşitli engellerin aşılmasını gerektirdi. Başlangıçta, saf bir JavaScript uygulaması brotli-6‘nın gerisinde kaldı. Çığır açan gelişme, Rust uygulaması ve GCdict işlem hattının etkili entegrasyonuyla geldi. Bir diğer önemli zorluk ise yuvarlanma veri bütünlüğüydü: ham bölünmüş format, orijinal arabellek olmadan doğrudan bir tersine sahip değildi. Mimariyi harmanlanmış bir format etrafında yeniden oluşturmak bu kritik sorunu çözdü.
Tek bir veri kümesine aşırı uyum sağlamadan çeşitli veri kümeleri arasında etkili bir şekilde genelleme yapan bir sözlük eğitmek de özenli bir süreçti. npm’deki sürüm geçmişi kendi başına bir hikaye anlatıyor; 3.x sürümleri önceki harmanlanmış işlem hattını, 4.x ise nihai API’yi temsil ediyor.
Zaten LLM’leriniz Varken Neden Bunu Oluşturdunuz?
gni-compression‘ın arkasındaki itici güç, Claude, GPT ve yerel Ollama modelleri arasında sorunsuz etkileşimleri kolaylaştırmak için tasarlanmış kalıcı bir yapay zeka aracı iskele olan NN Dash‘in geliştirilmesidir. Nihai hedef: sürdürülebilir, çok oturumlu yapay zeka ilişkilerini ekonomik olarak uygulanabilir kılmak. Çok binlerce mesajlık bağlam pencerelerinin önemli maliyeti, uzun süreli, uygun maliyetli yapay zeka etkileşimleri için önemli bir engel olmuştur. gni-compression, céu kesici token faturaları olmaksızın bu genişletilmiş bağlamları mümkün kılan motordur.
Bu projenin arkasındaki algoritmik titizlik, NLNet hibesi almasını sağlayacak kadar sağlamdır, bu da resmi akademik yazıların potansiyelini göstermektedir.
Kullanın:
npm install gni-compression
const { compress, decompress } = require('gni-compression');
const longContext = Buffer.from("Çok uzun LLM konuşma dizgeniz burada...");
const compressed = await compress(longContext);
const restored = await decompress(compressed);
// restored, longContext ile aynı olacaktır (kayıpsız)
Kaynak kodu GitHub’da MIT lisansı altında mevcuttur: github.com/atomsrkull/glasik-core. Sayılar, metodoloji veya potansiyel kullanım alanları hakkındaki geri bildirimler aktif olarak memnuniyetle karşılanmaktadır.
🧬 İlgili İçgörüler
- Daha Fazlasını Okuyun: API Yönlendirme: Sloganların Ötesinde [2026]
- Daha Fazlasını Okuyun: Swift 6.3 Android’i Açıyor – C Birlikte Çalışabilirliği Güçleniyor