2 puan yazan GN⁺ 2023-11-30 | 1 yorum | WhatsApp'ta paylaş

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 main fonksiyonunu 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.exe olarak 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_misc sorunu 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

 
GN⁺ 2023-11-30
Hacker News yorumları
  • LLaVA modelinin nasıl kullanılacağı

    • macOS'te LLaVA modelini denemenin en iyi yolu, metin ve görselleri birleştiren bir model kullanmaktır (GPT-4 Vision'a benzer).
    • macOS'te nasıl çalıştırılacağı adım adım açıklanıyor; diğer platformlarda da benzer şekilde çalışmasının beklendiği belirtiliyor (henüz denenmemiş).
      1. Hugging Face'ten 4.26GB boyutundaki llamafile-server-0.1-llava-v1.5-7b-q4 dosyasını indirin
      2. Terminalde çalıştırma izni verin
      3. Yürütülebilir dosyayı çalıştırarak 8080 portunda web sunucusunu başlatın
      4. Tarayıcıda http://127.0.0.1:8080/ adresine gidip görsel yükleyin ve modelle konuşmaya başlayın
  • macOS uygulaması geliştirme deneyimi paylaşımı

    • Justine Tunney / jart'ın olağanüstü taşınabilirlik çalışmasına duyulan hayranlıkla birlikte, geliştirici kendi macOS uygulamasında llama.cpp'yi SwiftUI arayüzüyle birlikte çalıştırdığını söylüyor.
    • Uygulamanın ilk sürümünde, tek bir indirmeden sonra sohbet akışına odaklanıldı ve ağ bağlantısı yapılmaması hedeflendi.
    • Model uygulamaya gömülü olarak sunulduğu için indirildikten sonra hemen kullanılabiliyordu, ancak her UI güncellemesi dağıtıldığında kullanıcıların 3GB'ı yeniden indirmesi gereken bir sorun ortaya çıktı.
    • Kullanıcı şikayetlerinden sonra, varsayılan model indirmesi ile UI ayrıldı; böylece uygulama güncellemelerinde yalnızca yaklaşık 5MB dağıtılır hale geldi.
    • Bu aracı kullanan kişilerin llama.cpp güncellemesi istediklerinde benzer bir sorunla karşılaşmasının beklendiği, ancak bazı durumlarda bunun önemsiz olup olmayacağının merak edildiği belirtiliyor.
  • Simon Willison'ın ilgili gönderisi öneriliyor

    • Simon Willison'ın ilgili gönderisine yönelik bir öneri bağlantısı paylaşılıyor.
  • İlgili bağlantılar paylaşılıyor

    • Mozilla'nın llamafile tanıtımı ve Justine Tunney'nin tweet'ine ait bağlantılar paylaşılıyor.
  • Llaminate adı öneriliyor

    • Llama uyumlu modelleri kullanıma hazır bir blob içine sarmalama gibi genel bir iş için "Llaminate" adı öneriliyor.
  • Cosmopolitan ile CUDA desteğine duyulan hayranlık

    • Cosmopolitan'ın bu ay GPU'yu etkinleştirmek için dinamik bağlantı desteği eklemesine duyulan hayranlık dile getiriliyor.
    • CUDA geliştirici araç setinin kurulması gerektiği, ancak Nvidia sürücüsü dışında ek bağımlılık olmadan CUDA uygulamalarını dağıtabilme ihtimalinin ilgi çekici olduğu belirtiliyor.
  • Windows'ta yürütülebilir dosya boyutu sınırına değiniliyor

    • Windows 10 64 bit sistemde 4GB yürütülebilir dosyanın sorunsuz çalıştığına dair deneyim paylaşılıyor.
  • llama.cpp ile çeşitli modelleri deneme yöntemi paylaşılıyor

    • GitHub'dan llama.cpp'yi klonlayıp, gerekli modelleri indirerek sunucunun nasıl çalıştırılacağı kodla birlikte paylaşılıyor.
  • Yalnızca tek model ve ağırlıkla çalışan ikili dosyanın sınırlılığına dikkat çekiliyor

    • Sadece tek bir model ve ağırlık seti çalıştıran bir ikili dosyanın sınırlı olduğuna dair görüş paylaşılıyor.
  • Justine'in şaşırtıcı proje üretim hızına değiniliyor

    • Justine'in şaşırtıcı bir hızla etkileyici projeler ürettiği belirtiliyor.