- llamafile, LLM dağıtımını ve çalıştırmayı tek dosyalık bir yürütülebilir dosyaya indirerek, kurulum gerektirmeden çoğu işletim sistemi ve CPU mimarisinde yerel olarak çalıştırılmasını sağlayan bir Mozilla Builders projesidir
- Uygulama, llama.cpp ile Cosmopolitan Libc’yi birleştirerek LLM çalıştırma karmaşıklığını tek bir “llamafile” yürütülebilir dosyasında toplar; proje Mozilla.ai tarafından yeniden düzenlenmiştir
- Birlikte gelen whisperfile, whisper.cpp ile aynı Cosmopolitan paketlemeye dayanan tek dosyalık bir konuşmadan metne aracıdır; ses dosyalarının yazıya dökülmesini ve çevrilmesini destekler
- v0.10.0 sonrasında, llama.cpp’nin en güncel sürümleriyle daha kolay uyum sağlamak için yeni bir derleme sistemi kullanılarak daha yeni modeller ve özellikler desteklenir; ancak kullanıcıların alışık olduğu bazı eski özellikler eksik olabilir
- Windows’ta çalıştırmadan önce
.exe uzantısı eklemek gerekir ve 4 GB’tan büyük yürütülebilir dosyalar Windows’ta çalıştırılamadığından ayrı bir llamafile ikili dosyası ve harici GGUF ağırlıkları/modeli kullanmak gerekir
LLM’leri tek dosya olarak çalıştırma
- llamafile, LLM’leri tek bir dosya olarak dağıtıp çalıştırmayı sağlayan bir projedir
- Amaç, hem geliştiriciler hem de son kullanıcılar için açık LLM erişilebilirliğini artırmaktır
- llama.cpp ve Cosmopolitan Libc tek bir çatı altında birleştirilir
- Ortaya çıkan ürün, “llamafile” adlı tek dosyalık bir yürütülebilir dosyadır ve kurulum gerektirmeden yerelde çalışır
- Destek kapsamı, çoğu işletim sistemi ve CPU mimarisini içerir
Mozilla.ai yeniden düzenlemesi ve ilgili projeler
- llamafile bir Mozilla Builders projesidir ve şu anda Mozilla.ai tarafından yeniden düzenlenmiştir
- Proje tanıtımı announcement blog post yazısına bağlanır
- Kullanıcıların hangi noktaları değerli gördüğü ve projeyi neyin daha kullanışlı hâle getireceği hakkında geri bildirim alınıyor
whisperfile dahil
- whisperfile, llamafile’a dahil edilen tek dosyalık bir konuşmadan metne aracıdır
- whisper.cpp ile aynı Cosmopolitan paketlemeye dayanır
- Ses dosyalarının yazıya dökülmesini ve çevrilmesini destekler
- llamafile ile aynı platform kapsamı içinde kurulum gerektirmeden kullanılabilir
- Belgeler Whisperfile sayfasındadır
v0.10.x’te derleme sistemi değişikliği
- 0.10.0’dan itibaren llamafile yeni bir derleme sistemi kullanır
- Yeni derleme sisteminin amacı, kodun en güncel llama.cpp sürümleriyle daha kolay uyumlu tutulmasını sağlamaktır
- Bu değişiklik sayesinde daha yeni modeller ve özellikler desteklenir
- Aynı zamanda, kullanıcıların eskiden alışık olduğu bazı özellikler eksik olabilir
- Değişikliğin üst düzey açıklaması README_0.10.0.md dosyasında yer alır
- “classic experience”ı tercih eden kullanıcılar önceki sürümlere releases sayfasından erişebilir
- Önceden derlenmiş llamafile’lar hangi sunucu sürümüyle paketlendiklerini belirtir
Hızlı başlangıç ve Windows kısıtları
- Örnek model Qwen3.5 0.8B’dir; README, birkaç dakika içinde indirme ve çalıştırma akışını sunar
curl -LO https://huggingface.co/mozilla-ai/llamafile_0.10/…
chmod +x Qwen3.5-0.8B-Q8_0.llamafile
./Qwen3.5-0.8B-Q8_0.llamafile
- Bu model, projenin llamafile olarak derlediği modeller arasındaki en küçük model olduğu için hemen çalışma olasılığı yüksek olduğundan seçilmiştir
- Daha güçlü donanımınız veya GPU’nuz varsa daha büyük ve ifade gücü daha yüksek modeller seçebilir; daha doğru yanıtlar alabilirsiniz
- Windows kullanıcıları, çalıştırmadan önce dosya adına
.exe uzantısını eklemelidir
- Windows’ta yalnızca 4 GB’tan küçük yürütülebilir dosyalar çalıştırılabilir
Belgeler ve lisans
- Tüm belgeler docs.mozilla.ai/llamafile adresindedir
- Başlıca belge başlıkları:
- llamafile projesi Apache 2.0 lisansına sahiptir
- llama.cpp ve whisper.cpp üzerindeki değişiklikler, orijinal projelerle aynı şekilde MIT lisansı altındadır; bu tercih, istenirse ileride upstream’e gönderme olasılığını korumak içindir
1 yorum
Hacker News yorumları
LLaVA gibi metin+görsel modellerle denemek en iyi seçenek gibi görünüyor. Adımlar macOS için, ama diğer platformlarda da benzer şekilde çalışması muhtemel
llamafile-server-0.1-llava-v1.5-7b-q4dosyasını indirinwget https://huggingface.co/jartine/llava-v1.5-7B-GGUF/…chmod 755 llamafile-server-0.1-llava-v1.5-7b-q4ile çalıştırılabilir hale getirin./llamafile-server-0.1-llava-v1.5-7b-q4komutunu çalıştırınca 8080 portunda bir web sunucusu açılıyorEkran görüntüsü https://simonwillison.net/2023/Nov/29/llamafile/ adresinde var
chatgpt-web’i denemediyseniz tavsiye ederim. Yeni GPT-4 modelini kullanınca ChatGPT Plus’tan çok daha ucuza sohbet edebiliyor, ayrıca kodlama konusunda hâlâ gerçekten iyi olan eski ve daha az kısıtlı GPT-4 modeline de geçebiliyorsunuz
[0]: https://github.com/Niek/chatgpt-web
llamafile-server-0.1-llava-v1.5-7b-q4dosyasını projem için gereken testlerde çalıştırdım; görsel sorgular dahil hepsinden geçti. Stratejik olarak epey çok kişide değişim yaratacak gibi görünüyorUser: What is the third planet from the sun?Llama: The third planet from the sun is called Mars.Justine Tunney / jart’ın taşınabilirlik çalışması harika ve gerçekten çok etkileyici, ama bu aracın kullanım senaryosunu henüz tam çıkarabilmiş değilim
llama.cpp’yi SwiftUI önyüzüyle çalıştıran küçük bir macOS uygulaması https://www.freechat.run geliştiriyorum; ilk sürümde tek bir indirmeden sonra hemen sohbet edilebilmesine ve ağ bağlantısının 0 olmasına takıntılıydım. Modeli uygulamaya paketleyince indirip açıp hemen kullanmak kolaydı, ama TestFlight beta kullanıcılarına UI güncellemesi dağıtmaya kalkınca onlara yine 3 GB indirtmiş oldum ve 3 kullanıcının tamamı şikâyet ettiSonrasında varsayılan model indirmesini UI’dan ayırdım ve uygulama güncellemelerinde yalnızca yaklaşık 5 MB dağıtacak şekilde değiştirdim. Bu araç da en güncel
llama.cppgüncellemelerini almak istediğiniz anda aynı sorunla oldukça hızlı karşılaşacak gibi geliyor. Önemli olmadığı durumlar da vardır, ama nerede faydalı olacağını merak ediyorumhttps://justine.lol/cosmopolitan/, https://github.com/ggerganov/llama.cpp
Modeli zaten indirip düzenlemiş ve hemen kullanabilecek halde tutuyorum; uygulamalar bunu sormadan kullanıcıya aptal muamelesi yapıp tekrar indiriyor
Makeayo artık model konumunu sorduğu için biraz daha iyi; comfy/automatic’te sembolik bağlantı kullanmak zorunda kalmak ise can sıkıcı. İlk çalıştırmada dosya konumunu sorup ayarlardan değiştirilebilir yapmak yeterli, zor bir şey değil
cosmopolitan libcgerçekten harika bir numaraya yakın, övgüyü hak ediyor ve gerçek kullanım senaryoları da vardır; ama çoğu amaç için pratik görünmüyorİstediğiniz kadar çok mimariyi ve işletim sistemini destekleyen çok şişkin ELF benzeri bir format olsaydı, onu kullanır mıydık? Muhtemelen hayır
Yine de
zig cc’yi bir süre kullandıktan sonra, bir kez derleyip devasa evrensel bir binary üretme yaklaşımının da makul olabileceğini düşünmeye başladım. Mikro mimariye göre dispatch de iyi bir unsur; kullandıkça sanki kendimi aksi yönde ikna ediyorumHangi görseli yüklersem yükleyeyim doğru düzgün göremiyor gibi. Yine de şu yanıt komikti
User: Describe the image in the most detailed way possibleLlama: The image is a close-up of an empty, dark room with no visible objects or people...User: is it just a black square?Llama: Yes, it is just a black square.Beyaz bir kare mi diye sorunca, basit bir beyaz kare olmadığını; gri ve sarımsı kahverengi de içeren soyut bir resme benzediğini söyledi
Simon Willison’ın ilgili yazısı iyi: https://simonwillison.net/2023/Nov/29/llamafile/
Bu modelin halüsinasyon görme biçimi ilginç. Albert Bierstadt’ın “In the Mountains” (https://www.wikiart.org/en/albert-bierstadt/in-the-mountains...) adlı eserini gösterince, sahnenin çeşitli yerlerine ineklerin dağılmış olduğunu ısrarla iddia etti.
İnek olmadığını, kayaları inek sanmış olabileceğini söyleyince de hayır diye yanıtladı; tekrar “inek yok” denince ancak o zaman sahneyi dağlar, göl, ağaçlar, kuşlar ve bir teknenin olduğu huzurlu bir manzara olarak betimledi.
İlgili kaynaklar: https://hacks.mozilla.org/2023/11/introducing-llamafile/ ve https://twitter.com/justinetunney/status/1729940628098969799
https://news.ycombinator.com/item?id=38463456 ve https://news.ycombinator.com/item?id=38464759 üzerinden gelen bir akıştı, ancak yorumlar burada birleştirildi.
llama.cpp’nin GGUF formatındaki modellerini bu şekilde birden fazla deniyorum.git clone https://github.com/ggerganov/llama.cppcd llama.cppmake# M2 Max - 16 GB RAMwget -P ./models https://huggingface.co/TheBloke/OpenHermes-2.5-Mistral-7B-16k-GGUF/…./server -m models/openhermes-2.5-mistral-7b-16k.Q8_0.gguf -c 16000 -ngl 32# M1 - 8 GB RAMwget -P ./models https://huggingface.co/TheBloke/OpenHermes-2.5-Mistral-7B-16k-GGUF/…./server -m models/openhermes-2.5-mistral-7b.Q4_K_M.gguf -c 2000 -ngl 32Böyle bir şeyin adı olarak Llaminate de fena olmaz gibi. llama uyumlu modelleri hemen kullanılabilir bir pakete sarmak için genel bir fiil olarak da kullanılabilir.
Cosmopolitan ile derlenmiş olmasına rağmen CUDA desteği olması harika. Görünüşe göre Cosmopolitan, GPU’yu mümkün kılmak için bu ay dinamik bağlama desteğinin bir kısmını eklemiş: https://github.com/jart/cosmopolitan/commit/5e8c928f1a37349a...
Ne yazık ki CUDA geliştirici araç setinin kurulması gerekiyor. Sadece Nvidia sürücüsüyle, ek bağımlılık olmadan çalışan CUDA uygulamaları dağıtmak da tamamen mümkün; bu kısmı da çözerlerse oyun değiştirici olabilir.
“Dosyayı bir USB belleğe koyup çekmecede saklarsanız, gelecekteki kıyamete karşı bir sigorta olur. Bir daha asla dil modeli olmadan kalmazsınız” ifadesini sevdim.