Bagikan melalui


Pilih layanan Azure untuk pencarian vektor

Pencarian vektor adalah metode untuk menemukan informasi yang disimpan dalam database dalam bentuk vektor. Vektor adalah grup angka yang mewakili fitur atau karakteristik media, seperti teks atau gambar. Vektor adalah kemajuan signifikan atas metode pencarian berbasis kata kunci tradisional. Mereka menawarkan hasil yang lebih cepat dan lebih akurat dengan memahami hubungan semantik dalam informasi.

Azure menawarkan beberapa cara untuk menyimpan dan mencari data vektorisasi. Artikel ini membantu arsitek dan pengembang yang perlu memahami dan memilih layanan Azure yang tepat untuk pencarian vektor untuk aplikasi mereka.

Artikel ini membandingkan layanan berikut berdasarkan kemampuan pencarian vektor mereka:

Arsitek dan pengembang harus membandingkan layanan yang tersedia dari perspektif persyaratan sistem dalam Memilih layanan kandidat dan dalam matriks Kemampuan.

Memilih layanan kandidat

Bagian ini membantu Anda memilih layanan yang paling mungkin untuk kebutuhan Anda. Untuk mempersempit pilihan, mulailah dengan mempertimbangkan persyaratan sistem.

Persyaratan utama

Bagan alur yang membantu Anda memilih layanan Azure yang tepat untuk pencarian vektor.

Saat memutuskan apakah akan menggunakan solusi database tradisional atau Azure AI layanan Pencarian, pertimbangkan kebutuhan Anda dan apakah Anda dapat melakukan pencarian vektor langsung atau real time pada data Anda. Database relasional atau NoSQL tradisional paling cocok untuk skenario Anda jika Anda sering mengubah nilai di bidang vektorisasi dan perubahan perlu dicari secara real time atau mendekati real time. Demikian juga, menggunakan database yang ada mungkin menjadi solusi terbaik bagi Anda untuk memenuhi target performa Anda. Di sisi lain, jika beban kerja Anda tidak memerlukan pencarian vektor real time atau mendekati real time, dan Anda menerima pengelolaan indeks vektor, Pencarian AI dapat menjadi pilihan yang menarik.

Jika Anda memilih solusi database tradisional, jenis layanan database tertentu yang Anda putuskan untuk digunakan sebagian besar tergantung pada kumpulan keterampilan tim Anda dan database yang saat ini Anda operasikan. Jika Anda sudah menggunakan jenis database tertentu, seperti MongoDB misalnya, maka menggunakan jenis database yang sama mungkin menjadi solusi termampu untuk skenario Anda. Seperti yang ditunjukkan di bagian Matriks kemampuan, setiap layanan database memiliki beberapa kemampuan dan batasan unik untuk pencarian vektor. Tinjau informasi tersebut untuk memastikan bahwa jenis database pilihan Anda mendukung fungsionalitas yang Anda butuhkan.

Jika kekhawatiran biaya adalah faktor pendorong, mempertahankan desain Anda yang ada kemungkinan paling sesuai untuk skenario Anda karena memperkenalkan layanan baru atau instans lain dari layanan database dapat menambahkan biaya bersih dan kompleksitas baru. Menggunakan database Anda saat ini untuk pencarian vektor kemungkinan memengaruhi biaya Anda lebih murah daripada menggunakan layanan khusus.

Jika Anda memilih untuk menggunakan database tradisional alih-alih Pencarian AI, beberapa fitur pencarian tingkat lanjut tidak tersedia secara default. Misalnya, jika Anda ingin melakukan reranking atau pencarian hibrid, aktifkan fungsionalitas tersebut melalui Transact-SQL (T-SQL) atau pengodean lainnya.

Matriks kemampuan

Tabel di bagian ini meringkas perbedaan utama dalam kemampuan.

Fitur Dasar

Dukungan asli untuk jenis data vektor, perkiraan indeks vektor tetangga terdekat (ANN), batas dimensi vektor, beberapa bidang vektor, dan beberapa indeks vektor terkadang berbeda antara layanan. Persyaratan beban kerja Anda mungkin memerlukan beberapa fitur khusus ini. Pahami fitur vektor dasar setiap layanan Azure, seperti yang diperlihatkan dalam tabel berikut.

