- 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
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--mmprojagar tidak muncul error dukungan multimodalSaya 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-cliSaya sudah membuat quant dengan dukungan vision
Bisa dijalankan dengan perintah seperti
unsloth/gemma-3-4b-it-GGUF:Q4_K_XLSaat chat, Anda bisa mengunggah gambar dengan
/image image.pnglalu mengobrol tentangnyaSekarang di backend Metal tidak perlu lagi memakai
-ngl -1Di CUDA itu masih diperlukan
-1berarti semua layer GPU di-offload ke GPUJika membantu, saya sudah memperbarui halaman dokumentasi di unsloth.ai, jadi silakan langsung lihat cara memakai
llama-mtmd-cliIni juga bisa dipakai untuk Mistral Small
Jika memasang llama.cpp lewat Homebrew,
llama-mtmd-clijuga sudah termasukTinggal beri perintah dan bisa langsung dijalankan
Sebenarnya
-ngl 99lebih stabil,-ngl -1kadang bisa berbeda soal apakah berjalan atau tidakBaru 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/…
Mirip dengan bagaimana tool transformer teks dipisah seperti
huggingface/tokenizersSeri 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 perintahsudo xattrSetelah itu Anda bisa memakai
llama-mtmd-clisebagai antarmuka terminalAtau menjalankan server web
localhost:8080juga 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
--HEADagar selalu mengikuti versi terbaruDalam 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 mudahSangat keren bahwa
llama-serverkini mendukung visionIni fitur yang sudah lama saya tunggu
Sekarang
-nglotomatis diatur ke nilai maksimumTidak perlu lagi menentukan
-ngl 99secara manualNamun 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
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
llama.cpp berjalan sangat baik baik di PC saya yang sudah berumur 10 tahun maupun di Mac M1