Pencarian Semantik Multimodal dengan Gambar dan Teks
Sebagai manusia, kita menafsirkan dunia melalui indera kita. Kita mendengar suara, melihat gambar, video, dan teks, yang sering kali saling bertumpuk satu sama lain. Kita memahami dunia melalui berbagai modalitas ini dan hubungan di antara mereka. Agar kecerdasan buatan benar-benar menyamai atau melampaui kemampuan manusia, kecerdasan buatan harus mengembangkan kemampuan yang sama untuk memahami dunia melalui berbagai lensa secara bersamaan.
Dalam artikel ini dan video yang menyertainya (di atas) serta buku catatan, kami akan menampilkan terobosan terbaru dalam model yang dapat memproses teks dan gambar secara bersamaan. Kami akan mendemonstrasikan hal ini dengan membangun aplikasi pencarian semantik yang lebih dari sekadar pencocokan kata kunci - aplikasi ini memahami hubungan antara apa yang diminta pengguna dan konten visual yang mereka cari.
Yang membuat proyek ini sangat menarik adalah bahwa proyek ini dibangun sepenuhnya dengan alat bantu sumber terbuka: basis data vektor Milvus, perpustakaan pembelajaran mesin HuggingFace, dan kumpulan data ulasan pelanggan Amazon. Sungguh luar biasa untuk berpikir bahwa hanya satu dekade yang lalu, membangun sesuatu seperti ini akan membutuhkan sumber daya eksklusif yang signifikan. Saat ini, komponen-komponen canggih ini tersedia secara gratis dan dapat dikombinasikan dengan cara yang inovatif oleh siapa saja yang memiliki rasa ingin tahu untuk bereksperimen.
Aplikasi pencarian multimodal kami adalah jenis retrieve-and-rerank. Jika Anda terbiasa dengan retrieval-augmented-generation (RAG), ini sangat mirip, hanya saja hasil akhirnya adalah daftar gambar yang diurutkan ulang oleh model visi-bahasa yang besar (LLVM). Permintaan pencarian pengguna berisi teks dan gambar, dan targetnya adalah sekumpulan gambar yang diindeks dalam database vektor. Arsitektur ini memiliki tiga langkah - pengindeksan, pengambilan, dan pemeringkatan ulang (mirip dengan "pembuatan") - yang kami rangkum secara bergantian.
Pengindeksan
Aplikasi pencarian kita harus memiliki sesuatu untuk dicari. Dalam kasus kami, kami menggunakan sebagian kecil dari kumpulan data "Amazon Reviews 2023", yang berisi teks dan gambar dari ulasan pelanggan Amazon di semua jenis produk. Anda dapat membayangkan pencarian semantik seperti yang kami buat sebagai tambahan yang berguna untuk situs web e-niaga. Kami menggunakan 900 gambar dan membuang teks, meskipun kami mengamati bahwa notebook ini dapat ditingkatkan menjadi ukuran produksi dengan database dan penerapan inferensi yang tepat.
Bagian pertama dari "keajaiban" dalam pipeline kami adalah pilihan model penyematan. Kami menggunakan model multimodal yang baru-baru ini dikembangkan yang disebut Visualized BGE yang dapat menyematkan teks dan gambar secara bersama-sama, atau secara terpisah, ke dalam ruang yang sama dengan model tunggal di mana titik-titik yang berdekatan memiliki kemiripan semantik. Model lain yang serupa telah dikembangkan baru-baru ini, misalnya MagicLens.
Gambar di atas mengilustrasikan: penyematan untuk [gambar singa tampak samping] ditambah teks "tampak depan ini", mendekati penyematan untuk [gambar singa tampak depan] tanpa teks. Model yang sama digunakan untuk input teks plus gambar dan input gambar saja (serta input teks saja). Dengan cara ini, model ini dapat memahami maksud pengguna tentang bagaimana teks kueri berhubungan dengan gambar kueri.
Kami menyematkan 900 gambar produk kami tanpa teks yang sesuai dan menyimpan penyematan tersebut dalam basis data vektor menggunakan Milvus.
Pengambilan
Setelah basis data kita dibuat, kita dapat melayani permintaan pengguna. Bayangkan seorang pengguna datang dengan pertanyaan: "casing ponsel dengan ini" ditambah [gambar Macan Tutul]. Artinya, mereka mencari casing ponsel dengan cetakan kulit Macan Tutul.
Perhatikan bahwa teks kueri pengguna mengatakan "ini" dan bukannya "kulit Macan Tutul". Model penyematan kami harus dapat menghubungkan "ini" dengan apa yang dirujuknya, yang merupakan prestasi yang mengesankan, mengingat iterasi model sebelumnya tidak dapat menangani instruksi terbuka seperti itu. Makalah MagicLens memberikan contoh lebih lanjut.
Kami menyematkan teks kueri dan gambar secara bersamaan dan melakukan pencarian kemiripan pada basis data vektor kami, menghasilkan sembilan hit teratas. Hasilnya ditunjukkan pada gambar di atas, bersama dengan gambar kueri macan tutul. Tampaknya hasil pencarian teratas bukanlah yang paling relevan dengan kueri. Hasil ketujuh tampaknya paling relevan - ini adalah sampul ponsel dengan cetakan kulit macan tutul.
Generasi
Tampaknya pencarian kami gagal karena hasil teratas bukanlah yang paling relevan. Namun, kita dapat memperbaikinya dengan langkah pemeringkatan ulang. Anda mungkin sudah tidak asing lagi dengan pemeringkatan ulang item yang diambil sebagai langkah penting dalam banyak pipeline RAG. Kami menggunakan Phi-3 Vision sebagai model pemeringkatan ulang.
Pertama-tama, kami meminta LLVM untuk menghasilkan keterangan gambar kueri. Keluaran LLVM:
"Gambar ini menunjukkan wajah macan tutul dari dekat dengan fokus pada bulu tutul dan mata hijau."
Kami kemudian memasukkan keterangan ini, satu gambar dengan sembilan hasil dan gambar kueri, dan membuat perintah teks yang meminta model untuk mengurutkan ulang hasilnya, memberikan jawaban dalam bentuk daftar dan memberikan alasan untuk pilihan kecocokan teratas.
Outputnya divisualisasikan pada gambar di atas - item yang paling relevan sekarang menjadi kecocokan teratas - dan alasan yang diberikan adalah:
"Item yang paling cocok adalah yang bertema macan tutul, yang sesuai dengan instruksi permintaan pengguna untuk casing ponsel dengan tema serupa."
Pemeringkatan ulang LLVM kami mampu melakukan pemahaman di seluruh gambar dan teks, dan meningkatkan relevansi hasil pencarian. Salah satu artefak yang menarik adalah bahwa pemeringkatan ulang hanya memberikan delapan hasil dan telah membuang satu hasil, yang menyoroti perlunya pagar pembatas dan keluaran yang terstruktur.
Ringkasan
Dalam tulisan ini dan video serta buku catatan yang menyertainya, kami telah membuat sebuah aplikasi untuk pencarian semantik multimodal pada teks dan gambar. Model penyematan mampu menyematkan teks dan gambar secara bersama-sama atau secara terpisah ke dalam ruang yang sama, dan model pondasi mampu memasukkan teks dan gambar sambil menghasilkan teks sebagai tanggapan. Yang penting, model penyematan mampu menghubungkan maksud pengguna dari instruksi terbuka ke gambar kueri dan dengan cara itu menentukan bagaimana pengguna ingin hasilnya berhubungan dengan gambar input.
Ini hanyalah gambaran dari apa yang akan datang dalam waktu dekat. Kita akan melihat banyak aplikasi pencarian multimodal, pemahaman dan penalaran multimodal, dan seterusnya di berbagai modalitas: gambar, video, audio, molekul, jejaring sosial, data tabular, deret waktu, potensinya tidak terbatas.
Dan inti dari sistem ini adalah basis data vektor yang menyimpan "memori" eksternal sistem. Milvus adalah pilihan yang sangat baik untuk tujuan ini. Milvus adalah sumber terbuka, berfitur lengkap (lihat artikel ini tentang pencarian teks lengkap di Milvus 2.5) dan berskala efisien untuk miliaran vektor dengan lalu lintas skala web dan latensi sub-100ms. Cari tahu lebih lanjut di dokumen Milvus, bergabunglah dengan komunitas Discord kami, dan sampai jumpa di pertemuan Data Tidak Terstruktur berikutnya. Sampai jumpa!
Sumber daya
Buku catatan: "Pencarian Multimodal dengan Ulasan Amazon dan Pemeringkatan Ulang LLVM"
Model penyematan: Kartu model BGE yang divisualisasikan
Alt. model penyematan: Repo model MagicLens
Makalah "MagicLens: Pengambilan Gambar yang Diawasi Sendiri dengan Instruksi Terbuka"
Dataset: Ulasan Amazon 2023
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word