2 puan yazan GN⁺ 2023-11-30 | 1 yorum | WhatsApp'ta paylaş
  • 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

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

1 yorum

 
GN⁺ 2023-11-30
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

    1. https://huggingface.co/jartine/llava-v1.5-7B-GGUF/blob/main/... adresinden 4,26 GB’lık llamafile-server-0.1-llava-v1.5-7b-q4 dosyasını indirin
      wget https://huggingface.co/jartine/llava-v1.5-7B-GGUF/…
    2. Terminalde chmod 755 llamafile-server-0.1-llava-v1.5-7b-q4 ile çalıştırılabilir hale getirin
    3. ./llamafile-server-0.1-llava-v1.5-7b-q4 komutunu çalıştırınca 8080 portunda bir web sunucusu açılıyor
    4. http://127.0.0.1:8080/ adresine gidip görsel yükleyin ve tarayıcıda modelle sohbet edin
      Ekran görüntüsü https://simonwillison.net/2023/Nov/29/llamafile/ adresinde var
    • Neredeyse chatgpt-web [0] kadar iyi; çevrimdışı ve ücretsiz çalışması şaşırtıcı
      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
    • Daha az yazmak için bunu Docker yapılandırmasına koydum: https://github.com/tluyben/llamafile-docker
    • llamafile-server-0.1-llava-v1.5-7b-q4 dosyası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üyor
    • Basitçe sordum, şöyle bir yanıt verdi
      User: 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 etti
    Sonrası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.cpp gü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 ediyorum
    https://justine.lol/cosmopolitan/, https://github.com/ggerganov/llama.cpp

    • Her şeyi 0 tık yapma takıntısını anlamıyorum. Her şeyi ana sabit diske kurmak istemediğinizde gerçekten sinir bozucu oluyor
      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
    • Binary’nin kendisi ayrı olarak indirilebilir: https://github.com/Mozilla-Ocho/llamafile/releases
    • Bu daha çok MAS/TestFlight tarafının delta güncelleme sunmamasıyla ilgili bir sorun gibi görünüyor
    • Sadece bir zip dosyası olduğundan, Windows dışındaki platformlarda çalışırken bile yerinde güncellenebilir gibi duruyor. Yalnızca değişen tek dosyayı değiştirmek yeterli; sunucu modundaysa kullanıcı kesintisi olmadan çalıştırılabilir dosyayı hot reload etmek bile mümkün olabilir
    • cosmopolitan libc gerç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 ediyorum
  • Hangi 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 possible
    Llama: 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.

    • Bembeyaz bir 50x50 PNG yükledim; çoğunlukla beyaz bir arka plan üzerinde küçük gri bir alan ve sağ tarafta turuncu bir nokta olduğunu söyledi
      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.cpp
    cd llama.cpp
    make
    # M2 Max - 16 GB RAM
    wget -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 RAM
    wget -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 32

  • Bö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.

    • Llamanate
  • 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.