Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yapay zeka tabanlı uygulamaları Azure DocumentDB'de depolanan verilerinize sorunsuz bir şekilde bağlamak için Azure DocumentDB'deki tümleşik vektör veritabanını kullanın. Bu tümleştirme , Azure OpenAI eklemelerini kullanarak oluşturduğunuz uygulamaları içerebilir. Yerel olarak tümleştirilmiş vektör veritabanı, doğrudan Azure DocumentDB'de depolanan yüksek boyutlu vektör verilerini ve vektör verilerinin oluşturulduğu özgün verileri verimli bir şekilde depolamanızı, dizinlemenizi ve sorgulamanızı sağlar. Verilerinizi alternatif vektör depolarına aktarma gereksinimini ortadan kaldırır ve ek maliyetler doğurabilir.
Vektör deposu nedir?
Vektör deposu veya vektör veritabanı, yüksek boyutlu bir alanda verilerin matematiksel temsilleri olan vektör eklemelerini depolamak ve yönetmek için tasarlanmış bir veritabanıdır. Bu alanda, her boyut verilerin bir özelliğine karşılık gelir ve gelişmiş verileri temsil etmek için on binlerce boyut kullanılabilir. Vektörlerin bu boşluktaki konumu, özelliklerini temsil eder. Sözcükler, tümcecikler veya belgelerin tamamı, görüntüler, ses ve diğer veri türlerinin tümü vektörleştirilebilir.
Vektör deposu nasıl çalışır?
Vektör deposunda, eklemeleri dizine almak ve sorgulamak için vektör arama algoritmaları kullanılır. Bazı iyi bilinen vektör arama algoritmaları Hiyerarşik Gezinilebilir Küçük Dünya (HNSW), Ters Dosya (IVF) ve DiskANN'yi içerir. Vektör arama, bir özellik alanında tam eşleşmeler yerine veri özelliklerine göre benzer öğeleri bulmanıza yardımcı olan bir yöntemdir. Bu teknik, benzer metin arama, ilgili görüntüleri bulma, önerilerde bulunma ve hatta anomalileri algılama gibi uygulamalarda kullanışlıdır. Verilerinizin, makine öğrenmesi modeli kullanarak oluşturduğunuz vektör gömülemelerini (sayı listeleri) sorgulamak için gömlemeler API'si kullanılır. Gömme API'lerine örnek olarak Azure OpenAI gömmeleri veya Azure'da Hugging Face verilebilir. Vektör araması, veri vektörleri ile sorgu vektörünüzün arasındaki mesafeyi ölçer. Sorgu vektörünüze en yakın veri vektörleri, anlam bakımından en benzer olanlardır.
Azure DocumentDB'deki tümleşik vektör veritabanında, özgün verilerin yanı sıra eklemeleri depolayabilir, dizinleyebilir ve sorgulayabilirsiniz. Bu yaklaşım, verileri ayrı bir saf vektör veritabanında çoğaltmanın ek maliyetini ortadan kaldırır. Ayrıca, bu mimari vektör eklemelerini ve özgün verileri bir arada tutarak çok modüllü veri işlemlerini daha iyi kolaylaştırır ve daha fazla veri tutarlılığı, ölçeklendirme ve performans sağlar.
Vektör veritabanı kullanım örnekleri
Vektör veritabanları yapay zeka ve veri analizinin birçok alanında kullanılır. Doğal dili anlama, görüntü ve video tanıma, öneri sistemleri oluşturma ve arama özelliklerini destekleme gibi görevlere yardımcı olur. Bunları hem analitik yapay zeka hem de üretken yapay zeka uygulamalarında bulabilirsiniz.
Örneğin, vektör veritabanını kullanarak şunları yapabilirsiniz:
- İçeriklerine, temalarına, yaklaşımlarına ve stillerine göre benzer görüntüleri, belgeleri ve şarkıları tanımlayın.
- Benzer ürünleri özelliklerine, özelliklerine ve kullanıcı gruplarına göre tanımlayın.
- Kişilerin tercihlerine göre içerikleri, ürünleri veya hizmetleri önerin.
- Kullanıcı gruplarının benzerliklerine göre içerik, ürün veya hizmet önerin.
- Karmaşık gereksinimleri karşılamak için büyük bir seçenek havuzundan en uygun olası seçenekleri belirleyin.
- Baskın veya normal kalıplardan farklı olan veri anomalilerini veya dolandırıcılık faaliyetlerini tanımlayın.
- Yapay zeka aracıları için kalıcı bellek uygulama.
- Bilgi alma ile artırılmış içerik oluşturmayı (RAG) etkinleştirin.
Tümleşik vektör veritabanı ile saf vektör veritabanı karşılaştırması
İki yaygın vektör veritabanı uygulaması türü vardır: saf vektör veritabanı ve NoSQL veya ilişkisel veritabanındaki tümleşik vektör veritabanı.
Saf vektör veritabanı, az miktarda meta veriyle birlikte vektör eklemelerini verimli bir şekilde depolar ve yönetir. Eklemelerin türetildiği veri kaynağından ayrıdır.
Yüksek performanslı bir NoSQL veya ilişkisel veritabanıyla tümleşen vektör veritabanı ek özellikler sağlar. NoSQL veya ilişkisel veritabanındaki tümleşik vektör veritabanı , ilgili özgün verilerin yanı sıra eklemeleri depolayabilir, dizinleyebilir ve sorgulayabilir. Bu yaklaşım, verileri ayrı bir saf vektör veritabanında çoğaltmanın ek maliyetini ortadan kaldırır. Ayrıca vektör eklemelerini ve özgün verileri bir arada tutmak, çok modüllü veri işlemlerini daha kolay hale getirerek daha fazla veri tutarlılığı, ölçeklendirme ve performans sağlar.
Açık kaynak vektör veritabanları
Geliştiriciler vektör veritabanlarını seçtiğinde, açık kaynak seçenekleri birçok avantaj sağlar. Açık kaynak , yazılımın kaynak kodunun serbestçe kullanılabilir olduğu anlamına gelir ve kullanıcıların veritabanını kendi ihtiyaçlarına göre özelleştirmesine olanak tanır. Bu esneklik, finansal hizmetler sektöründeki şirketler gibi veriler için benzersiz mevzuat gereksinimlerine tabi olan kuruluşlar için faydalıdır.
Açık kaynak vektör veritabanlarının bir diğer avantajı da, yararlandıkları güçlü topluluk desteğidir. Etkin kullanıcı toplulukları genellikle bu veritabanlarının geliştirilmesine katkıda bulunur, destek sağlar ve en iyi uygulamaları paylaşarak yenilikleri teşvik eder.
Bazı kişiler açık kaynak vektör veritabanlarını "ücretsiz" oldukları için tercih eder, yani yazılımı edinme veya kullanma maliyeti yoktur. Alternatif olarak yönetilen vektör veritabanı hizmetleri tarafından sunulan ücretsiz katmanları kullanabilirsiniz. Bu yönetilen hizmetler yalnızca belirli bir kullanım sınırına kadar ücretsiz erişim sağlamakla kalmaz, aynı zamanda bakım, güncelleştirme ve ölçeklenebilirlik işlemlerini gerçekleştirerek operasyonel yükü de basitleştirir. Bu nedenle, yönetilen vektör veritabanı hizmetlerinin ücretsiz katmanını kullanarak yönetim ek yükünü azaltırken maliyet tasarrufu sağlayabilirsiniz. Bu yaklaşım, veritabanı yönetimi yerine temel etkinliklerinize odaklanmanızı sağlar.
En iyi açık kaynak vektör veritabanını seçin
En iyi açık kaynak vektör veritabanının seçilmesi için çeşitli faktörlerin dikkate alınması gerekir. Veritabanının belirli iş yükü gereksinimlerinizi karşılayıp işleyemeyeceğini etkilediğinden, veritabanının performansı ve ölçeklenebilirliği çok önemlidir. Verimli dizin oluşturma ve sorgulama özelliklerine sahip veritabanları genellikle en iyi performansı sunar. Bir diğer faktör de veritabanı için sağlanan topluluk desteği ve belgeleridir. Sağlam bir topluluk ve geniş belgeler değerli yardım sağlayabilir. Örneğin , DocumentDB popüler bir açık kaynak vektör veritabanıdır:
En popüler seçenek sizin için en iyi seçenek olmayabilir. Bu nedenle özelliklere, desteklenen veri türlerine ve kullandığınız mevcut araçlar ve çerçevelerle uyumluluğa göre farklı seçenekleri karşılaştırmanız gerekir. Açık kaynak vektör veritabanlarının zorluklarını da göz önünde bulundurmanız gerekir.
Açık kaynak vektör veritabanlarının zorlukları
Daha önce listelenenler de dahil olmak üzere çoğu açık kaynak vektör veritabanı saf vektör veritabanlarıdır. Başka bir deyişle, yalnızca vektör eklemeleri ve az miktarda meta veri depolamak ve yönetmek için tasarlanmıştır. Bunlar özgün verilerinizden ayrı çalıştığından, verileri farklı hizmetler arasında taşımanız gerekir. Bu karmaşıklık ek maliyet ekler, işleri daha karmaşık hale getirir ve üretim sistemlerinizi yavaşlatabilir.
Bunlar aynı zamanda açık kaynak veritabanlarında tipik olarak karşılaşılan güçlükleri de oluşturur:
- Kurulum: Özellikle karmaşık dağıtımlarda veritabanını yüklemek, yapılandırmak ve çalıştırmak için ayrıntılı bilgiye ihtiyacınız vardır. Operasyonu genişletirken kaynakları ve yapılandırmayı optimize etmek, yakın izleme ve ayarlamalar gerektirir.
- Bakım: Kendi güncelleştirmelerinizi, düzeltme eklerinizi ve bakımlarınızı yönetmeniz gerekir. Makine öğrenmesi uzmanlığı yeterli değildir; Veritabanı yönetimi konusunda da kapsamlı bir deneyime sahip olmanız gerekir.
- Destek: Resmi destek, yönetilen hizmetlerle karşılaştırıldığında sınırlı olabilir ve topluluk yardımına daha fazla güvenilebilir.
Bu nedenle, başlangıçta ücretsiz olsa da, ölçeği artırma sırasında açık kaynak vektör veritabanları önemli maliyetler doğurabilir. Operasyonların genişletilmesi daha fazla donanım, becerikli BT personeli ve gelişmiş altyapı yönetimi gerektirir ve bu da donanım, personel ve operasyonel maliyetlerde daha yüksek giderlere yol açar. Lisanslama ücretlerinin olmamasına rağmen açık kaynak vektör veritabanlarının ölçeklendirilmesi finansal açıdan zor olabilir.
Açık kaynak vektör veritabanlarının zorluklarını giderme
Yüksek performanslı bir NoSQL veya ilişkisel veritabanıyla tümleşen tam olarak yönetilen bir vektör veritabanı, açık kaynak vektör veritabanlarının ek maliyetini ve karmaşıklığını önler. Böyle bir veritabanı, gömülü verileri ilgili özgün verilerle birlikte depolar, dizinle ve sorgular. Bu yaklaşım, verileri ayrı bir saf vektör veritabanında çoğaltmanın ek maliyetini ortadan kaldırır. Ayrıca vektör eklemelerini ve özgün verileri bir arada tutmak, çok modüllü veri işlemlerini daha kolay hale getirerek daha fazla veri tutarlılığı, ölçeklendirme ve performans sağlar. Bu arada, tam olarak yönetilen hizmet geliştiricilerin açık kaynak vektör veritabanı için topluluk yardımı ayarlama, koruma ve bu veritabanına güvenme zahmetlerinden kaçınmasına yardımcı olur. Ayrıca, bazı yönetilen vektör veritabanı hizmetleri ömür boyu ücretsiz katman sunar.
Azure DocumentDB'deki tümleşik vektör veritabanı buna örnek olarak verilmiştir. Bu kurulum, geliştiricilerin açık kaynak vektör veritabanlarında olduğu gibi tasarruf etmesini sağlar. Ancak açık kaynak seçeneklerinden farklı olarak, hizmet sağlayıcısı sizin için bakım, güncelleştirme ve ölçeklendirmeyle ilgilenir. Yükseltme zamanı geldiğinde, düşük toplam mülkiyet maliyetini (TCO) koruyarak hızlı ve kolay bir şekilde ölçeği artırabilirsiniz. Zaten üretimde olan MongoDB uygulamalarını kolayca ölçeklendirmek için de bu hizmeti kullanabilirsiniz.
Vektör benzerliği araması yapma
Azure DocumentDB, karmaşık veri kümelerinde yüksek hızlı benzerlik aramaları gerçekleştirmenize olanak sağlayan güçlü vektör arama özellikleri sunar. Azure DocumentDB'de vektör araması yapmak için önce bir vektör dizini oluşturmanız gerekir. Azure DocumentDB birden çok seçenek sunarken, veri kümenizin boyutuna göre çalışmaya başlamanıza yardımcı olacak bazı genel yönergeler şunlardır:
| IVF | HNSW | DiskANN (önerilir) | |
|---|---|---|---|
| Açıklama | IVFFlat dizini, vektörleri listelere böler ve ardından sorgu vektörü için en yakın alt kümeyi arar. | HNSW dizini çok katmanlı bir grafik oluşturur. | DiskANN, herhangi bir ölçekte verimli vektör araması için tasarlanmış yaklaşık en yakın komşu arama algoritmasıdır. |
| Önemli tavizler |
Profesyonel: Daha hızlı derleme süreleri, daha düşük bellek kullanımı. Dezavantajlar: Daha düşük sorgu performansı (hız ve geri çağırma dengesi açısından). |
Avantajlar: Boş bir tabloda hız ve geri çağırma dengesi açısından daha iyi sorgu performansı oluşturulabilir. Eksiler: Daha yavaş derleme süreleri, daha yüksek bellek kullanımı. |
Profesyonel: Her ölçekte verimli, yüksek geri çağırma, yüksek aktarım hızı, düşük gecikme süresi. |
| Vektör sayısı | 10.000'in altında | En fazla 50.000 | 500.000'den fazla |
| Önerilen küme katmanı | M10 veya M20 | M30 ve üzeri | M30 ve üzeri |
M30 ve üzeri katmanlarda DiskANN dizinlerini kullanabilirsiniz. DiskANN dizinini oluşturmak için "kind" parametresini şu şablonu izleyerek "vector-diskann" olarak ayarlayın:
{
"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>,
}
}
]
}
| Veri Alanı | Türü | Description |
|---|---|---|
index_name |
String | Dizinin benzersiz adı. |
path_to_property |
String | Vektörü içeren özelliğin yolu. Bu yol bir üst düzey özellik veya özelliğe giden nokta gösterimine sahip bir yol olabilir. Vektörlerin dizine alınması ve vektör arama sonuçlarında kullanılması için bir number[] olması gerekir. gibi double[]başka bir tür kullanan vektör, belgenin dizine alınmasını engeller. Dizine alınmamış belgeler vektör araması sonucunda döndürülmüyor. |
kind |
String | Oluşturulacak vektör dizininin türü. Seçenekler , vector-ivfve vector-hnswşeklindedirvector-diskann. |
dimensions |
tamsayı | Vektör benzerliği için boyut sayısı. DiskANN 16.000 boyuta kadar ( ürün nicelemesi ile) destekler ve 40.000'den fazla boyut için gelecekte destek planlanacaktır. |
similarity |
String | Dizinle kullanılacak benzerlik ölçümü. Olası seçenekler COS (kosinüs uzaklığı), L2 (Öklid uzaklığı) ve IP (iç ürün) olabilir. |
maxDegree |
tamsayı | Grafikteki düğüm başına en fazla kenar sayısı. Bu parametre 20 ile 2048 arasında değişir (varsayılan değer 32'dir). Daha yüksek maxDegree , yüksek boyutluluk ve/veya yüksek doğruluk gereksinimleri olan veri kümeleri için uygundur. |
lBuild |
tamsayı | DiskANN dizin oluşturma sırasında değerlendirilen aday komşu sayısını ayarlar. 10 ile 500 arasında değişen bu parametre (varsayılan değer 50'dir), doğruluk ve hesaplama ek yükünü dengeler: yüksek değerler dizin kalitesini ve doğruluğunu artırır ancak derleme süresini artırır |
DiskANN ile vektör araması yapma
Vektör araması yapmak için $search toplama işlem hattı aşamasını kullanın ve cosmosSearch işleci ile sorgulayın. DiskANN, jeo-uzamsal veya metin tabanlı filtreler gibi isteğe bağlı filtreleme ile büyük veri kümelerinde yüksek performanslı aramalar sağlar.
{
"$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>]}}}
]}
}
}
},
| Veri Alanı | Türü | Description |
|---|---|---|
lSearch |
tamsayı | Arama için dinamik aday listesinin boyutunu belirtir. Varsayılan değer 40'tır ve yapılandırılabilir aralık 10 ile 1000 arasındadır. Değerin artırılması geri çekmeyi artırır ancak arama hızını düşürebilir. |
k |
tamsayı | Döndürülecek arama sonuçlarının sayısını tanımlar. Değerin k değerinden küçük veya eşit lSearcholması gerekir. |
Filtreleme ile DiskANN dizini kullanma örneği
Veritabanınıza vektör ekleme
Vektör aramasını jeo-uzamsal filtrelerle kullanmak için hem vektör eklemeleri hem de konum koordinatlarını içeren belgeler ekleyin. Kendi modelinizi, Azure OpenAI eklemelerini veya Azure'daYüz Tanımayı Kucaklama gibi bir API'yi kullanarak eklemeleri oluşturabilirsiniz.
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)
DiskANN vektör dizini oluşturma
Aşağıdaki örnekte, filtreleme özelliklerine sahip bir DiskANN vektör dizininin nasıl ayarlanacağı gösterilmektedir. Bu örnek benzerlik araması için vektör dizini oluşturma, vektör ve jeo-uzamsal özelliklere sahip belgeler ekleme ve daha fazla filtreleme için dizin oluşturma alanlarını içerir.
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
}
}
]
})
Bu komut, içinde contentVector alanında exampleCollectionbir DiskANN vektör dizini oluşturur ve benzerlik aramalarını etkinleştirir. Ayrıca şunları da ekler:
- Bir
is_openalanındaki indeks, böylece işletmelerin açık olup olmadığına göre sonuçları filtreleyebilirsiniz. - Coğrafi yakınlığa göre filtrelemek için
locationalanındaki jeo-uzamsal dizin.
Vektör araması yapma
Belirli bir coğrafi yarıçap içinde benzer vektörlere sahip belgeleri bulmak için benzerlik aramasını queryVector belirtin ve jeo-uzamsal filtre ekleyin.
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)
Bu örnekte vektör benzerlik araması, belirtilen k benzerlik ölçümüne göre en COS yakın vektörleri döndürürken sonuçları yalnızca 100 mil yarıçapı içindeki açık işletmeleri içerecek şekilde filtrelemektedir.
[
{
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]
}
}
]
Bu sonuç, queryVector ile en çok benzer belgeleri, 100 mil yarıçapındaki ve açık işletmelerle sınırlı olarak gösterir. Her sonuç benzerlik puanını ve meta verileri içerir ve Azure DocumentDB'deki DiskANN'nin zenginleştirilmiş, konuma duyarlı arama deneyimleri için birleştirilmiş vektör ve jeo-uzamsal sorguları nasıl desteklediğini gösterir.
Vektör dizini tanımlarını alma
Vektör dizini tanımınızı koleksiyondan almak için komutunu listIndexes kullanın:
db.exampleCollection.getIndexes();
Bu örnekte, vectorIndex dizini oluşturmak için kullanılan tüm cosmosSearch parametrelerle döndürülür:
[
{ 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'
}
]
Filtrelenmiş vektör araması
Artık $lt, $lte, $eq, $neq, $gte, $gt, $in, $nin ve $regex gibi desteklenen herhangi bir sorgu filtresiyle vektör aramaları yürütebilirsiniz.
Ön filtrelemeyi kullanmak için, önce vektör dizininize ek olarak filtrelemek istediğiniz özellikte standart bir dizin tanımlamanız gerekir. Filtre dizini oluşturma örneği aşağıda verilmişti:
db.runCommand({
"createIndexes": "<collection_name>",
"indexes": [ {
"key": {
"<property_to_filter>": 1
},
"name": "<name_of_filter_index>"
}
]
});
Filtre dizininiz hazır olduktan sonra yan tümcesini "filter" doğrudan vektör arama sorgunuza ekleyebilirsiniz. Bu örnekte, sağlanan listede özelliğin değerinin "title" bulunmadığı durumlarda sonuçların nasıl filtreleneceği gösterilmektedir:
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' }
}
]);
Önemli
Önceden filtrelenmiş vektör aramalarınızın performansını ve doğruluğunu iyileştirmek için vektör dizini parametrelerinizi ayarlamayı göz önünde bulundurun.
DiskANN dizinleri için artış maxDegree veya lBuild daha iyi sonuçlar verebilir.
HNSW dizinleri için , mveya efConstruction için efSearchdaha yüksek değerlerle denemeler yaparak performansı geliştirebilirsiniz. Benzer şekilde, IVF dizinleri için bir numLists veya nProbes ayarlaması daha tatmin edici sonuçlara yol açabilir. Sonuçların gereksinimlerinizi karşıladığından emin olmak için verilerinizle belirli yapılandırmanızı test etmek çok önemlidir. Bu parametreler dizin yapısını ve arama davranışını etkiler ve en uygun değerler veri özelliklerinize ve sorgu desenlerinize göre farklılık gösterebilir.
Büyük dil modeli (LLM) düzenleme araçlarını kullanma
Anlam Çekirdeği ile vektör veritabanı olarak kullanma
Azure DocumentDB'den ve LLM'nizden bilgi alma işleminizi yönetmek için Anlam Çekirdeği'ni kullanın. Daha fazla bilgi için GitHub deposuna bakın.
LangChain ile vektör veritabanı olarak kullanma
Azure DocumentDB'den ve LLM'nizden bilgi alma işleminizi yönetmek için LangChain'i kullanın. Daha fazla bilgi için bkz. Azure DocumentDB için LangChain tümleştirmeleri.
LangChain ile anlamsal önbellek olarak kullanma
Daha önce kaydedilmiş LLM yanıtlarını kullanarak LLM API maliyetlerinizi kaydedip yanıtlar için gecikme süresini azaltabilen AnlamSal Önbelleğe Alma'yı yönetmek için LangChain ve Azure DocumentDB kullanın. Daha fazla bilgi için bkz. Azure DocumentDB ile LangChain tümleştirmesi.
Özellikler ve sınırlamalar
- Desteklenen uzaklık ölçümleri: L2 (Öklid), iç ürün ve kosinüs.
- Desteklenen dizin oluşturma yöntemleri: IVFFLAT, HNSW ve DiskANN.
- DiskANN ve ürün niceleme ile 16.000 boyuta kadar vektörleri dizine alabilirsiniz.
- HNSW veya IVF'nin yarı duyarlık ile kullanılması, 4.000 boyuta kadar vektörlerin dizine alınabilmesini sağlar.
- Sıkıştırma olmadan, dizin oluşturma için varsayılan maksimum vektör boyutu 2.000'dir.
- Dizin oluşturma, yol başına yalnızca bir vektör için geçerlidir.
- Vektör yolu başına yalnızca bir dizin oluşturabilirsiniz.
Özet
Bu kılavuzda vektör dizini oluşturma, vektör verileri içeren belgeler ekleme, benzerlik araması yapma ve dizin tanımını alma işlemleri gösterilmektedir. Tümleşik vektör veritabanımızı kullanarak yüksek boyutlu vektör verilerini doğrudan Azure DocumentDB'de verimli bir şekilde depolayabilir, dizinleyebilir ve sorgulayabilirsiniz. Vektör eklemeleri aracılığıyla verilerinizin tüm potansiyelini ortaya çıkarmanızı sağlar ve daha doğru, verimli ve güçlü uygulamalar oluşturmanıza olanak tanır.
İlgili içerik
- .NET RAG model perakende referans çözümü
- C# RAG deseni - OpenAI Hizmetlerini Cosmos ile Tümleştirme
- Python RAG deseni - Azure ürün sohbet botu
- Python not defteri öğreticisi - LangChain aracılığıyla vektör veritabanı tümleştirmesi
- Python defteri öğreticisi - LangChain aracılığıyla LLM önbellek entegrasyonu
- Python - LlamaIndex tümleştirmesi
- Python - Anlam Çekirdeği bellek tümleştirmesi