6 puan yazan GN⁺ 2025-05-11 | 1 yorum | WhatsApp'ta paylaş
  • Llama.cpp, artık libmtmd aracılığıyla çok modlu girdileri (görsel dahil) destekliyor
    • llama-mtmd-cli veya llama-server üzerinden OpenAI uyumlu /chat/completions API
  • Gemma 3, SmolVLM, Pixtral, Qwen 2/2.5, Mistra Small, InternVL gibi modellerde çok modlu özellikler hemen kullanılabiliyor
    • Önceden kuantize edilmiş modeller sunuluyor (çoğunda varsayılan olarak QK_K_M kuantizasyonu bulunuyor)
  • Varsayılan olarak çok modlu projektör GPU'ya offload ediliyor ve gerekirse bunu devre dışı bırakma ayarı da destekleniyor
  • Bazı modeller büyük bağlam penceresi gerektiriyor (ör. -c 8192)

Genel Bakış

  • Llama.cpp, libmtmd kullanarak çok modlu girdi desteğini yeni ekledi
  • Kullanıcılar artık görsel gibi metin dışı girdileri de işleyebiliyor; bu da görsel modellerin kullanım alanını genişletiyor
  • Bu özellik halihazırda Gemma 3, SmolVLM, Pixtral, Qwen 2 VL, Qwen 2.5 VL, Mistral Small, InternVL gibi başlıca modellerle uyumlu

Çok modlu girdi nasıl etkinleştirilir

  • İki ana çalıştırma yöntemi anlatılıyor: ilki -hf seçeneğini kullanmak (desteklenen model gerekir), ikincisi ise -m ve --mmproj seçeneklerini birlikte kullanarak metin modeli ile çok modlu projektör modelini ayrı ayrı belirtmek
  • -hf seçeneği kullanılırken çok modlu özelliği kapatmak isterseniz --no-mmproj eklenir; özel bir mmproj dosyası kullanacaksanız --mmproj local_file.gguf seçeneği kullanılır
  • GPU offload varsayılandır; istenmiyorsa --no-mmproj-offload seçeneğiyle devre dışı bırakılabilir

Örnek komutlar

  • Komut satırında llama-mtmd-cli, sunucu tarafında ise llama-server kullanılıyor
  • Yerel dosya kullanıldığında dosya --mmproj ile doğrudan belirtiliyor
  • GPU offload'u devre dışı bırakmak için ek olarak --no-mmproj-offload seçeneği kullanılıyor

Hemen kullanılabilen çok modlu model listesi

  • Varsayılan olarak Q4_K_M kuantizasyonuna sahip çeşitli hazır modeller listeleniyor
  • Desteklenen model örnekleri:
    • Gemma 3: 4b, 12b, 27b sürümleri
    • SmolVLM ailesi: 256M, 500M, 2.2B vb.
    • Pixtral 12B
    • Qwen 2 VL: 2B, 7B ve Qwen 2.5 VL: 3B, 7B, 32B, 72B
    • Mistral Small 3.1 24B (IQ2_M kuantizasyonu)
    • InternVL 2.5 ve 3 nesilleri: farklı parametre boyutları destekleniyor

Notlar

  • Kullanım sırasında (tool_name) yerine istediğiniz çalıştırılabilir ikili dosya adını girin (ör. llama-mtmd-cli veya llama-server)
  • Bazı çok modlu modellerde büyük bağlam penceresi boyutu belirtmek gerekebilir (ör. -c 8192 gibi bir seçenek kullanmak)