Kemampuan Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB untuk MongoDB (vCore) Azure Database for PostgreSQL (Flex) Pencarian Azure AI Database Azure SQL
Pencarian vektor bawaan Ya 1 Ya Ya 2 Ya 1 Ya 3 Ya 4
Jenis data vektor Ya Ya Ya Ya Ya Tidak
Batas dimensi 6 16.000 7 atau 2000 5058 atau 4096 2.000 16.000 7 atau 2000 3.072 1998 (pratinjau)5
Beberapa bidang vektor Ya Ya No Ya Ya Ya
Beberapa indeks vektor Ya Ya No Ya Ya Ya
  1. "pgvector" mendukung pencarian vektor, yang merupakan ekstensi PostgreSQL.
  2. Menggunakan pencarian vektor pada penyematan di Azure Cosmos DB untuk MongoDB vCore
  3. Vektor dalam Pencarian Azure AI
  4. Pencarian vektor asli tersedia dengan pratinjau adopsi awal Azure SQL Database
  5. Vektor dapat disimpan dalam kolom atau variabel VARBINARY(8000).
  6. Menyematkan model dari OpenAI, 1536 untuk text-embedding-ada-002 dan text-embedding-3-small, dan 3072 untuk text-embedding-3-large. Untuk model penyematan multimodal Azure AI Vision, 1024 untuk gambar dan teks.
  7. Vektor dapat memiliki hingga 16.000 dimensi. Tetapi indeks yang menggunakan "IVFFlat" dan "HNSW" mendukung vektor dengan hingga 2.000 dimensi.
  8. Vektor yang diindeks dengan jenis indeks datar dapat mencapai paling banyak 505 dimensi. Vektor yang diindeks dengan jenis indeks quantizedFlat atau DiskANN dapat mencapai paling banyak 4.096 dimensi.

Metode pencarian

Beban kerja sering kali perlu menggabungkan pencarian vektor dengan pencarian teks lengkap atau bahkan pencarian hibrid (pencarian teks lengkap atau pencarian semantik ditambah pencarian vektor). Kombinasi pencarian hibrid dan reranking mencapai akurasi tinggi untuk beban kerja. Anda dapat menerapkan pencarian hibrid dan reranking secara manual dengan kode Anda sendiri, atau Anda dapat mempertimbangkan bagaimana penyimpanan vektor Anda mendukung persyaratan beban kerja ini.

Metode pencarian Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB untuk MongoDB (vCore) Azure Database for PostgreSQL (Flex) Pencarian Azure AI Database Azure SQL
Pencarian teks-lengkap Ya 1 No Ya 2 Ya 1 Ya 3 Ya 4
Pencarian hibrid Ya 5 Tidak Tidak Ya 5 Ya 6 Ya 7
Reranking bawaan Tidak No No Tidak Ya 8 No
  1. Pencarian Teks Lengkap PostgreSQL
  2. Mencari dan mengkueri dengan indeks teks di Azure Cosmos DB untuk MongoDB vCore
  3. Mulai menggunakan Pencarian Teks Lengkap
  4. Data vektor di SQL Server
  5. Tidak disediakan sebagai fitur kelas satu tetapi kode sampel disediakan.
  6. Pencarian hibrid (kombinasi pencarian teks lengkap, pencarian vektor, dan peringkat semantik) disediakan sebagai fitur kelas satu.
  7. Contoh pencarian hibrid untuk database Azure SQL dan SQL Server.
  8. Reranking yang disebut Semantic Ranking adalah fitur kelas satu untuk mereranking hasil pencarian teks lengkap dan/atau pencarian vektor.

Algoritma pengindeksan data vektor

Pengindeksan data vektor adalah kemampuan untuk menyimpan dan mengambil vektor secara efisien. Kemampuan ini penting karena pengindeksan memengaruhi kecepatan dan akurasi pencarian kesamaan dan kueri tetangga terdekat pada sumber data.

Indeks biasanya didasarkan pada tetangga terdekat k yang lengkap (Ek-NN) atau algoritma ANN. Ek-NN melakukan pencarian lengkap pada semua titik data satu per satu dan mengembalikan tetangga terdekat K yang akurat. Ek-NN bekerja dalam milidetik dengan sejumlah kecil data tetapi dapat menyebabkan latensi untuk data dalam jumlah besar.

DiskANN, HNSW , dan IVFFlat adalah indeks algoritma ANN. Memilih strategi pengindeksan yang sesuai melibatkan pertimbangan yang cermat dari berbagai faktor seperti sifat himpunan data, persyaratan spesifik kueri, dan sumber daya yang tersedia. DiskANN dapat beradaptasi dengan perubahan dalam himpunan data dan menyimpan sumber daya komputasi. HNSW unggul dalam sistem yang memerlukan respons kueri cepat dan dapat beradaptasi dengan perubahan dalam himpunan data. IVFFlat efektif di lingkungan di mana sumber daya perangkat keras terbatas, atau volume kueri tidak tinggi.

