Llamafile - LLM’leri tek dosya olarak dağıtıp çalıştırma
(github.com/Mozilla-Ocho)llamafile proje özeti
- Yapay zeka geliştiricilerinin her yerde derleyip çalıştırabilmesi hayalini gerçekleştirmek için llama.cpp ile Cosmopolitan Libc’yi birleştiren bir framework geliştirildi
- llamafile, çeşitli CPU mikro mimarileri ve CPU mimarilerinde çalışabilir ve birden fazla işletim sisteminde tek bir derlemeyle kod çalıştırmayı destekler
- LLM ağırlıkları llamafile içine gömülerek doğrudan bellek eşleme yoluyla hızlı çalıştırma sağlanabilir
İkili dosya kullanımı
- Hugging Face üzerinden indirilebilen çeşitli modeller için örnek ikili dosyalar sunulur
- Komut satırı ikili dosyası, llama.cpp’nin
mainfonksiyonunu elle çağırmakla benzer şekilde çalıştırılır - Sunucu ikili dosyası, yerel bir web sunucusu çalıştırarak web tabanlı bir sohbet botu sunar
Dikkat edilmesi gerekenler
- macOS’ta Apple Silicon kullanırken Xcode kurulumu gerekir
- Windows’ta çalıştırabilmek için dosya adının
llamafile.exeolarak değiştirilmesi gerekir - zsh, Python
subprocess, Fish vb. ortamlarda çalıştırma sorunu yaşanırsa alternatif komutların kullanılması önerilir - Linux’ta
binfmt_miscsorunu yaşanırsa çözüm yöntemi sunulur
GPU desteği
- Apple Silicon’da Xcode kuruluysa otomatik olarak çalışır
- Linux’ta Nvidia cuBLAS GPU desteği için derleyici kurulumu ve bayrak ayarı gerekir
- Windows’ta ilk çalıştırmadan sonra MSVC x64 yerel komut istemi üzerinden CUDA yolunun ayarlanması gerekir
Kaynak kodu derleme yöntemi
- cosmocc toolchain kullanılarak llamafile kaynak kodunun nasıl derleneceği anlatılır
- libc fonksiyon kodu üretimi ve HTTP sunucusu çalıştırma örnekleri sunulur
zipalign belgeleri
- PKZIP arşivine hizalanmış, sıkıştırılmamış dosyalar eklemek için zipalign aracının kullanımı açıklanır
- Mevcut ZIP arşiv araçlarından daha hızlı çalıştırma ve bellek hizalama gereksinimlerini karşılama avantajı sunar
Teknik ayrıntılar
- llamafile, kabuk betiği ile ağırlıkları birleştirip hızlı çalıştırma sağlamak için
mmap()özelliğinden yararlanır - ZIP içine gömülü ağırlıklar, mikro mimari ve mimari taşınabilirliği ile GPU desteğine yönelik teknik çözümler sunar
Lisans
- llamafile projesi Apache 2.0 lisansını kullanır; llama.cpp üzerindeki değişiklikler için MIT lisansı geçerlidir
Bilinen sorunlar
- 64 bit Windows’ta 4 GB dosya boyutu sınırı olduğundan, ağırlıklar ayrı dosyalar olarak kullanılmalıdır
GN⁺ görüşü
Bu yazıdaki en önemli nokta, yapay zeka geliştiricilerinin her yerde LLM’leri kolayca derleyip çalıştırabilmesini sağlayan llamafile projesinin yenilikçi yaklaşımıdır. Proje, farklı platformlar ve mimariler arasında uyumluluk sunarken, ağırlıkları içeren tek dosyalı dağıtım sayesinde kullanım kolaylığını ciddi ölçüde artırır. Bu tür teknik ilerlemeler, yapay zeka araştırma ve geliştirmesini daha da hızlandırma potansiyeline sahip olduğundan, bu alana ilgi duyanlar için oldukça dikkat çekicidir.
1 yorum
Hacker News yorumları
LLaVA modelinin nasıl kullanılacağı
llamafile-server-0.1-llava-v1.5-7b-q4dosyasını indirinhttp://127.0.0.1:8080/adresine gidip görsel yükleyin ve modelle konuşmaya başlayınmacOS uygulaması geliştirme deneyimi paylaşımı
Simon Willison'ın ilgili gönderisi öneriliyor
İlgili bağlantılar paylaşılıyor
Llaminate adı öneriliyor
Cosmopolitan ile CUDA desteğine duyulan hayranlık
Windows'ta yürütülebilir dosya boyutu sınırına değiniliyor
llama.cpp ile çeşitli modelleri deneme yöntemi paylaşılıyor
Yalnızca tek model ve ağırlıkla çalışan ikili dosyanın sınırlılığına dikkat çekiliyor
Justine'in şaşırtıcı proje üretim hızına değiniliyor