1 puan yazan GN⁺ 2024-10-12 | 1 yorum | WhatsApp'ta paylaş

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.py ve tokenizer.py betikleri kullanılabilir.
  • Derleme

    • Rust kodu cargo ile derlenip çalıştırılabilir.
    • Multimodal özelliği etkinleştirmek için multimodal özelliğinin dahil edilmesi gerekir.
  • 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

 
GN⁺ 2024-10-12
Hacker News görüşleri
  • M2 64GB MacBook'ta 1.2G llama3.2-1b-it-q80.lmrs çalıştırıldığında hızlı çalıştı ve CPU kullanımı 13 iş parçacığında %1000 idi
  • Kod örnekleri üzerinden Transformer'ın nasıl çalıştığını açıklamak için faydalı görünüyor
    • Kütüphanenin stdout'a çıktı vermemesini sağlayacak iyileştirmeler gerekli
    • unsafe olmadan uygulanıp uygulanamayacağına dair soru işaretleri var
  • Çeşitli Rust araçları kullanılarak model yükleme ve diğer LLM işleri yapılabilir
    • Python bağımlılıklarını azaltmaya yardımcı olabilir
    • Gramer desteği planı olup olmadığı merak ediliyor
  • Başlık net değil
    • no dependency ifadesi yanlış anlaşılmalara yol açabilir
  • Geçmişte benzer bir çalışma yapılmıştı ama performans tatmin edici değildi
    • Rust uygulamasının benchmark sonuçlarına ihtiyaç var
    • LLM çıkarım uygulaması programcılar için yeni bir hello world! olabilir
  • Metal/Cuda desteği şart
  • Rust topluluğunun coşkusu takdir ediliyor
  • Bu uygulamaların hepsinin yalnızca CPU'ya mı dayandığı merak ediliyor
  • Diğer projelerle karşılaştırma gerekli
    • Vision modellerini desteklerse denemeye istekli olunur