Pahami jenis pengindeksan data vektor apa yang disediakan dari tabel berikut.

Pendekatan pengindeksan Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB untuk MongoDB (vCore) Azure Database for PostgreSQL (Flex) Pencarian Azure AI Database Azure SQL
DiskANN Tidak Ya No No No Tidak
Tetangga Terdekat K Lengkap (EKNN) Ya Ya Ya Ya Ya Ya
Dunia Kecil yang Dapat Dinavigasi Hierarkis (HNSW) Ya Tidak Ya (pratinjau)1 Ya Ya Tidak
IVFflat Ya No Ya Ya No Tidak
Lainnya - datar, quantizedFlat2 Batasan bidang vektor 3
Batasan indeks vektor 4
- - Pustaka eksternal tersedia5
  1. Azure Cosmos DB for MongoDB - Gambaran umum pencarian vektor
  2. Kebijakan pengindeksan vektor
  3. Hanya satu bidang vektor yang tersedia per kontainer.
  4. Hanya satu indeks vektor yang tersedia per kontainer.
  5. Indeks dapat dibuat dengan bantuan pustaka eksternal seperti Scikit Learn atau FAISS

Kesamaan dan kemampuan perhitungan jarak

Ada kesamaan Kosinus, produk Dot, dan metode perhitungan jarak Euclidean untuk pencarian vektor. Metode ini digunakan untuk menghitung kesamaan antara dua vektor atau jarak antara dua vektor.

Manfaat analisis data awal dari metrik dan jarak Euclidean, yang memungkinkan ekstraksi wawasan yang berbeda tentang struktur data, sedangkan klasifikasi teks umumnya berkinerja lebih baik di bawah jarak Euclidean. Pengambilan teks yang paling mirip dengan teks tertentu biasanya berfungsi lebih baik dengan kesamaan kosinus.

Penyematan Azure OpenAI Service mengandalkan kesamaan kosinus dengan kesamaan komputasi antara dokumen dan kueri.

Perhitungan perbandingan vektor bawaan Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB untuk MongoDB (vCore) Azure Database for PostgreSQL (Flex) Pencarian Azure AI Database Azure SQL
Kesamaan kosinus Ya Ya1 Ya Ya Ya Ya 2
Jarak euclidean (jarak L2) Ya Ya1 Ya Ya Ya Ya 2
Produk titik Ya Ya1 Ya Ya Ya Ya 2
  1. Perhitungan Jarak Vektor untuk Azure Cosmos DB untuk NoSQL.
  2. Contoh perhitungan jarak untuk database Azure SQL dan SQL Server.

Integrasi dengan Azure OpenAI dan komponen lainnya

Saat menerapkan pencarian vektor, Anda juga dapat mempertimbangkan untuk menautkan dengan komponen Microsoft lainnya. Misalnya, Azure OpenAI Service membantu Anda membuat vektor untuk data Anda dan memasukkan kueri untuk pencarian kesamaan vektor.

Kemampuan Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB untuk MongoDB (vCore) Azure Database for PostgreSQL (Flex) Pencarian Azure AI Database Azure SQL
Layanan Azure OpenAI - tambahkan data Anda sendiri Tidak Tidak Ya 1 No Ya 2 No
Penyematan vektor dengan Azure OpenAI Tidak No Tidak Ya 3 Ya 4 Ya 5
Integrasi dengan alur perintah Tidak No No Tidak Ya 6 No
Integrasi dengan Semantic Kernel Ya 7 Ya8 Ya9 Ya 7 Ya 10 Ya 11
  1. Azure Cosmos DB for MongoDB (vCore) didukung sebagai sumber data untuk Azure OpenAI di Data Anda.
  2. Azure AI Search didukung sebagai sumber data untuk Azure OpenAI di Data Anda.
  3. Ekstensi Azure AI (pratinjau) tersedia.
  4. Azure AI Search menyediakan keterampilan untuk mem-vektorisasi teks yang dipotong.
  5. Anda dapat membuat prosedur tersimpan untuk penyebaran model penyematan Anda.
  6. Didukung sebagai database vektor di alat Pencarian Vector DB.
  7. Didukung sebagai konektor memori, dan konektor database vektor (C#).
  8. Didukung sebagai konektor memori, dan konektor database vektor (C#, Python).
  9. Didukung sebagai konektor database vektor (C#, Python).
  10. Didukung sebagai konektor memori, dan konektor database vektor (C#, Python).
  11. Didukung sebagai konektor memori.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Kontributor lain:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah selanjutnya

Menerapkan penambangan pengetahuan dengan Azure AI Search. Jalur pembelajaran ini mengeksplorasi cara menggunakan Azure AI Search.