Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan database vektor terintegrasi di Azure DocumentDB untuk menyambungkan aplikasi berbasis AI dengan data Anda yang disimpan di Azure DocumentDB dengan lancar. Integrasi ini dapat mencakup aplikasi yang Anda buat dengan menggunakan embedding Azure OpenAI. Database vektor terintegrasi asli memungkinkan Anda menyimpan, mengindeks, dan mengkueri data vektor dimensi tinggi secara efisien yang disimpan langsung di Azure DocumentDB, bersama dengan data asli tempat data vektor dibuat. Ini menghilangkan kebutuhan untuk mentransfer data Anda ke penyimpanan vektor alternatif dan dikenakan biaya tambahan.
Apa itu penyimpanan vektor?
Penyimpanan vektor atau database vektor adalah database yang dirancang untuk menyimpan dan mengelola penyematan vektor, yang merupakan representasi matematika data dalam ruang dimensi tinggi. Dalam ruang ini, setiap dimensi sesuai dengan fitur data, dan puluhan ribu dimensi mungkin digunakan untuk mewakili data canggih. Posisi vektor dalam ruang ini mewakili karakteristiknya. Kata, frasa, atau seluruh dokumen, dan gambar, audio, dan jenis data lainnya semuanya dapat di-vektorisasi.
Bagaimana cara kerja penyimpanan vektor?
Di penyimpanan vektor, algoritma pencarian vektor digunakan untuk mengindeks dan meminta embedding. Beberapa algoritma pencarian vektor terkenal termasuk Hierarkis Navigable Small World (HNSW), Inverted File (IVF), dan DiskANN. Pencarian vektor adalah metode yang membantu Anda menemukan item serupa berdasarkan karakteristik data mereka, bukan dengan mencocokkan secara tepat pada bidang properti. Teknik ini berguna dalam aplikasi seperti mencari teks serupa, menemukan gambar terkait, membuat rekomendasi, atau bahkan mendeteksi anomali. Ini digunakan untuk mengkueri penyematan vektor (daftar angka) dari data yang Anda buat dengan model pembelajaran mesin menggunakan API penyematan. Contoh API penyematan adalah penyematan Azure OpenAI atau Hugging Face di Azure. Pencarian vektor mengukur jarak antara vektor data dan vektor kueri Anda. Vektor data yang paling dekat dengan vektor kueri Anda adalah vektor yang ditemukan paling mirip secara semantik.
Dalam database vektor terintegrasi di Azure DocumentDB, Anda dapat menyimpan, mengindeks, dan melakukan kueri embedding bersamaan dengan data asli. Pendekatan ini menghilangkan biaya tambahan untuk mereplikasi data dalam database vektor murni terpisah. Selain itu, arsitektur ini menjaga penyematan vektor dan data asli bersama-sama, yang lebih memfasilitasi operasi data multimodal, dan memungkinkan konsistensi, skala, dan performa data yang lebih besar.
Kasus penggunaan database vektor
Database vektor digunakan di banyak area AI dan analisis data. Mereka membantu dengan tugas seperti memahami bahasa alami, mengenali gambar dan video, membangun sistem rekomendasi, dan mendukung fitur pencarian. Anda dapat menemukannya di aplikasi AI analitik dan AI generatif.
Misalnya, Anda dapat menggunakan database vektor untuk:
- Identifikasi gambar, dokumen, dan lagu serupa berdasarkan konten, tema, sentimen, dan gayanya.
- Identifikasi produk serupa berdasarkan karakteristik, fitur, dan grup pengguna mereka.
- Merekomendasikan konten, produk, atau layanan berdasarkan preferensi individu.
- Merekomendasikan konten, produk, atau layanan berdasarkan kesamaan grup pengguna.
- Identifikasi opsi potensial yang paling sesuai dari kumpulan pilihan besar untuk memenuhi persyaratan yang kompleks.
- Identifikasi anomali data atau aktivitas penipuan yang berbeda dari pola dominan atau normal.
- Terapkan memori persisten untuk agen AI.
- Aktifkan retrieval-augmented generation (RAG).
Database vektor terintegrasi vs. database vektor murni
Ada dua jenis umum implementasi database vektor: database vektor murni dan database vektor terintegrasi dalam database NoSQL atau relasional.
Database vektor murni secara efisien menyimpan dan mengelola penyematan vektor bersama dengan sejumlah kecil metadata. Ini terpisah dari sumber data yang darinya embedding berasal.
Database vektor yang terintegrasi dalam NoSQL berkinerja tinggi atau database relasional menyediakan kemampuan ekstra. Database vektor terintegrasi dalam database NoSQL atau relasional dapat menyimpan, mengindeks, dan melakukan kueri embedding bersama dengan data asli yang sesuai. Pendekatan ini menghilangkan biaya tambahan untuk mereplikasi data dalam database vektor murni terpisah. Selain itu, menjaga penyematan vektor dan data asli bersama-sama lebih memfasilitasi operasi data multimodal dan memungkinkan konsistensi, skala, dan performa data yang lebih besar.
Database vektor sumber terbuka
Saat pengembang memilih database vektor, opsi sumber terbuka memberikan banyak manfaat. Sumber terbuka berarti bahwa kode sumber perangkat lunak tersedia secara bebas, memungkinkan pengguna untuk menyesuaikan database sesuai dengan kebutuhan spesifik mereka. Fleksibilitas ini bermanfaat bagi organisasi yang tunduk pada persyaratan peraturan unik untuk data, seperti perusahaan di industri jasa keuangan.
Keuntungan lain dari database vektor sumber terbuka adalah dukungan komunitas yang kuat yang mereka nikmati. Komunitas pengguna aktif sering berkontribusi pada pengembangan database ini, memberikan dukungan, dan berbagi praktik terbaik, mempromosikan inovasi.
Beberapa individu memilih database vektor sumber terbuka karena mereka "gratis", yang berarti tidak ada biaya untuk memperoleh atau menggunakan perangkat lunak. Alternatifnya adalah menggunakan tingkat gratis yang ditawarkan oleh layanan database vektor terkelola. Layanan terkelola ini tidak hanya menyediakan akses bebas biaya hingga batas penggunaan tertentu tetapi juga menyederhanakan beban operasional dengan menangani pemeliharaan, pembaruan, dan skalabilitas. Oleh karena itu, dengan menggunakan tingkat gratis layanan database vektor terkelola, Anda dapat mencapai penghematan biaya sambil mengurangi overhead manajemen. Pendekatan ini memungkinkan Anda untuk lebih fokus pada aktivitas inti Anda daripada pada administrasi database.
Pilih database vektor sumber terbuka terbaik
Memilih database vektor sumber terbuka terbaik perlu mempertimbangkan beberapa faktor. Performa dan skalabilitas database sangat penting, karena memengaruhi apakah database dapat menangani persyaratan beban kerja spesifik Anda. Database dengan kemampuan pengindeksan dan kueri yang efisien biasanya menawarkan performa optimal. Faktor lain adalah dukungan dan dokumentasi komunitas yang tersedia untuk database. Komunitas yang kuat dan dokumentasi yang cukup dapat memberikan bantuan yang berharga. Misalnya, DocumentDB adalah database vektor sumber terbuka yang populer:
Opsi paling populer mungkin bukan pilihan terbaik untuk Anda. Dengan demikian, Anda harus membandingkan opsi yang berbeda berdasarkan fitur, jenis data yang didukung, dan kompatibilitas dengan alat dan kerangka kerja yang ada yang Anda gunakan. Anda juga harus mengingat tantangan database vektor sumber terbuka.
Tantangan database vektor sumber terbuka
Sebagian besar database vektor sumber terbuka, termasuk yang tercantum sebelumnya, adalah database vektor murni. Dengan kata lain, mereka dirancang untuk menyimpan dan mengelola penyematan vektor saja, bersama dengan sejumlah kecil metadata. Karena bekerja secara terpisah dari data asli Anda, Anda perlu memindahkan data di antara layanan yang berbeda. Kompleksitas ini menambah biaya tambahan, membuat semuanya lebih kompleks, dan dapat memperlambat sistem produksi Anda.
Mereka juga menimbulkan tantangan yang khas dari database sumber terbuka:
- Penyiapan: Anda memerlukan pengetahuan mendalam untuk menginstal, mengonfigurasi, dan mengoperasikan database, terutama untuk penyebaran yang kompleks. Mengoptimalkan sumber daya dan konfigurasi saat meningkatkan skala operasi memerlukan pemantauan dan penyesuaian yang ketat.
- Pemeliharaan: Anda harus mengelola pembaruan, patch, dan pemeliharaan Anda sendiri. Keahlian pembelajaran mesin tidak cukup; Anda juga harus memiliki pengalaman luas dalam administrasi database.
- Dukungan: Dukungan resmi dapat dibatasi dibandingkan dengan layanan terkelola, mengandalkan lebih banyak bantuan komunitas.
Oleh karena itu, meskipun awalnya gratis, database vektor sumber terbuka dikenakan biaya yang signifikan saat meningkatkan skala. Memperluas operasi membutuhkan lebih banyak perangkat keras, staf IT terampil, dan manajemen infrastruktur canggih, yang menyebabkan pengeluaran yang lebih tinggi dalam perangkat keras, personel, dan biaya operasional. Penskalaan database vektor sumber terbuka bisa memerlukan biaya besar meskipun tidak ada biaya lisensi.
Mengatasi tantangan database vektor sumber terbuka
Database vektor yang dikelola sepenuhnya yang terintegrasi dalam NoSQL yang sangat berkinerja tinggi atau database relasional menghindari biaya tambahan dan kompleksitas database vektor sumber terbuka. Sebuah database semacam itu menyimpan, mengindeks, dan mengkueri penyematan bersama data asli yang sesuai. Pendekatan ini menghilangkan biaya tambahan untuk mereplikasi data dalam database vektor murni terpisah. Selain itu, menjaga penyematan vektor dan data asli bersama-sama lebih memfasilitasi operasi data multimodal, dan memungkinkan konsistensi, skala, dan performa data yang lebih besar. Sementara itu, layanan yang dikelola sepenuhnya membantu pengembang menghindari kerepotan dalam menyiapkan, memelihara, dan mengandalkan bantuan komunitas untuk database vektor sumber terbuka. Selain itu, beberapa layanan database vektor terkelola menawarkan tingkat gratis seumur hidup.
Contohnya adalah database vektor terintegrasi di Azure DocumentDB. Penyiapan ini memungkinkan pengembang untuk menghemat uang seperti yang mereka lakukan dengan database vektor sumber terbuka. Tetapi tidak seperti opsi sumber terbuka, penyedia layanan mengurus pemeliharaan, pembaruan, dan penskalaan untuk Anda. Peningkatan cepat dan mudah sambil menjaga total biaya kepemilikan (TCO) yang rendah ketika saatnya untuk meningkatkan operasi. Anda juga dapat menggunakan layanan ini untuk menskalakan aplikasi MongoDB dengan mudah yang sudah dalam produksi.
Melakukan pencarian kesamaan vektor
Azure DocumentDB menyediakan kemampuan pencarian vektor yang kuat, memungkinkan Anda melakukan pencarian kesamaan berkecepatan tinggi di seluruh himpunan data yang kompleks. Untuk melakukan pencarian vektor di Azure DocumentDB, Anda harus terlebih dahulu membuat indeks vektor. Meskipun Azure DocumentDB menawarkan beberapa opsi, berikut adalah beberapa panduan umum untuk membantu Anda memulai berdasarkan ukuran himpunan data Anda:
| IVF | HNSW | DiskANN (disarankan) | |
|---|---|---|---|
| Deskripsi | Indeks IVFFlat membagi vektor menjadi daftar, lalu mencari subset yang paling dekat dengan vektor kueri. | Indeks HNSW membuat grafik multilayer. | DiskANN adalah algoritma pencarian tetangga terdekat secara perkiraan yang dirancang untuk pencarian vektor yang efisien pada skala apa pun. |
| Trade-off penting |
Pro: Waktu build yang lebih cepat, penggunaan memori yang lebih rendah. Kontra: Performa kueri yang lebih rendah (dalam hal kompromi antara kecepatan dan pengingatan). |
Kelebihan: Performa kueri yang lebih baik (dalam hal trade-off antara kecepatan dan recall) dapat dicapai pada tabel kosong. Kontra: Waktu build yang lebih lambat, penggunaan memori yang lebih tinggi. |
Pro: Efisien dalam skala apa pun, pengenalan tinggi, throughput tinggi, latensi rendah. |
| Jumlah vektor | Di bawah 10.000 | Hingga 50.000 | Hingga 500.000+ |
| Tingkat kluster yang direkomendasikan | M10 atau M20 | M30 dan yang lebih tinggi | M30 dan yang lebih tinggi |
Anda dapat menggunakan indeks DiskANN pada M30 dan tingkat yang lebih tinggi. Untuk membuat indeks DiskANN, atur "kind" parameter ke "vector-diskann" mengikuti templat ini:
{
"createIndexes": "<collection_name>",
"indexes": [
{
"name": "<index_name>",
"key": {
"<path_to_property>": "cosmosSearch"
},
"cosmosSearchOptions": {
"kind": "vector-diskann",
"dimensions": <integer_value>,
"similarity": <string_value>,
"maxDegree" : <integer_value>,
"lBuild" : <integer_value>,
}
}
]
}
| Bidang | Tipe | Description |
|---|---|---|
index_name |
string | Nama unik indeks. |
path_to_property |
string | Jalur ke properti yang berisi vektor. Jalur ini bisa menjadi properti tingkat atas atau jalur notasi titik ke properti . Vektor harus menjadi number[] agar dapat diindeks dan digunakan dalam hasil pencarian vektor. Vektor yang menggunakan jenis lain, seperti double[], mencegah dokumen diindeks. Dokumen yang tidak diindeksa tidak dikembalikan dalam hasil pencarian vektor. |
kind |
string | Jenis indeks vektor yang akan dibuat. Opsinya adalah vector-ivf, , vector-hnswdan vector-diskann. |
dimensions |
bilangan bulat | Jumlah dimensi untuk kesamaan vektor. DiskANN mendukung hingga 16.000 dimensi (dengan kuantisasi produk), dengan dukungan masa depan direncanakan untuk mencapai lebih dari 40.000. |
similarity |
string | Metrik kesamaan untuk digunakan dengan indeks. Opsi yang mungkin adalah COS (jarak kosinus), L2 (jarak Euclidean), dan IP (produk dalam). |
maxDegree |
bilangan bulat | Jumlah maksimum tepi per simpul dalam grafik. Parameter ini berkisar dari 20 hingga 2048 (defaultnya adalah 32). Lebih tinggi maxDegree cocok untuk himpunan data dengan dimensi tinggi dan/atau persyaratan akurasi tinggi. |
lBuild |
bilangan bulat | Menetapkan jumlah tetangga kandidat yang dievaluasi selama konstruksi indeks DiskANN. Parameter ini, yang berkisar dari 10 hingga 500 (defaultnya adalah 50), menyeimbangkan akurasi dan overhead komputasi: nilai yang lebih tinggi meningkatkan kualitas dan akurasi indeks tetapi meningkatkan waktu build |
Melakukan pencarian vektor dengan DiskANN
Untuk melakukan pencarian vektor, gunakan $search tahap alur agregasi, dan kueri dengan cosmosSearch operator. DiskANN memungkinkan pencarian berkinerja tinggi di seluruh himpunan data besar dengan pemfilteran opsional seperti filter geospasial atau berbasis teks.
{
"$search": {
"cosmosSearch": {
"path": "<path_to_property>",
"query": "<query_vector>",
"k": <num_results_to_return>,
"filter": {"$and": [
{ "<attribute_1>": { "$eq": <value> } },
{"<location_attribute>": {"$geoWithin": {"$centerSphere":[[<longitude_integer_value>, <latitude_integer_value>], <radius>]}}}
]}
}
}
},
| Bidang | Tipe | Description |
|---|---|---|
lSearch |
bilangan bulat | Menentukan ukuran daftar kandidat dinamis untuk pencarian. Nilai defaultnya adalah 40, dengan rentang yang dapat dikonfigurasi dari 10 hingga 1000. Meningkatkan nilai meningkatkan pengenalan tetapi dapat mengurangi kecepatan pencarian. |
k |
bilangan bulat | Menentukan jumlah hasil pencarian yang akan dikembalikan. Nilai k harus kurang dari atau sama dengan lSearch. |
Contoh menggunakan indeks DiskANN dengan pemfilteran
Menambahkan vektor ke database Anda
Untuk menggunakan pencarian vektor dengan filter geospasial, tambahkan dokumen yang menyertakan penyematan vektor dan koordinat lokasi. Anda dapat membuat embeddings dengan menggunakan model Anda sendiri, Azure OpenAI embeddings, atau API seperti Hugging Face di Azure.
from pymongo import MongoClient
client = MongoClient("<your_connection_string>")
db = client["test"]
collection = db["testCollection"]
documents = [
{"name": "Eugenia Lopez", "bio": "CEO of AdventureWorks", "is_open": 1, "location": [-118.9865, 34.0145], "contentVector": [0.52, 0.20, 0.23]},
{"name": "Cameron Baker", "bio": "CFO of AdventureWorks", "is_open": 1, "location": [-0.1278, 51.5074], "contentVector": [0.55, 0.89, 0.44]},
{"name": "Jessie Irwin", "bio": "Director of Our Planet initiative", "is_open": 0, "location": [-118.9865, 33.9855], "contentVector": [0.13, 0.92, 0.85]},
{"name": "Rory Nguyen", "bio": "President of Our Planet initiative", "is_open": 1, "location": [-119.0000, 33.9855], "contentVector": [0.91, 0.76, 0.83]}
]
collection.insert_many(documents)
Membuat indeks vektor DiskANN
Contoh berikut menunjukkan cara menyiapkan indeks vektor DiskANN dengan kemampuan pemfilteran. Contoh ini termasuk membuat indeks vektor untuk pencarian kesamaan, menambahkan dokumen dengan properti vektor dan geospasial, dan bidang pengindeksan untuk pemfilteran lebih lanjut.
db.command({
"createIndexes": "testCollection",
"indexes": [
{
"name": "DiskANNVectorIndex",
"key": {
"contentVector": "cosmosSearch"
},
"cosmosSearchOptions": {
"kind": "vector-diskann",
"dimensions": 3,
"similarity": "COS",
"maxDegree": 32,
"lBuild": 64
}
},
{
"name": "is_open",
"key": {
"is_open": 1
}
},
{
"name": "locationIndex",
"key": {
"location": 1
}
}
]
})
Perintah ini membuat indeks vektor DiskANN pada contentVector bidang di exampleCollection, memungkinkan pencarian kesamaan. Ini juga menambahkan:
- Indeks pada kolom
is_open, Anda dapat memfilter hasil berdasarkan apakah bisnis sedang buka. - Indeks geospasial pada
locationbidang untuk memfilter berdasarkan kedekatan geografis.
Melakukan pencarian vektor
Untuk menemukan dokumen dengan vektor serupa dalam radius geografis tertentu, tentukan untuk pencarian kesamaan queryVector dan sertakan filter geospasial.
query_vector = [0.52, 0.28, 0.12]
pipeline = [
{
"$search": {
"cosmosSearch": {
"path": "contentVector",
"vector": query_vector,
"k": 5,
"filter": {
"$and": [
{"is_open": {"$eq": 1}},
{"location": {"$geoWithin": {"$centerSphere": [[-119.7192861804, 34.4102485028], 100 / 3963.2]}}}
]
}
}
}
}
]
results = list(collection.aggregate(pipeline))
for result in results:
print(result)
Dalam contoh ini, pencarian kesamaan vektor mengembalikan vektor terdekat teratas k berdasarkan metrik kesamaan yang ditentukan COS , sementara memfilter hasil untuk hanya menyertakan bisnis terbuka dalam radius 100 mil.
[
{
similarityScore: 0.9745354109084544,
document: {
_id: ObjectId("645acb54413be5502badff94"),
name: 'Eugenia Lopez',
bio: 'CEO of AdventureWorks',
is_open: 1,
location: [-118.9865, 34.0145],
contentVector: [0.52, 0.20, 0.23]
}
},
{
similarityScore: 0.9006955671333992,
document: {
_id: ObjectId("645acb54413be5502badff97"),
name: 'Rory Nguyen',
bio: 'President of Our Planet initiative',
is_open: 1,
location: [-119.7302, 34.4005],
contentVector: [0.91, 0.76, 0.83]
}
}
]
Hasil ini menunjukkan dokumen paling mirip dengan queryVector; dibatasi dalam radius 100 mil dan bisnis yang beroperasi. Setiap hasil mencakup skor kesamaan dan metadata, menunjukkan bagaimana DiskANN di Azure DocumentDB mendukung kueri vektor dan geospasial gabungan untuk pengalaman pencarian yang diperkaya dan sensitif lokasi.
Mendapatkan definisi indeks vektor
Untuk mengambil definisi indeks vektor Anda dari koleksi, gunakan listIndexes perintah :
db.exampleCollection.getIndexes();
Dalam contoh ini, vectorIndex dikembalikan dengan semua cosmosSearch parameter yang digunakan untuk membuat indeks:
[
{ v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.exampleCollection' },
{
v: 2,
key: { vectorContent: 'cosmosSearch' },
name: 'vectorSearchIndex',
cosmosSearch: {
kind: <index_type>, // options are `vector-ivf`, `vector-hnsw`, and `vector-diskann`
numLists: 3,
similarity: 'COS',
dimensions: 3
},
ns: 'test.exampleCollection'
}
]
Pencarian vektor yang difilter
Anda sekarang dapat menjalankan pencarian vektor dengan filter kueri yang didukung seperti $lt, , $lte, $eq, $neq$gte, $gt, $in, $nin, dan $regex.
Untuk menggunakan prafilter, Anda harus terlebih dahulu menentukan indeks standar pada properti yang ingin Anda filter, selain indeks vektor Anda. Berikut adalah contoh pembuatan indeks filter:
db.runCommand({
"createIndexes": "<collection_name>",
"indexes": [ {
"key": {
"<property_to_filter>": 1
},
"name": "<name_of_filter_index>"
}
]
});
Setelah indeks filter Anda diberlakukan, Anda dapat menambahkan "filter" klausa langsung ke kueri pencarian vektor Anda. Contoh ini memperlihatkan cara memfilter hasil di mana "title" nilai properti tidak ada dalam daftar yang disediakan:
db.exampleCollection.aggregate([
{
'$search': {
"cosmosSearch": {
"vector": "<query_vector>",
"path": <path_to_vector>,
"k": num_results,
"filter": {<property_to_filter>: {"$nin": ["not in this text", "or this text"]}}
},
"returnStoredSource": True }},
{'$project': { 'similarityScore': { '$meta': 'searchScore' }, 'document' : '$$ROOT' }
}
]);
Penting
Untuk mengoptimalkan performa dan akurasi pencarian vektor yang telah difilter, pertimbangkan untuk menyesuaikan parameter indeks vektor Anda. Untuk indeks DiskANN , meningkatkan maxDegree atau lBuild mungkin menghasilkan hasil yang lebih baik. Untuk indeks HNSW , bereksperimen dengan nilai yang lebih tinggi untuk m, efConstruction, atau efSearch dapat meningkatkan performa. Demikian pula, untuk indeks IVF , penyetelan numLists , atau nProbes dapat menyebabkan hasil yang lebih memuaskan. Sangat penting untuk menguji konfigurasi spesifik Anda dengan data Anda untuk memastikan hasilnya memenuhi kebutuhan Anda. Parameter ini memengaruhi struktur indeks dan perilaku pencarian, dan nilai optimal dapat bervariasi berdasarkan karakteristik data dan pola kueri Anda.
Menggunakan alat orkestrasi model bahasa besar (LLM)
Gunakan sebagai database vektor dengan Kernel Semantik
Gunakan Semantic Kernel untuk mengatur pengambilan informasi Anda dari Azure DocumentDB dan LLM Anda. Untuk informasi selengkapnya, lihat repositori GitHub.
Gunakan sebagai database vektor dengan LangChain
Gunakan LangChain untuk mengatur pengambilan informasi Anda dari Azure DocumentDB dan LLM Anda. Untuk informasi selengkapnya, lihat Integrasi LangChain untuk Azure DocumentDB.
Gunakan sebagai cache semantik dengan LangChain
Gunakan LangChain dan Azure DocumentDB untuk mengatur Penembolokan Semantik, menggunakan respons LLM yang direkam sebelumnya yang dapat menghemat biaya LLM API Anda dan mengurangi latensi untuk respons. Untuk informasi selengkapnya, lihat Integrasi LangChain dengan Azure DocumentDB.
Fitur dan batasan
- Metrik jarak yang didukung: L2 (Euclidean), produk dalam, dan kosinus.
- Metode pengindeksan yang didukung: IVFFLAT, HNSW, dan DiskANN.
- Dengan DiskANN dan kuantisasi produk, Anda dapat mengindeks vektor hingga 16.000 dimensi.
- Menggunakan HNSW atau IVF dengan presisi setengah memungkinkan pengindeksan vektor hingga 4.000 dimensi.
- Tanpa pemadatan apa pun, dimensi vektor maksimum default untuk pengindeksan adalah 2.000.
- Pengindeksan hanya berlaku untuk satu vektor per jalur.
- Anda hanya dapat membuat satu indeks per jalur vektor.
Ringkasan
Panduan ini menunjukkan cara membuat indeks vektor, menambahkan dokumen yang memiliki data vektor, melakukan pencarian kesamaan, dan mengambil definisi indeks. Dengan menggunakan database vektor terintegrasi kami, Anda dapat menyimpan, mengindeks, dan mengkueri data vektor dimensi tinggi secara efisien langsung di Azure DocumentDB. Ini memungkinkan Anda untuk membuka potensi penuh data Anda melalui penyematan vektor, dan memberdayakan Anda untuk membangun aplikasi yang lebih akurat, efisien, dan kuat.
Konten terkait
- Solusi referensi ritel pola .NET RAG
- Pola C# RAG - Mengintegrasikan Layanan OpenAI dengan Cosmos
- Pola Python RAG - Chatbot produk Azure
- Tutorial notebook Python - Integrasi database vektor melalui LangChain
- Tutorial Notebook Python - Integrasi Penyimpanan LLM melalui LangChain
- Python - Integrasi LlamaIndex
- Python - Integrasi memori Kernel Semantik