Lm.rs: Bağımlılıksız Rust tabanlı minimal CPU LLM çıkarım tekniği
(github.com/samuel-vitorino)lm.rs: Rust ile CPU üzerinde yerel dil modeli çıkarımı çalıştırma
-
Giriş
- lm.rs, Rust kullanarak CPU üzerinde dil modeli çıkarımı çalıştırabilen bir projedir.
- Karpathy'nin llama2.c ve llm.c projelerinden ilham alır; ML kütüphaneleri olmadan, mümkün olan en az kodla dil modellerini çalıştırabilecek şekilde tasarlanmıştır.
- Başta yalnızca Google'ın Gemma 2 modelini destekliyordu, artık Llama 3.2 modeli ve PHI-3.5 görüntü modelini de destekliyor.
-
Hazır modeller
- Çeşitli model ve tokenizer'lar için benchmark ve indirme bağlantıları sunuluyor.
- Q8_0 ve Q4_0 kuantize modellerin kullanılması öneriliyor.
- Hız ölçümleri 16 çekirdekli AMD Epyc üzerinde yapılmıştır.
-
Model dönüştürme
- Google/Meta modelleri lmrs formatına dönüştürülebilir.
- Python bağımlılıkları kurulduktan sonra, model ve tokenizer dönüştürmek için
export.pyvetokenizer.pybetikleri kullanılabilir.
-
Derleme
- Rust kodu
cargoile derlenip çalıştırılabilir. - Multimodal özelliği etkinleştirmek için
multimodalözelliğinin dahil edilmesi gerekir.
- Rust kodu
-
Yapılacaklar
- Yeni örnekleme yöntemleri eklemek.
- 9B ve 27B modellerini test etmek.
- Multi-head attention döngüsünü paralelleştirmek.
- Performans metrikleri eklemek.
- Sistem prompt'u sağlama özelliği eklemek.
- Kuantizasyon desteği eklemek (
int8,int4).
# GN⁺ Özeti
- lm.rs, Rust ile CPU üzerinde dil modelleri çalıştırmak için verimli bir yöntem sunuyor. Bunun ML kütüphaneleri olmadan yapılabilmesi, onu hafif ortamlarda kullanışlı kılıyor.
- Rust'ı yeni kullanmaya başlayan geliştiriciler için de uygun ve çeşitli modelleri desteklediği için genişletilebilirliği yüksek.
- PHI-3.5 gibi multimodal modellerin desteği sayesinde görüntü işleme yeteneklerini de içeriyor.
- Benzer işlevlere sahip projeler arasında Hugging Face'in Transformers kütüphanesi bulunuyor.
1 yorum
Hacker News görüşleri
unsafeolmadan uygulanıp uygulanamayacağına dair soru işaretleri varno dependencyifadesi yanlış anlaşılmalara yol açabilirhello world!olabilir