Sematan Matryoshka: Detail pada Berbagai Skala
Apa yang dimaksud dengan Embeddings Matryoshka?
Ketika membangun sistem pencarian vektor yang efisien, salah satu tantangan utama adalah mengelola biaya penyimpanan sambil mempertahankan latensi dan pemanggilan yang dapat diterima. Model penyematan modern menghasilkan vektor dengan ratusan atau ribuan dimensi, menciptakan penyimpanan yang signifikan dan overhead komputasi untuk vektor mentah dan indeks.
Secara tradisional, kebutuhan penyimpanan dikurangi dengan menerapkan metode kuantisasi atau pengurangan dimensi sebelum membangun indeks. Sebagai contoh, kita dapat menghemat penyimpanan dengan menurunkan presisi menggunakan Product Quantization (PQ) atau jumlah dimensi menggunakan Principal Component Analysis (PCA). Metode-metode ini menganalisis seluruh kumpulan vektor untuk menemukan vektor yang lebih ringkas yang mempertahankan hubungan semantik antar vektor.
Meskipun efektif, pendekatan standar ini mengurangi presisi atau dimensi hanya sekali dan pada skala tunggal. Tetapi bagaimana jika kita dapat mempertahankan beberapa lapisan detail secara bersamaan, seperti piramida representasi yang semakin presisi?
Masuklah ke dalam penyematan Matryoshka. Dinamai berdasarkan boneka sarang Rusia (lihat ilustrasi), konstruksi cerdas ini menyematkan beberapa skala representasi dalam satu vektor. Tidak seperti metode pasca-pemrosesan tradisional, embeddings Matryoshka mempelajari struktur multi-skala ini selama proses pelatihan awal. Hasilnya luar biasa: tidak hanya penyematan penuh yang menangkap semantik input, tetapi setiap awalan subset bersarang (paruh pertama, kuartal pertama, dll.) memberikan representasi yang koheren, meskipun tidak terlalu detail.
Gambar: Visualisasi penyematan Matryoshka dengan beberapa lapisan detail
Gambar: Visualisasi penyematan Matryoshka dengan beberapa lapis detail
Pendekatan ini sangat kontras dengan penyematan konvensional, di mana menggunakan subset sewenang-wenang dari dimensi vektor biasanya menghancurkan makna semantik. Dengan embedding Matryoshka, Anda dapat memilih granularitas yang paling baik menyeimbangkan ketepatan dan biaya komputasi tugas spesifik Anda.
Perlu pencarian perkiraan cepat? Gunakan "boneka" terkecil. Perlu akurasi maksimum? Gunakan penyematan penuh. Fleksibilitas ini menjadikannya sangat berharga untuk sistem yang beradaptasi dengan persyaratan kinerja atau kendala sumber daya yang berbeda.
Inferensi
Aplikasi yang berharga dari penyematan Matryoshka adalah mempercepat pencarian kemiripan tanpa mengorbankan penarikan kembali. Dengan memanfaatkan himpunan bagian yang lebih kecil dari kueri dan embedding basis data - seperti 1/32 pertama dari dimensinya - kita dapat membangun sebuah indeks di atas ruang yang diperkecil ini yang masih mempertahankan banyak informasi kemiripan. Hasil awal dari ruang penyisipan yang lebih kecil ini dapat digunakan secara langsung. Namun, ada juga teknik untuk meningkatkan daya ingat dan memperhitungkan pengurangan kecil dari pengurangan dimensi, sehingga pendekatan ini efisien dan efektif untuk tugas pencarian kemiripan.
Gambar: Cara kerja pencarian corong dengan penyematan Matryoshka
Gambar: Cara kerja pencarian corong dengan penyematan Matryoshka
Untuk mempercepat pencarian kemiripan secara efisien sekaligus mempertahankan akurasi, kita dapat menggunakan pendekatan "pencarian corong". Pertama, kami melakukan pencarian kemiripan awal dengan hanya menggunakan 1/32 pertama dari dimensi penyematan, menghasilkan kumpulan item kandidat yang luas. Kami kemudian menentukan ulang peringkat kandidat ini berdasarkan kemiripannya dengan kueri menggunakan 1/16 dimensi pertama, memangkas sebagian dari daftar. Proses ini berlanjut secara berulang, melakukan pemeringkatan ulang dan pemangkasan dengan subset yang semakin besar dari dimensi penyematan-1/8, 1/4, dan seterusnya. Yang penting, kami hanya melakukan satu pencarian kemiripan awal dalam ruang dimensi yang lebih rendah ini, dan satu lintasan model embedding menghitung embedding kueri. Proses penyaringan ini mempersempit kandidat pada setiap langkah dan lebih cepat dan lebih efisien daripada langsung mencari di ruang dimensi penuh. Menggambar banyak kecocokan dari ruang 1/32 dimensi dan menyempurnakannya melalui pencarian corong dapat secara signifikan mempercepat pencarian kemiripan sambil mempertahankan daya ingat yang kuat.
Pelatihan
Mari kita bahas beberapa detail teknisnya. Metodenya sangat sederhana untuk diterapkan. Pertimbangkan konteks menyempurnakan model BERT untuk penyematan kalimat. Untuk mengubah model BERT, yang telah dilatih sebelumnya pada masked-token loss, menjadi model penyematan kalimat, kita membentuk penyematan kalimat sebagai rata-rata dari lapisan akhir, yaitu rata-rata dari penyematan kontekstual per-token.
Salah satu pilihan tujuan pelatihan adalah Cosine Sentence (CoSENT) loss, L v s . Ini memasukkan sepasang sematan kalimat, u v, dan skor kemiripan yang diinginkan, s (lihat tautan di atas untuk rumusnya). Sekarang, untuk mempelajari sematan Matryoshka, kita membuat sedikit modifikasi pada tujuan pelatihan:
d L v = w L1, v 1) + w L1, v 1) + w L1, v
di mana penjumlahan dilanjutkan dengan menghitung kerugian pada setengah dari input ke term sebelumnya sampai kemacetan informasi tercapai. Para penulis menyarankan untuk mengatur
= 1
Sederhananya, kerugian Matryoshka adalah jumlah tertimbang dari kerugian asli atas himpunan bagian rekursif dari input.
Satu hal penting yang dapat diambil dari persamaan di atas adalah bahwa Matryoshka loss mencapai pembelajaran representasi yang efisien pada berbagai skala dengan berbagi bobot di seluruh model penyematan (model yang sama digunakan untuk menyandikan, misalnya, u dan u ) dan berbagi dimensi di seluruh skala u merupakan bagian dari u).
Penyematan Matryoshka dan Milvus
Milvus dengan lancar mendukung model penyematan Matryoshka apa pun yang dapat dimuat melalui pustaka standar seperti pymilvus.model, transformer-kalimat, atau alat bantu lain yang serupa. Dari sudut pandang sistem, tidak ada perbedaan fungsional antara model penyematan biasa dan model yang secara khusus dilatih untuk menghasilkan penyematan Matryoshka.
Model-model penyematan Matryoshka yang populer meliputi:
OpenAI
text-embedding-3-large
Nomic
nomic-embed-text-v1
Alibaba
gte-multilingual-base
Untuk panduan lengkap tentang cara menggunakan embedding Matryoshka dengan Milvus, lihat buku panduan Pencarian Corong dengan Embedding Matryoshka.
Ringkasan
Penyematan Matryoshka memungkinkan pengembang membuat penyematan yang dipersingkat tanpa mengorbankan integritas semantik, sehingga ideal untuk pencarian dan penyimpanan yang lebih efisien. Meskipun Anda dapat memodifikasi model yang sudah ada, opsi yang sudah dilatih sebelumnya, seperti dari OpenAI dan Hugging Face, juga tersedia.
Namun, keterbatasan saat ini adalah kelangkaan embedding Matryoshka open-source, dengan hanya sedikit yang tersedia di hub Hugging Face. Selain itu, model-model ini sering kali tidak secara eksplisit dilabeli sebagai "Matryoshka", sehingga lebih sulit untuk ditemukan. Mudah-mudahan, dengan meningkatnya minat, ketersediaan yang lebih luas dan pelabelan yang lebih jelas akan segera menyusul.
Siap untuk menyederhanakan kemampuan pencarian Anda? Mulailah dengan penyematan Milvus + Matryoshka hari ini!
Sumber daya
- Apa yang dimaksud dengan Embeddings Matryoshka?
- Inferensi
- Pelatihan
- Penyematan Matryoshka dan Milvus
- Ringkasan
- Sumber daya
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word