6 poin oleh GN⁺ 2025-05-11 | 1 komentar | Bagikan ke WhatsApp
  • Llama.cpp kini mendukung input multimodal (termasuk visi) melalui libmtmd
    • API /chat/completions yang kompatibel dengan OpenAI melalui llama-mtmd-cli atau llama-server
  • Fitur multimodal langsung dapat digunakan pada model seperti Gemma 3, SmolVLM, Pixtral, Qwen 2/2.5, Mistra Small, InternVL, dan lainnya
    • Tersedia model pre-quantized (sebagian besar menyertakan kuantisasi QK_K_M secara default)
  • Secara default, proyektor multimodal di-offload ke GPU, dan tersedia juga pengaturan untuk menonaktifkannya bila diperlukan
  • Beberapa model memerlukan jendela konteks yang besar (misalnya -c 8192)

Ringkasan

  • Llama.cpp kini menambahkan dukungan baru untuk input multimodal dengan menggunakan libmtmd
  • Pengguna kini dapat memproses input non-teks seperti gambar, sehingga pemanfaatan model visi menjadi lebih luas
  • Fitur ini sudah kompatibel dengan model-model utama seperti Gemma 3, SmolVLM, Pixtral, Qwen 2 VL, Qwen 2.5 VL, Mistral Small, InternVL, dan lainnya

Cara mengaktifkan input multimodal

  • Dijelaskan dua cara utama untuk menjalankannya: pertama menggunakan opsi -hf (memerlukan model yang didukung), kedua dengan menggabungkan opsi -m dan --mmproj untuk menentukan model teks dan model proyektor multimodal secara terpisah
  • Saat menggunakan opsi -hf, jika ingin menonaktifkan fitur multimodal, tambahkan --no-mmproj, dan jika ingin memakai file mmproj kustom, gunakan opsi --mmproj local_file.gguf
  • Offloading GPU adalah nilai default, dan jika tidak diinginkan, bisa dinonaktifkan dengan opsi --no-mmproj-offload

Contoh perintah

  • Di command line, bentuk yang digunakan adalah llama-mtmd-cli, sedangkan di server menggunakan llama-server
  • Jika menggunakan file lokal, file ditentukan secara langsung melalui --mmproj
  • Untuk menonaktifkan offloading GPU, tambahkan opsi --no-mmproj-offload

Daftar model multimodal yang siap digunakan

  • Tersedia berbagai model siap pakai yang menggunakan kuantisasi Q4_K_M sebagai default
  • Contoh model yang didukung:
    • Gemma 3: versi 4b, 12b, 27b
    • Keluarga SmolVLM: 256M, 500M, 2.2B, dan lainnya
    • Pixtral 12B
    • Qwen 2 VL: 2B, 7B dan Qwen 2.5 VL: 3B, 7B, 32B, 72B
    • Mistral Small 3.1 24B (kuantisasi IQ2_M)
    • Generasi InternVL 2.5 dan 3: mendukung berbagai ukuran parameter

Catatan

  • Saat digunakan, masukkan nama biner eksekusi yang diinginkan pada posisi (tool_name) (misalnya llama-mtmd-cli atau llama-server)
  • Saat menggunakan beberapa model multimodal, mungkin perlu menentukan ukuran jendela konteks yang besar (misalnya memakai opsi seperti -c 8192)

