Vector Store ve službě Azure Cosmos DB pro virtuální jádro MongoDB
PLATÍ PRO: Virtuální jádro MongoDB
Využijte integrovanou vektorovou databázi ve službě Azure Cosmos DB pro MongoDB k bezproblémovému propojení aplikací založených na umělé inteligenci s daty uloženými ve službě Azure Cosmos DB. Tato integrace může zahrnovat aplikace, které jste vytvořili pomocí vkládání Azure OpenAI. Nativní integrovaná vektorová databáze umožňuje efektivně ukládat, indexovat a dotazovat vysoce dimenzionální vektorová data uložená přímo ve službě Azure Cosmos DB pro MongoDB spolu s původními daty, ze kterých se vytvářejí vektorová data. Eliminuje nutnost přenášet data do alternativních úložišť vektorů a vyžadovat další náklady.
Co je úložiště vektorů?
Vektorové úložiště nebo vektorová databáze je databáze určená k ukládání a správě vkládání vektorů, což jsou matematické reprezentace dat ve vysokodimenzionálním prostoru. V tomto prostoru každá dimenze odpovídá funkci dat a desítky tisíc dimenzí se můžou použít k reprezentaci sofistikovaných dat. Pozice vektoru v tomto prostoru představuje jeho vlastnosti. Slova, fráze nebo celé dokumenty a obrázky, zvuk a další typy dat můžou být vektorizovány.
Jak funguje úložiště vektorů?
V úložišti vektorů se algoritmy vektorového vyhledávání používají k indexování a vkládání dotazů. Mezi dobře známé algoritmy vektorového vyhledávání patří Hierarchical Navigable Small World (HNSW), Inverted File (IVF), DiskANN atd. Vektorové vyhledávání je metoda, která vám pomůže najít podobné položky na základě jejich charakteristik dat, nikoli přesných shod v poli vlastnosti. Tato technika je užitečná v aplikacích, jako je hledání podobného textu, hledání souvisejících obrázků, vytváření doporučení nebo dokonce zjišťování anomálií. Používá se k dotazování na vektorové vkládání (seznamy čísel) dat, která jste vytvořili pomocí modelu strojového učení pomocí rozhraní API pro vkládání. Příklady rozhraní API pro vkládání jsou vkládání Azure OpenAI Embeddings nebo Hugging Face v Azure. Vektorové vyhledávání měří vzdálenost mezi datovými vektory a vektorem dotazu. Datové vektory, které jsou nejblíže vašemu vektoru dotazu, jsou ty, které jsou nalezeny nejvíce podobné sémanticky.
V integrované vektorové databázi ve službě Azure Cosmos DB pro virtuální jádro MongoDB je možné vkládat, indexovat a dotazovat společně s původními daty. Tento přístup eliminuje dodatečné náklady na replikaci dat v samostatné čistě vektorové databázi. Tato architektura navíc udržuje vektorové vkládání a původní data pohromadě, což usnadňuje operace s více modálními daty a umožňuje větší konzistenci dat, škálování a výkon.
Vytvoření vektorového indexu
Pokud chcete ve svých dokumentech provádět vektorové similiarity, budete muset nejprve vytvořit vektorový index.
Vytvoření vektorového indexu pomocí HNSW
Indexy hierarchické navigace small world můžete vytvářet na úrovních clusteru M40 a vyšších úrovních. Pokud chcete vytvořit index HSNW, musíte vytvořit vektorový index s parametrem "kind"
nastaveným na "vector-hnsw"
následující šablonu:
{
"createIndexes": "<collection_name>",
"indexes": [
{
"name": "<index_name>",
"key": {
"<path_to_property>": "cosmosSearch"
},
"cosmosSearchOptions": {
"kind": "vector-hnsw",
"m": <integer_value>,
"efConstruction": <integer_value>,
"similarity": "<string_value>",
"dimensions": <integer_value>
}
}
]
}
Pole | Typ | Description |
---|---|---|
index_name |
string | Jedinečný název indexu |
path_to_property |
string | Cesta k vlastnosti, která obsahuje vektor. Tato cesta může být vlastnost nejvyšší úrovně nebo cesta zápisu tečky k vlastnosti. Pokud se použije cesta tečkování, pak všechny neleaf elementy nemohou být pole. Vektory musí být number[] indexované a vracet ve výsledcích hledání vektorů. |
kind |
string | Typ vektorového indexu, který chcete vytvořit. Možnosti jsou vector-ivf a vector-hnsw . Poznámka vector-ivf : Je k dispozici na všech úrovních clusteru a vector-hnsw je k dispozici na úrovních clusteru M40 a vyšších. |
m |
integer | Maximální počet připojení na vrstvu (16 ve výchozím nastavení je 2 minimální hodnota , maximální hodnota je 100 ). Vyšší m je vhodný pro datové sady s vysokou dimenzionální a/nebo vysokou přesností. |
efConstruction |
integer | velikost dynamického kandidátního seznamu pro vytvoření grafu (64 ve výchozím nastavení je 4 minimální hodnota , maximální hodnota je 1000 ). Vyšší efConstruction bude mít za následek vyšší kvalitu indexu a vyšší přesnost, ale také zvýší čas potřebný k sestavení indexu. efConstruction musí být alespoň 2 * m |
similarity |
string | Metrika podobnosti, která se má použít s indexem Možné možnosti jsou COS (kosinus), L2 (euklidová vzdálenost) a IP (vnitřní součin). |
dimensions |
integer | Počet dimenzí pro podobnost vektorů Maximální počet podporovaných dimenzí je 2000 . |
Provedení vektorového vyhledávání pomocí HNSW
Pokud chcete provést vektorové vyhledávání, použijte $search
fázi kanálu agregace, ve které je dotaz s operátorem cosmosSearch
.
{
"$search": {
"cosmosSearch": {
"vector": <query_vector>,
"path": "<path_to_property>",
"k": <num_results_to_return>,
"efSearch": <integer_value>
},
}
}
}
Pole | Typ | Popis |
---|---|---|
efSearch |
integer | Velikost dynamického kandidátního seznamu pro vyhledávání (40 ve výchozím nastavení). Vyšší hodnota poskytuje lepší úplnost za cenu rychlosti. |
k |
integer | Počet výsledků, které se mají vrátit. měla by být menší než nebo rovna efSearch |
Poznámka:
Vytvoření indexu HSNW s velkými datovými sadami může vést k tomu, že váš prostředek virtuálních jader Azure Cosmos DB pro MongoDB nemá nedostatek paměti, nebo může omezit výkon jiných operací spuštěných ve vaší databázi. Pokud na tyto problémy narazíte, můžete je zmírnit škálováním prostředku na vyšší úroveň clusteru nebo zmenšením velikosti datové sady.
Vytvoření vektorového indexu pomocí IVF
Pokud chcete vytvořit vektorový index pomocí algoritmu IVF (Inverted File), použijte následující createIndexes
šablonu a nastavte "kind"
parametr na "vector-ivf"
:
{
"createIndexes": "<collection_name>",
"indexes": [
{
"name": "<index_name>",
"key": {
"<path_to_property>": "cosmosSearch"
},
"cosmosSearchOptions": {
"kind": "vector-ivf",
"numLists": <integer_value>,
"similarity": "<string_value>",
"dimensions": <integer_value>
}
}
]
}
Pole | Typ | Description |
---|---|---|
index_name |
string | Jedinečný název indexu |
path_to_property |
string | Cesta k vlastnosti, která obsahuje vektor. Tato cesta může být vlastnost nejvyšší úrovně nebo cesta zápisu tečky k vlastnosti. Pokud se použije cesta tečkování, pak všechny neleaf elementy nemohou být pole. Vektory musí být number[] indexované a vracet ve výsledcích hledání vektorů. |
kind |
string | Typ vektorového indexu, který chcete vytvořit. Možnosti jsou vector-ivf a vector-hnsw . Poznámka vector-ivf : Je k dispozici na všech úrovních clusteru a vector-hnsw je k dispozici na úrovních clusteru M40 a vyšších. |
numLists |
integer | Toto celé číslo je počet clusterů, které index invertovaného souboru (IVF) používá k seskupení vektorových dat. Doporučujeme nastavit numLists documentCount/1000 až 1 milion dokumentů a na sqrt(documentCount) více než 1 milion dokumentů. numLists Použití hodnoty 1 je podobné provádění vyhledávání hrubou silou, což má omezený výkon. |
similarity |
string | Metrika podobnosti, která se má použít s indexem Možné možnosti jsou COS (kosinus), L2 (euklidová vzdálenost) a IP (vnitřní součin). |
dimensions |
integer | Počet dimenzí pro podobnost vektorů Maximální počet podporovaných dimenzí je 2000 . |
Důležité
Nastavení parametru numLists je důležité pro dosažení správné přesnosti a výkonu. Doporučujeme nastavit numLists
documentCount/1000
až 1 milion dokumentů a na sqrt(documentCount)
více než 1 milion dokumentů.
S rostoucím počtem položek v databázi byste měli ladit početLists tak, aby byly větší, abyste dosáhli dobrého výkonu latence pro vektorové vyhledávání.
Pokud experimentujete s novým scénářem nebo vytváříte malou ukázku, můžete začít numLists
1
nastavením provést vyhledávání hrubou silou napříč všemi vektory. Měli byste tak poskytnout nejpřesnější výsledky z vektorového vyhledávání, mějte ale na paměti, že rychlost a latence hledání budou pomalé. Po počátečním nastavení byste měli pokračovat a ladit numLists
parametr s využitím výše uvedených pokynů.
Provedení vektorového vyhledávání pomocí IVF
K provedení vektorového vyhledávání použijte $search
fázi kanálu agregace v dotazu MongoDB. Pokud chcete použít cosmosSearch
index, použijte nový cosmosSearch
operátor.
{
{
"$search": {
"cosmosSearch": {
"vector": <query_vector>,
"path": "<path_to_property>",
"k": <num_results_to_return>,
},
"returnStoredSource": True }},
{
"$project": { "<custom_name_for_similarity_score>": {
"$meta": "searchScore" },
"document" : "$$ROOT"
}
}
}
Pokud chcete načíst skóre podobnosti (searchScore
) spolu s dokumenty nalezenými vektorovým vyhledáváním, použijte $project
operátor k zahrnutí searchScore
a přejmenování jako <custom_name_for_similarity_score>
ve výsledcích. Dokument se pak projektuje také jako vnořený objekt. Všimněte si, že skóre podobnosti se počítá pomocí metriky definované v indexu vektoru.
Důležité
Vektory musí být number[]
indexované. Použití jiného typu, například double[]
, zabrání indexování dokumentu. Neindexované dokumenty nebudou vráceny ve výsledku vektorového vyhledávání.
Příklad použití indexu HNSW
Následující příklady ukazují, jak indexovat vektory, přidat dokumenty s vlastnostmi vektoru, provést vektorové vyhledávání a načíst konfiguraci indexu.
use test;
db.createCollection("exampleCollection");
db.runCommand({
"createIndexes": "exampleCollection",
"indexes": [
{
"name": "VectorSearchIndex",
"key": {
"contentVector": "cosmosSearch"
},
"cosmosSearchOptions": {
"kind": "vector-hnsw",
"m": 16,
"efConstruction": 64,
"similarity": "COS",
"dimensions": 3
}
}
]
});
Tento příkaz vytvoří index HNSW proti contentVector
vlastnosti v dokumentech, které jsou uloženy v zadané kolekci, exampleCollection
. Vlastnost cosmosSearchOptions
určuje parametry indexu vektoru HNSW. Pokud dokument obsahuje vektor uložený ve vnořené vlastnosti, můžete tuto vlastnost nastavit pomocí cesty tečky. Můžete například použíttext.contentVector
, pokud contentVector
je subproperty .text
Přidání vektorů do databáze
Pokud chcete do kolekce databáze přidat vektory, musíte nejprve vytvořit vkládání pomocí vlastního modelu, vkládání Azure OpenAI Nebo jiného rozhraní API (například Hugging Face v Azure). V tomto příkladu se nové dokumenty přidají prostřednictvím ukázkových vkládání:
db.exampleCollection.insertMany([
{name: "Eugenia Lopez", bio: "Eugenia is the CEO of AdvenureWorks.", vectorContent: [0.51, 0.12, 0.23]},
{name: "Cameron Baker", bio: "Cameron Baker CFO of AdvenureWorks.", vectorContent: [0.55, 0.89, 0.44]},
{name: "Jessie Irwin", bio: "Jessie Irwin is the former CEO of AdventureWorks and now the director of the Our Planet initiative.", vectorContent: [0.13, 0.92, 0.85]},
{name: "Rory Nguyen", bio: "Rory Nguyen is the founder of AdventureWorks and the president of the Our Planet initiative.", vectorContent: [0.91, 0.76, 0.83]},
]);
Provedení vektorového vyhledávání
Pokračujeme v posledním příkladu a vytvořte další vektor, queryVector
. Vektorové vyhledávání měří vzdálenost mezi queryVector
a vektory v contentVector
cestě k dokumentům. Počet výsledků, které hledání vrací, můžete nastavit nastavením parametru k
, který je zde nastavený 2
. Můžete také nastavit efSearch
, což je celé číslo, které řídí velikost seznamu kandidátských vektorů. Vyšší hodnota může zvýšit přesnost, ale hledání bude pomalejší v důsledku toho. Jedná se o volitelný parametr s výchozí hodnotou 40.
const queryVector = [0.52, 0.28, 0.12];
db.exampleCollection.aggregate([
{
"$search": {
"cosmosSearch": {
"vector": "queryVector",
"path": "contentVector",
"k": 2,
"efSearch": 40
},
}
}
}
]);
V tomto příkladu se vektorové vyhledávání provádí jako queryVector
vstup prostřednictvím prostředí Mongo Shell. Výsledkem hledání je seznam dvou položek, které jsou nejvíce podobné vektoru dotazu seřazené podle skóre podobnosti.
[
{
similarityScore: 0.9465376,
document: {
_id: ObjectId("645acb54413be5502badff94"),
name: 'Eugenia Lopez',
bio: 'Eugenia is the CEO of AdvenureWorks.',
vectorContent: [ 0.51, 0.12, 0.23 ]
}
},
{
similarityScore: 0.9006955,
document: {
_id: ObjectId("645acb54413be5502badff97"),
name: 'Rory Nguyen',
bio: 'Rory Nguyen is the founder of AdventureWorks and the president of the Our Planet initiative.',
vectorContent: [ 0.91, 0.76, 0.83 ]
}
}
]
Získání definic vektorových indexů
K načtení definice vektorového indexu z kolekce použijte listIndexes
příkaz:
db.exampleCollection.getIndexes();
V tomto příkladu vectorIndex
cosmosSearch
se vrátí všechny parametry použité k vytvoření indexu:
[
{ v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.exampleCollection' },
{
v: 2,
key: { contentVector: 'cosmosSearch' },
name: 'vectorSearchIndex',
cosmosSearch: {
kind: 'vector-hnsw',
m: 40,
efConstruction: 64,
similarity: 'COS',
dimensions: 3
},
ns: 'test.exampleCollection'
}
]
Příklad použití indexu IVF
Invertované indexování souborů (IVF) je metoda, která uspořádá vektory do clusterů. Při vektorovém vyhledávání se vektor dotazu nejprve porovná s středy těchto clusterů. Hledání se pak provede v rámci clusteru, jehož střed je nejblíže vektoru dotazu.
Parametr numList
s určuje počet clusterů, které se mají vytvořit. Jeden cluster znamená, že hledání se provádí proti všem vektorům v databázi, které se podobá hledání hrubou silou nebo kNN. Toto nastavení poskytuje nejvyšší přesnost, ale také nejvyšší latenci.
Zvýšením hodnoty vznikne numLists
více shluků, z nichž každý obsahuje méně vektorů. Pokud například numLists=2
každý cluster obsahuje více vektorů, než kdyby numLists=3
atd. Méně vektorů na cluster urychlí hledání (nižší latence, vyšší dotazy za sekundu). Tím se ale zvyšuje pravděpodobnost, že v databázi chybí nejvíce podobný vektor jako vektor dotazu. Důvodem je nekonfektní povaha clusteringu, kdy se hledání může zaměřit na jeden cluster, zatímco skutečný "nejbližší" vektor se nachází v jiném clusteru.
Parametr nProbes
řídí počet clusterů, které se mají prohledávat. Ve výchozím nastavení je nastavená na hodnotu 1, což znamená, že prohledává pouze cluster se středem nejblíže vektoru dotazu. Zvýšení této hodnoty umožňuje hledání pokrýt více clusterů, zlepšit přesnost, ale také zvýšit latenci (tedy snížit počet dotazů za sekundu), protože se prohledává více clusterů a vektorů.
Následující příklady ukazují, jak indexovat vektory, přidat dokumenty s vlastnostmi vektoru, provést vektorové vyhledávání a načíst konfiguraci indexu.
Vytvoření vektorového indexu
use test;
db.createCollection("exampleCollection");
db.runCommand({
createIndexes: 'exampleCollection',
indexes: [
{
name: 'vectorSearchIndex',
key: {
"vectorContent": "cosmosSearch"
},
cosmosSearchOptions: {
kind: 'vector-ivf',
numLists: 3,
similarity: 'COS',
dimensions: 3
}
}
]
});
Tento příkaz vytvoří vector-ivf
index proti vectorContent
vlastnosti v dokumentech, které jsou uloženy v zadané kolekci, exampleCollection
. Vlastnost cosmosSearchOptions
určuje parametry pro index vektoru IVF. Pokud dokument obsahuje vektor uložený ve vnořené vlastnosti, můžete tuto vlastnost nastavit pomocí cesty tečky. Můžete například použíttext.vectorContent
, pokud vectorContent
je subproperty .text
Přidání vektorů do databáze
Pokud chcete do kolekce databáze přidat vektory, musíte nejprve vytvořit vkládání pomocí vlastního modelu, vkládání Azure OpenAI Nebo jiného rozhraní API (například Hugging Face v Azure). V tomto příkladu se nové dokumenty přidají prostřednictvím ukázkových vkládání:
db.exampleCollection.insertMany([
{name: "Eugenia Lopez", bio: "Eugenia is the CEO of AdvenureWorks.", vectorContent: [0.51, 0.12, 0.23]},
{name: "Cameron Baker", bio: "Cameron Baker CFO of AdvenureWorks.", vectorContent: [0.55, 0.89, 0.44]},
{name: "Jessie Irwin", bio: "Jessie Irwin is the former CEO of AdventureWorks and now the director of the Our Planet initiative.", vectorContent: [0.13, 0.92, 0.85]},
{name: "Rory Nguyen", bio: "Rory Nguyen is the founder of AdventureWorks and the president of the Our Planet initiative.", vectorContent: [0.91, 0.76, 0.83]},
]);
Provedení vektorového vyhledávání
K provedení vektorového vyhledávání použijte $search
fázi kanálu agregace v dotazu MongoDB. Pokud chcete použít cosmosSearch
index, použijte nový cosmosSearch
operátor.
{
{
"$search": {
"cosmosSearch": {
"vector": <vector_to_search>,
"path": "<path_to_property>",
"k": <num_results_to_return>,
},
"returnStoredSource": True }},
{
"$project": { "<custom_name_for_similarity_score>": {
"$meta": "searchScore" },
"document" : "$$ROOT"
}
}
}
Pokud chcete načíst skóre podobnosti (searchScore
) spolu s dokumenty nalezenými vektorovým vyhledáváním, použijte $project
operátor k zahrnutí searchScore
a přejmenování jako <custom_name_for_similarity_score>
ve výsledcích. Dokument se pak projektuje také jako vnořený objekt. Všimněte si, že skóre podobnosti se počítá pomocí metriky definované v indexu vektoru.
Vektory dotazů a vektorové vzdálenosti (neboli skóre podobnosti) pomocí $search
Pokračujeme v posledním příkladu a vytvořte další vektor, queryVector
. Vektorové vyhledávání měří vzdálenost mezi queryVector
a vektory v vectorContent
cestě k dokumentům. Počet výsledků, které hledání vrací, můžete nastavit nastavením parametru k
, který je zde nastavený 2
. Můžete také nastavit nProbes
, což je celé číslo, které řídí počet blízkých clusterů, které jsou kontrolovány v každém hledání. Vyšší hodnota může zvýšit přesnost, ale hledání bude pomalejší v důsledku toho. Jedná se o volitelný parametr s výchozí hodnotou 1 a nemůže být větší než numLists
hodnota zadaná v indexu vektoru.
const queryVector = [0.52, 0.28, 0.12];
db.exampleCollection.aggregate([
{
$search: {
"cosmosSearch": {
"vector": queryVector,
"path": "vectorContent",
"k": 2
},
"returnStoredSource": true }},
{
"$project": { "similarityScore": {
"$meta": "searchScore" },
"document" : "$$ROOT"
}
}
]);
V tomto příkladu se vektorové vyhledávání provádí jako queryVector
vstup prostřednictvím prostředí Mongo Shell. Výsledkem hledání je seznam dvou položek, které jsou nejvíce podobné vektoru dotazu seřazené podle skóre podobnosti.
[
{
similarityScore: 0.9465376,
document: {
_id: ObjectId("645acb54413be5502badff94"),
name: 'Eugenia Lopez',
bio: 'Eugenia is the CEO of AdvenureWorks.',
vectorContent: [ 0.51, 0.12, 0.23 ]
}
},
{
similarityScore: 0.9006955,
document: {
_id: ObjectId("645acb54413be5502badff97"),
name: 'Rory Nguyen',
bio: 'Rory Nguyen is the founder of AdventureWorks and the president of the Our Planet initiative.',
vectorContent: [ 0.91, 0.76, 0.83 ]
}
}
]
Získání definic vektorových indexů
K načtení definice vektorového indexu z kolekce použijte listIndexes
příkaz:
db.exampleCollection.getIndexes();
V tomto příkladu vectorIndex
cosmosSearch
se vrátí všechny parametry použité k vytvoření indexu:
[
{ v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.exampleCollection' },
{
v: 2,
key: { vectorContent: 'cosmosSearch' },
name: 'vectorSearchIndex',
cosmosSearch: {
kind: 'vector-ivf',
numLists: 3,
similarity: 'COS',
dimensions: 3
},
ns: 'test.exampleCollection'
}
]
Filtrované vektorové vyhledávání (Preview)
Teď můžete spouštět vektorové vyhledávání s libovolným podporovaným filtrem dotazů, jako $lt
je , $lte
, $eq
, $neq
, $gte
$gt
, $in
, $nin
a $regex
. Povolte funkci filtrování vektorového vyhledávání na kartě Funkce ve verzi Preview vašeho předplatného Azure. Další informace o funkcích ve verzi Preview najdete tady.
Nejprve budete muset kromě vektorového indexu definovat index pro filtr. Můžete například definovat index filtru pro vlastnost.
db.runCommand({
"createIndexes": "<collection_name",
"indexes": [ {
"key": {
"<property_to_filter>": 1
},
"name": "<name_of_filter_index>"
}
]
});
Dále můžete termín přidat "filter"
do vektorového vyhledávání, jak je znázorněno níže. V tomto příkladu filtr hledá dokumenty, ve kterých "title"
vlastnost není v seznamu ["not in this text", "or this text"]
.
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' }
}
]);
Důležité
V náhledu může filtrování vektorového vyhledávání vyžadovat, abyste upravili parametry indexu vektoru, abyste dosáhli vyšší přesnosti. Například zvýšení m
, efConstruction
nebo efSearch
při použití HNSW nebo numLists
, nebo nProbes
při použití IVF může vést k lepším výsledkům. Před použitím byste měli otestovat konfiguraci, abyste měli jistotu, že výsledky budou uspokojivé.
Použití nástrojů pro orchestraci LLM
Použití jako vektorové databáze s sémantickým jádrem
Pomocí sémantického jádra můžete orchestrovat načítání informací z virtuálních jader Azure Cosmos DB pro MongoDB a LLM. Další informace najdete zde.
Použití jako vektorové databáze s jazykem LangChain
Pomocí Jazyka LangChain můžete orchestrovat načítání informací z virtuálních jader Azure Cosmos DB pro MongoDB a LLM. Další informace najdete zde.
Použití jako sémantické mezipaměti s jazykem LangChain
Pomocí jazyka LangChain a Azure Cosmos DB for MongoDB (vCore) můžete orchestrovat sémantické ukládání do mezipaměti pomocí dříve přeřazených souborů LLM, které vám můžou ušetřit náklady na rozhraní LLM API a snížit latenci odpovědí. Další informace najdete tady.
Funkce a omezení
- Podporované metriky vzdálenosti: L2 (Euclidean), vnitřní produkt a kosinus.
- Podporované metody indexování: IVFFLAT (GA) a HSNW (Preview)
- Indexovací vektory o velikosti až 2 000 dimenzí
- Indexování se vztahuje pouze na jeden vektor na cestu.
- Na cestu vektoru lze vytvořit pouze jeden index.
Shrnutí
Tato příručka ukazuje, jak vytvořit vektorový index, přidat dokumenty, které obsahují vektorová data, provést vyhledávání podobnosti a načíst definici indexu. Pomocí naší integrované vektorové databáze můžete efektivně ukládat, indexovat a dotazovat vysoce dimenzionální vektorová data přímo ve službě Azure Cosmos DB pro virtuální jádra MongoDB. Umožňuje vám odemknout plný potenciál vašich dat prostřednictvím vektorových vkládání a umožňuje vytvářet přesnější, efektivnější a výkonnější aplikace.
Související obsah
- Referenční řešení .NET RAG Pattern retail reference
- Kurz k .NET – chatovací robot s receptem
- Model RAG v jazyce C# – Integrace open AI Services se službou Cosmos DB
- Model RAG v Pythonu – Chatovací robot produktu Azure
- Kurz poznámkového bloku Pythonu – Integrace vektorové databáze prostřednictvím jazyka LangChain
- Kurz poznámkového bloku Pythonu – Integrace ukládání do mezipaměti LLM prostřednictvím LangChain
- Python – Integrace llamaIndex
- Python – Integrace sémantického jádra
Další krok
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro