- 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
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
-hfseçeneği olmadan kullanırsanız, multimodal destek hatası almamak için mutlaka--mmprojanahtarı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-cliprogramını elde edebiliyorsunuzBen vision destekli quant'lar hazırladım
unsloth/gemma-3-4b-it-GGUF:Q4_K_XLgibi komutlarla çalıştırılabiliyorSohbet sırasında
/image image.pngile görüntü yükleyip konuşabiliyorsunuzArtık Metal backend'de
-ngl -1kullanmanız gerekmiyorCUDA'da ise hâlâ gerekiyor
-1, tüm GPU katmanlarının GPU'ya offload edilmesi anlamına geliyorYardımı olacaksa, belgeleri içeren unsloth.ai sayfasını güncelledim;
llama-mtmd-clikullanımına doğrudan bakabilirsinizMistral Small için de kullanılabiliyor
Homebrew ile llama.cpp kurarsanız
llama-mtmd-clide pakete dahil geliyorKomutu vermeniz yeterli, hemen çalıştırabilirsiniz
Aslında
-ngl 99daha stabil,-ngl -1ise çalışıp çalışmayabiliyorSadece
nglharflerini 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/…
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.zipindirip arşivi açtıktan vesudo xattrkomutuyla çalıştırma izni verdikten sonrallama-mtmd-cliile terminal arayüzü kullanılabiliyorYa 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
--HEADseçeneğiyle her zaman en güncel sürümü derleyebilirsinizBirkaç saat içinde brew paket sürümü de güncellenecektir, böylece kolayca yükseltebileceksiniz
convert_hf_to_gguf.py --mmprojsayesinde herhangi bir vision modeli için quant üretmek çok daha kolaylaştıllama-serveriçinde vision desteğinin olması çok güzelUzun zamandır beklenen bir özellikti
Artık
-ngl, otomatik olarak maksimum değere ayarlanıyor-ngl 99değerini elle vermeye gerek yokAncak 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ı?
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ı
nglkı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
llama.cpp, 10 yıllık PC'mde de M1 Mac'imde de son derece iyi çalışıyor