1 komentar

 
GN⁺ 2025-05-11
Komentar Hacker News
  • Di MBP M1 64GB, menggunakan ggml-org/gemma-3-4b-it-GGUF, saya mendapat kecepatan pemrosesan prompt sekitar 25t/s dan kecepatan generasi token sekitar 63t/s
    Waktu pemrosesan total gambar sekitar 15 detik, terlepas dari ukuran gambar
    Bahkan model kecil 4B sudah menunjukkan keluaran yang cukup bagus, dan mendeskripsikan berbagai gambar dengan baik
    Cara mereproduksinya adalah clone llama.cpp lalu build, unduh file model dan mmproj, jalankan server, lalu akses antarmuka web
    Jika digunakan tanpa opsi -hf, Anda harus menambahkan switch --mmproj agar tidak muncul error dukungan multimodal
    Saya memakai quant resmi ggml-org/gemma-3-4b-it-GGUF
    Saya berharap quant unsloth yang disediakan oleh danielhanchen akan lebih cepat

    • Semua gambar menampilkan jawaban yang sama
      "Gambar ini menampilkan beberapa orang dalam berbagai pose…" kira-kira seperti itu
      Padahal gambar aslinya sama sekali tidak seperti itu, jadi saya tidak tahu harus mulai debug dari mana

    • Saya juga terus mendapatkan hasil yang sama
      Saya membaca bahwa di M1, jika memakai model 7b, pemrosesan prompt seharusnya hampir 10x lebih cepat
      Saya jadi penasaran apakah encoder-nya belum dioptimalkan

    • Kalau ada contoh gambar yang dibuat langsung lewat prompt, bisa ditunjukkan?
      Saya ingin melihatnya dulu sebelum mencoba

    • Angka-angka itu berdasarkan quant 4/8-bit atau full fp16?

  • Anda harus mengompilasi llama.cpp langsung dari source
    Anda akan mendapatkan program llama-mtmd-cli
    Saya sudah membuat quant dengan dukungan vision
    Bisa dijalankan dengan perintah seperti unsloth/gemma-3-4b-it-GGUF:Q4_K_XL
    Saat chat, Anda bisa mengunggah gambar dengan /image image.png lalu mengobrol tentangnya
    Sekarang di backend Metal tidak perlu lagi memakai -ngl -1
    Di CUDA itu masih diperlukan
    -1 berarti semua layer GPU di-offload ke GPU

    • Jika membantu, saya sudah memperbarui halaman dokumentasi di unsloth.ai, jadi silakan langsung lihat cara memakai llama-mtmd-cli
      Ini juga bisa dipakai untuk Mistral Small

    • Jika memasang llama.cpp lewat Homebrew, llama-mtmd-cli juga sudah termasuk
      Tinggal beri perintah dan bisa langsung dijalankan

    • Sebenarnya -ngl 99 lebih stabil, -ngl -1 kadang bisa berbeda soal apakah berjalan atau tidak

    • Baru melihat huruf ngl saja rasanya emosi langsung naik

  • Ini dokumentasi paling berguna yang saya temukan sejauh ini
    Sangat membantu untuk memahami cara kerjanya
    https://github.com/ggml-org/llama.cpp/…

    • Menarik bahwa pra-pemrosesan image-embedding per arsitektur dipisahkan menjadi library tersendiri
      Mirip dengan bagaimana tool transformer teks dipisah seperti huggingface/tokenizers
  • Seri SmolVLM juga didukung
    Berkat ukurannya yang kecil, ia memberikan respons yang sangat cepat
    Cocok sekali untuk sistem pengawasan video rumahan real-time
    Saya berencana mencobanya sebagai proyek hobi
    Ada juga contoh perintah cepat yang dituliskan secara spesifik

    • Terima kasih sudah menambahkan fitur mtmd ke server
      Saya juga terus memantau sambil menunggu commit-nya

    • Setiap kali melihat catatan commit git, saya selalu kagum karena kontribusi Anda terlihat di sana
      Anda juga sudah banyak bekerja keras untuk llama.cpp secara keseluruhan

    • Tapi saya penasaran bagaimana kualitas respons secepat itu
      Apakah model yang lebih kecil dari 2.2B juga bisa mengeluarkan kalimat yang benar-benar punya konteks?

  • Saya memakai Gemma3 4b untuk menghasilkan keyword dan deskripsi pada banyak foto perjalanan terbaru
    OCR dasar juga bisa, jadi ia merangkum foto yang berisi teks, dan lewat petunjuk konteks ia juga cukup akurat menebak di mana foto itu diambil
    Untuk sesuatu yang bisa di-host sendiri, ini luar biasa

    • Terdengar menarik
      Saya penasaran apakah Anda memakainya dengan struktur yang me-loop daftar gambar, menjalankan prompt untuk masing-masing, lalu menyimpan hasilnya ke metadata atau sqlite dan semacamnya

    • Saya penasaran apakah gemma 4b benar-benar cukup berguna untuk pekerjaan seperti ini
      Saya hanya pernah memakai versi yang lebih besar, jadi saya kira 4b akan kurang memadai

  • Dari sudut pandang pengguna biasa, saya penasaran apa yang berubah
    Beberapa bulan lalu pun saya sudah bisa melakukan hal-hal seperti deskripsi gambar dengan llama.cpp, jadi saya ingin tahu apa perbedaannya

  • llama.cpp menyediakan rilis hasil kompilasi untuk berbagai platform
    Kali ini fitur vision baru ditambahkan
    Di macOS, Anda bisa mengunduh llama-b5332-bin-macos-arm64.zip, mengekstraknya, lalu mengizinkan eksekusi dengan perintah sudo xattr
    Setelah itu Anda bisa memakai llama-mtmd-cli sebagai antarmuka terminal
    Atau menjalankan server web localhost:8080 juga bisa (termasuk UI dan API)
    Catatan penggunaan yang lebih rinci saya rangkum di blog pribadi saya

    • Jika memasang lewat brew, Anda bisa build dengan opsi --HEAD agar selalu mengikuti versi terbaru
      Dalam beberapa jam, versi paket brew juga kemungkinan akan diperbarui sehingga upgrade bisa dilakukan dengan mudah

    • Berkat convert_hf_to_gguf.py --mmproj, membuat quant untuk model vision apa pun jadi jauh lebih mudah
      Sangat keren bahwa llama-server kini mendukung vision
      Ini fitur yang sudah lama saya tunggu

    • Sekarang -ngl otomatis diatur ke nilai maksimum
      Tidak perlu lagi menentukan -ngl 99 secara manual
      Namun ini hanya berlaku di lingkungan Metal, sedangkan CUDA dan lainnya tetap harus dinyatakan secara eksplisit

  • Saya penasaran bagaimana rasanya memakai llama.cpp dibanding menggunakan model multimodal gemma3 lewat ollama
    Saya ingin tahu kelebihan atau pengalaman penggunaannya di Mac Apple Silicon

    • Ada dua perbedaan
      Pertama, dukungan llama.cpp terintegrasi secara horizontal di dalam ekosistem ggml, sehingga bisa dioptimalkan agar berjalan lebih cepat daripada ollama
      Misalnya, pixtral/mistral small 3.1 menawarkan trik 2D-RoPE yang memakai memori lebih sedikit dibanding Ollama
      Fitur flash attention juga akan segera ditambahkan, yang akan membuat vision encoder berjalan lebih cepat dengan memori lebih hemat
      Kedua, llama.cpp mendukung lebih banyak model daripada ollama
      ollama tidak mendukung pixtral maupun smolvlm
  • Saya penasaran apakah ada alat yang menggabungkan vision ke pengembangan UI
    Contohnya, pada proyek hobi frontend TS/React, saya memakai LLM lokal/cloud yang terhubung ke VSCode, tetapi bahkan dengan model yang mendukung vision saya tetap harus mengambil screenshot lalu menempelkannya
    Akan sangat menghemat waktu jika ada otomatisasi untuk seluruh bagian ini, atau setidaknya ekstensi sederhana yang mengambil screenshot lewat shortcut keyboard lalu otomatis menempelkannya ke chat

  • Singkatan ngl memang sangat membingungkan
    Menarik melihat berbagai tip dan penyesuaian bermunculan untuk menjalankannya secepat mungkin di Mac
    Saya penasaran apakah peningkatan kecepatan seperti ini akan membuat lebih banyak orang bereksperimen dengan fitur vision di rumah

    • Pasti
      llama.cpp berjalan sangat baik baik di PC saya yang sudah berumur 10 tahun maupun di Mac M1