1 yorum

 
GN⁺ 2025-05-11
Hacker News görüşü
  • MBP M1 64GB üzerinde ggml-org/gemma-3-4b-it-GGUF kullanarak prompt işleme hızında yaklaşık 25t/s, token üretim hızında ise yaklaşık 63t/s elde ediyorum
    Toplam görüntü işleme süresi, görüntü boyutundan bağımsız olarak yaklaşık 15 saniye
    Küçük 4B model bile şimdiden oldukça iyi çıktılar veriyor, çeşitli görüntüleri iyi açıklıyor
    Yeniden üretim yöntemi: llama.cpp'yi klonlayıp derlemek, model ve mmproj dosyasını indirdikten sonra sunucuyu çalıştırmak ve ardından web arayüzüne bağlanmak
    -hf seçeneği olmadan kullanırsanız, multimodal destek hatası almamak için mutlaka --mmproj anahtarını eklemeniz gerekiyor
    Şu anda resmi ggml-org/gemma-3-4b-it-GGUF quant sürümünü kullanıyorum
    danielhanchen'in sunduğu unsloth quant sürümünün daha hızlı olmasını bekliyorum

    • Tüm görüntüler için aynı yanıt çıkıyor
      "Bu görüntüde çeşitli pozlarda birden fazla kişi yer alıyor..." gibi bir şey
      Gerçek görüntüde böyle bir şey hiç yok, bu yüzden debug işlemine nereden başlayacağımı kestiremiyorum

    • Bende de sürekli aynı sonuç çıkıyor
      M1 üzerinde 7b model kullanıldığında prompt işlemenin neredeyse 10 kat daha hızlı olması gerektiğini okudum
      Acaba encoder tarafında optimizasyon eksik mi diye merak ediyorum

    • Doğrudan prompt ile üretilmiş örnek görüntüler varsa gösterebilir misin?
      Denemeden önce bir görmek isterim

    • Bu sayılar 4/8 bit quant için mi, yoksa tamamen fp16 için mi, merak ediyorum

  • llama.cpp'yi doğrudan kaynaktan derlemeniz gerekiyor
    llama-mtmd-cli programını elde edebiliyorsunuz
    Ben vision destekli quant'lar hazırladım
    unsloth/gemma-3-4b-it-GGUF:Q4_K_XL gibi komutlarla çalıştırılabiliyor
    Sohbet sırasında /image image.png ile görüntü yükleyip konuşabiliyorsunuz
    Artık Metal backend'de -ngl -1 kullanmanız gerekmiyor
    CUDA'da ise hâlâ gerekiyor
    -1, tüm GPU katmanlarının GPU'ya offload edilmesi anlamına geliyor

    • Yardımı olacaksa, belgeleri içeren unsloth.ai sayfasını güncelledim; llama-mtmd-cli kullanımına doğrudan bakabilirsiniz
      Mistral Small için de kullanılabiliyor

    • Homebrew ile llama.cpp kurarsanız llama-mtmd-cli de pakete dahil geliyor
      Komutu vermeniz yeterli, hemen çalıştırabilirsiniz

    • Aslında -ngl 99 daha stabil, -ngl -1 ise çalışıp çalışmayabiliyor

    • Sadece ngl harflerini görmek bile sinirimi bozuyor

  • Şimdiye kadar bulduğum en faydalı doküman bu
    Nasıl çalıştığını anlamama çok yardımcı oldu
    https://github.com/ggml-org/llama.cpp/…

    • Mimari bazında image-embedding ön işleme adımının ayrı bir kütüphaneye ayrılması ilginç
      Bu, metin transformer araçlarının huggingface/tokenizers gibi ayrılmasına benziyor
  • SmolVLM serisi de destekleniyor
    Küçük boyutu sayesinde çok hızlı yanıt veriyor
    Gerçek zamanlı ev tipi video gözetim sistemi için mükemmel
    Bunu hobi projesi olarak denemeyi düşünüyorum
    Hızlı komut örneklerini de ayrıntılı şekilde paylaşmış

    • Sunucuya mtmd özelliğini eklediğiniz için teşekkürler
      Ben de commit'i bekleyip duruyor, sürekli takip ediyordum

    • Git commit notlarına her baktığımda katkılarınızı görüp hep etkileniyorum
      llama.cpp genelinde de büyük emek verdiniz

    • Ama bu kadar yüksek hızdaki yanıtların kalite açısından nasıl olduğunu merak ediyorum
      2.2B'den küçük modeller de bağlamlı cümleleri düzgün üretebiliyor mu?

  • Gemma3 4b kullanarak son seyahat fotoğraflarımın çoğuna anahtar kelime ve açıklama üretmek için kullandım
    Temel OCR da yapabiliyor; üzerinde yazı olan fotoğrafları özetliyor ve bağlamsal ipuçlarından nerede çekildiğini de iyi tahmin ediyor
    Kendi kendine barındırılabilir bir çözüm için harika

    • Kulağa eğlenceli geliyor
      Bunu, görüntü listesini döngüyle gezip her biri için prompt çalıştırarak ve sonuçları metadata'ya ya da sqlite gibi bir yere kaydederek mi kullanıyorsunuz, merak ettim

    • gemma 4b'nin bu tür işler için gerçekten yeterince kullanışlı olup olmadığını merak ediyorum
      Ben sadece daha büyük sürümleri kullandım, 4b'nin yetersiz kalacağını düşünüyordum

  • Sıradan bir kullanıcı açısından neyin değiştiğini merak ediyorum
    Birkaç ay önce de llama.cpp ile görüntü açıklaması gibi işler yapılabiliyordu; farkın ne olduğunu öğrenmek istiyorum

  • llama.cpp, çeşitli platformlar için derlenmiş sürümler sağlıyor
    Bu kez vision özelliği de eklenmiş
    macOS'te llama-b5332-bin-macos-arm64.zip indirip arşivi açtıktan ve sudo xattr komutuyla çalıştırma izni verdikten sonra
    llama-mtmd-cli ile terminal arayüzü kullanılabiliyor
    Ya da localhost:8080 üzerinde web sunucusu da çalıştırılabiliyor (UI ve API dahil)
    Ayrıntılı kullanım notlarını kişisel blogumda derledim

    • brew ile kurulum yapıyorsanız --HEAD seçeneğiyle her zaman en güncel sürümü derleyebilirsiniz
      Birkaç saat içinde brew paket sürümü de güncellenecektir, böylece kolayca yükseltebileceksiniz

    • convert_hf_to_gguf.py --mmproj sayesinde herhangi bir vision modeli için quant üretmek çok daha kolaylaştı
      llama-server içinde vision desteğinin olması çok güzel
      Uzun zamandır beklenen bir özellikti

    • Artık -ngl, otomatik olarak maksimum değere ayarlanıyor
      -ngl 99 değerini elle vermeye gerek yok
      Ancak bu yalnızca Metal ortamı için geçerli; CUDA gibi ortamlarda hâlâ açıkça belirtilmesi gerekiyor

  • gemma3 multimodal modeli ollama üzerinden kullanmakla karşılaştırıldığında llama.cpp kullanmanın nasıl olduğunu merak ediyorum
    Apple Silicon Mac üzerinde avantajları veya kullanım deneyimi olan var mı?

    • İki fark var
      Birincisi, llama.cpp desteği ggml ekosistemi içinde yatay olarak entegre olduğu için ollama'ya kıyasla daha hızlı çalışacak şekilde optimize edilebiliyor
      Örneğin pixtral/mistral small 3.1 için, Ollama'dan daha az bellek kullanan 2D-RoPE hilesi sunuyor
      Yakında flash attention desteği de eklenecek; böylece vision encoder daha hızlı ve daha az bellekle çalışacak
      İkincisi, llama.cpp ollama'dan daha fazla model destekliyor
      ollama ne pixtral'ı ne de smolvlm'i destekliyor
  • UI geliştirmeye vision'ı entegre eden araçlar olup olmadığını merak ediyorum
    Örneğin, frontend TS/React hobi projemde yerel/bulut LLM'i VSCode'a bağlayarak kullanıyorum, ama vision destekli modellerde bile illa ekran görüntüsü alıp yapıştırmak gerekiyor
    Bu kısmı genel olarak otomatikleştiren ya da en azından klavye kısayoluyla ekran görüntüsü alıp otomatik olarak sohbete yapıştıran basit bir eklenti bile olsa büyük zaman kazandırırdı

  • ngl kısaltması gerçekten kafa karıştırıcı
    Mac'te mümkün olan en yüksek hızı almak için çeşitli ipuçları ve ayarların ortaya çıkması ilginç
    Bu tür hız artışlarının daha fazla insanın evde vision özelliklerini denemesini sağlayıp sağlamayacağını merak ediyorum

    • Kesinlikle
      llama.cpp, 10 yıllık PC'mde de M1 Mac'imde de son derece iyi çalışıyor