Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Feljegyzés
Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.
A vektorok olyan nagy méretű beágyazások, amelyek matematikailag ábrázolják a szöveget, képeket és egyéb tartalmakat. Azure AI Keresés a vektorokat mezőszinten tárolja, így a vektorok és a nem vektor tartalmak ugyanazon keresési indexen belül is létezhetnek.
A keresési index vektorindex lesz, amikor vektormezőket és vektorkonfigurációt határoz meg. A vektormezők feltöltéséhez betöltheti az előre kiszámított beágyazásokat, vagy használhatja az integrált vektorizálást, egy beépített Azure AI Keresés képességet, amely beágyazásokat hoz létre az indexelés során.
Lekérdezéskor az index vektormezői lehetővé teszik a hasonlóság keresését, ahol a rendszer lekéri azokat a dokumentumokat, amelyek vektorai leginkább hasonlítanak a vektoros lekérdezéshez. Használhatja a vektoros keresést a hasonlóság egyeztetésére egyedül, vagy hibrid keresést a hasonlóság és a kulcsszóegyeztetés kombinációjára.
Ez a cikk a vektorindexek létrehozásának és kezelésének főbb fogalmait ismerteti, többek között a következőket:
- Vektorlekérési minták
- Tartalom (vektormezők és konfiguráció)
- Fizikai adatstruktúra
- Alapszintű műveletek
Jótanács
Azonnal hozzá szeretne kezdeni? Lásd: Vektorindex létrehozása.
Vektorlekérési minták
Azure AI Keresés két mintát támogat a vektorok lekéréséhez:
Klasszikus keresés. Ez a minta egy keresősávot, lekérdezési bemenetet és renderelt eredményeket használ. A lekérdezés végrehajtása során a keresőmotor vagy az alkalmazáskód vektorizálja a felhasználói bemenetet. A keresőmotor ezután vektorkeresést hajt végre az index vektormezőiben, és egy ügyfélalkalmazásban renderelt választ fogalmaz meg.
A Azure AI Keresés az eredményeket egybesimított sorkészletként adja vissza, és kiválaszthatja, hogy mely mezőket vegye fel a válaszba. Bár a keresőmotor vektorokon keres, az indexnek nemvektoros, emberileg olvasható tartalommal kell rendelkeznie a keresési eredmények feltöltéséhez. A klasszikus keresés a vektoros ésa hibrid lekérdezéseket is támogatja.
Generatív keresés. A nyelvi modellek Azure AI Keresés adatait használják a felhasználói lekérdezésekre való válaszadáshoz. A vezénylési réteg általában koordinálja a kéréseket és fenntartja a kontextust, és a keresési eredményeket csevegőmodellekbe, például a GPT-be irányítja. Ez a minta a lekéréses-bővített generációs (RAG) architektúrán alapul, ahol a keresési index alapozó adatokat biztosít.
Vektorindex sémája
A vektorindex sémájának a következőket kell tartalmaznia:
- Név
- Kulcsmező (sztring)
- Egy vagy több vektormező
- Vektorkonfiguráció
A nem adatmegjelenítő mezőkre nincs szükség, de javasoljuk, hogy a hibrid lekérdezésekhez vagy a nem nyelvi modellen keresztüli szó szerinti tartalom visszaadásához vegye fel őket. További információ: Vektorindex létrehozása.
Az indexsémának tükröznie kell a vektorlekérési mintát. Ez a szakasz elsősorban a klasszikus keresés mezőösszetételét ismerteti, de a generatív kereséshez is nyújt séma-útmutatást.
Alapszintű vektormező-konfiguráció
A vektormezők egyedi adattípusokkal és tulajdonságokkal rendelkeznek. Így néz ki egy vektormező egy mezőgyűjteményben:
{
"name": "content_vector",
"type": "Collection(Edm.Single)",
"searchable": true,
"retrievable": true,
"dimensions": 1536,
"vectorSearchProfile": "my-vector-profile"
}
Vektormezők esetében csak bizonyos adattípusok támogatottak. A leggyakoribb típus a Collection(Edm.Single), de a keskeny típusok használata tárhelyet takaríthat meg.
A vektormezőknek kereshetőnek és lekérdezhetőnek kell lenniük, de nem lehetnek szűrhetőek, facetablek vagy rendezhetőek. Nem rendelkezhetnek elemzőkkel, normalizálókkal vagy szinonimatérkép-hozzárendelésekkel sem.
A dimensions tulajdonságot a beágyazási modell által létrehozott beágyazások számának megfelelően kell beállítani. A text-embedding-ada-002 például 1536 beágyazást generál minden egyes szövegtömbhöz.
A vektormezők indexelése egy vektorkeresési profilban megadott algoritmusokkal történik, amely az index más részén van definiálva, és nem jelenik meg ebben a példában. További információ: Vektorkeresési konfiguráció hozzáadása.
Mezők gyűjteménye alapvektoros feladatokhoz
A vektorindexekhez nem csupán vektormezőkre van szükség. Például minden indexnek rendelkeznie kell egy kulcsmezővel, amely az alábbi példában található id :
"name": "example-basic-vector-idx",
"fields": [
{ "name": "id", "type": "Edm.String", "searchable": false, "filterable": true, "retrievable": true, "key": true },
{ "name": "content_vector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": true, "dimensions": 1536, "vectorSearchProfile": null },
{ "name": "content", "type": "Edm.String", "searchable": true, "retrievable": true, "analyzer": null },
{ "name": "metadata", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": true }
]
Egyéb mezők, például a content mező, az content_vector mező emberileg olvasható megfelelőjét biztosítják. Ha kizárólag válaszkészítéshez használ nyelvi modelleket, kihagyhatja a nem vektortartalmi mezőket, de a keresési eredményeket közvetlenül az ügyfélalkalmazásokba küldő megoldásoknak tartalmazniuk kell nem vektortartalmat.
A metaadatmezők hasznosak a szűrőkhöz, különösen akkor, ha a forrásdokumentum forrásadatait tartalmazzák. Bár nem szűrhet közvetlenül egy vektoros mezőre, lehetősége van beállítani az előszűrő, postfilter vagy szigorú postfilter (előzetes verzió) módokat a vektoros lekérdezés végrehajtása előtt vagy után.
Az importálási varázsló által létrehozott séma
Az Adatok importálása varázslót javasoljuk a kiértékeléshez és a megvalósíthatósági vizsgálathoz. A varázsló ebben a szakaszban hozza létre a példasémát.
A varázsló kisebb keresési dokumentumokba alakítja a tartalmat, ami a nyelvi modelleket használó RAG-alkalmazásoknak kedvez a válaszok megfogalmazásához. A feldarabolás segít a nyelvi modellek bemeneti korlátain és a szemantikai rangsoroló token-határain belül maradni. Emellett a több szülődokumentumból lekért adattömbök lekérdezéseinek egyeztetésével is javítja a hasonlóság keresésének pontosságát. További információ: Nagy méretű tömbdokumentumok vektorkeresési megoldásokhoz.
Az alábbi példában szereplő keresési dokumentumok mindegyikéhez tartozik egy részazonosító, szülőazonosító, rész, cím és vektormező. A varázsló:
A
chunk_idésparent_idmezőket base64-kódolású blob metaadatokkal (elérési út) tölti fel.Kinyeri a
chunkmezőt a blob tartalmából, és atitlemezőt a blob nevéből.A
vectormezőt egy Azure OpenAI beágyazási modell meghívásával hozza létre, amelyet achunkmező vektorizálásához biztosít. A folyamat során csak a vektormező jön létre teljes mértékben.
"name": "example-index-from-import-wizard",
"fields": [
{ "name": "chunk_id", "type": "Edm.String", "key": true, "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": true, "analyzer": "keyword"},
{ "name": "parent_id", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "sortable": true},
{ "name": "chunk", "type": "Edm.String", "searchable": true, "filterable": false, "retrievable": true, "sortable": false},
{ "name": "title", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "sortable": false},
{ "name": "vector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": true, "dimensions": 1536, "vectorSearchProfile": "vector-1707768500058-profile"}
]
Séma a generatív kereséshez
Ha vektoros tárolót tervez RAG- és csevegőstílusú alkalmazásokhoz, két indexet hozhat létre:
- Egy az indexelt és vektorizált statikus tartalomhoz.
- Az egyik a parancssori folyamatokban használható beszélgetésekhez.
Szemléltető célokra ez a szakasz a chat-with-your-data-solution-accelerator használatával hozza létre a chat-index és conversations indexeket.
A következő mezők támogatják a chat-index generatív keresési szolgáltatásokat:
"name": "example-index-from-accelerator",
"fields": [
{ "name": "id", "type": "Edm.String", "searchable": false, "filterable": true, "retrievable": true },
{ "name": "content", "type": "Edm.String", "searchable": true, "filterable": false, "retrievable": true },
{ "name": "content_vector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": true, "dimensions": 1536, "vectorSearchProfile": "my-vector-profile"},
{ "name": "metadata", "type": "Edm.String", "searchable": true, "filterable": false, "retrievable": true },
{ "name": "title", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "facetable": true },
{ "name": "source", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true },
{ "name": "chunk", "type": "Edm.Int32", "searchable": false, "filterable": true, "retrievable": true },
{ "name": "offset", "type": "Edm.Int32", "searchable": false, "filterable": true, "retrievable": true }
]
A támogatás vezénylési és csevegési előzményeinek conversations alábbi mezői:
"fields": [
{ "name": "id", "type": "Edm.String", "key": true, "searchable": false, "filterable": true, "retrievable": true, "sortable": false, "facetable": false },
{ "name": "conversation_id", "type": "Edm.String", "searchable": false, "filterable": true, "retrievable": true, "sortable": false, "facetable": true },
{ "name": "content", "type": "Edm.String", "searchable": true, "filterable": false, "retrievable": true },
{ "name": "content_vector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": true, "dimensions": 1536, "vectorSearchProfile": "default-profile" },
{ "name": "metadata", "type": "Edm.String", "searchable": true, "filterable": false, "retrievable": true },
{ "name": "type", "type": "Edm.String", "searchable": false, "filterable": true, "retrievable": true, "sortable": false, "facetable": true },
{ "name": "user_id", "type": "Edm.String", "searchable": false, "filterable": true, "retrievable": true, "sortable": false, "facetable": true },
{ "name": "sources", "type": "Collection(Edm.String)", "searchable": false, "filterable": true, "retrievable": true, "sortable": false, "facetable": true },
{ "name": "created_at", "type": "Edm.DateTimeOffset", "searchable": false, "filterable": true, "retrievable": true },
{ "name": "updated_at", "type": "Edm.DateTimeOffset", "searchable": false, "filterable": true, "retrievable": true }
]
Az alábbi képernyőképen a keresési eredmények láthatók conversations a Kereséskezelőben:
A példánkban a keresési pontszám 1,00, mert a keresés nincs minősítve. Számos mező támogatja a vezénylést és a parancssori folyamatokat:
-
conversation_idazonosítja az egyes csevegési munkameneteket. -
typejelzi, hogy a tartalom a felhasználótól vagy az asszisztenstől származik-e. -
created_atésupdated_ateltávolítják az elavult csevegéseket az előzményekből.
Fizikai struktúra és méret
A Azure AI Keresés az index fizikai szerkezete nagyrészt belső megvalósítás. Hozzáférhet a sémához, betöltheti és lekérdezheti a tartalmát, monitorozhatja annak méretét, és kezelheti a kapacitását. Azonban Microsoft kezeli a keresési szolgáltatásban tárolt infrastruktúrát és fizikai adatstruktúrákat.
Az index méretét és tartalmát a következők határozzák meg:
A dokumentumok mennyisége és összetétele.
Attribútumok az egyes mezőkön. A szűrhető mezőkhöz például több tárhelyre van szükség.
Indexkonfiguráció, beleértve a belső navigációs struktúrák létrehozásának módját meghatározó vektorkonfigurációt is. A hasonlóság kereséséhez választhatja a HNSW-t vagy a teljes KNN-t.
Azure AI Keresés korlátozza a vektoros tárolást, ami segít fenntartani a kiegyensúlyozott és stabil rendszert minden számítási feladathoz. A korlátok alatti maradáshoz a vektorhasználatot az Azure portálon, valamint szolgáltatás- és index-statisztikákon keresztül programozottan követik nyomon és jelentik.
Az alábbi képernyőképen egy egy partícióval és egy replikával konfigurált S1 szolgáltatás látható. Ez a szolgáltatás 24 kis indexet tartalmaz, amelyek mindegyike egy vektormező átlagával rendelkezik, amely 1536 beágyazásból áll. A második csempe a vektorindexek kvótáit és használatát mutatja. Mivel a vektorindex az egyes vektormezőkhöz létrehozott belső adatstruktúra, a vektorindexek tárolása mindig az index által használt teljes tárterület töredékét alkotja. A nem vektormezők és más adatstruktúrák a maradékot fogyasztják el.
A vektorindex korlátait és becsléseit egy másik cikk ismerteti, de két fontos szempont, hogy a maximális tárterület a keresési szolgáltatás létrehozási dátumától és tarifacsomagjától függ. Az újabb azonos szintű szolgáltatások jelentősen nagyobb kapacitással rendelkeznek a vektorindexekhez. Az alábbi okok miatt a következőkre van szükség:
Ellenőrizze a keresési szolgáltatás létrehozásának dátumát. Ha 2024. április 3. előtt hozták létre, lehetséges, hogy frissítheti a szolgáltatást a nagyobb kapacitás érdekében.
Válasszon skálázható szintet , ha a vektoros tárolás követelményeinek ingadozása várható. A régebbi keresési szolgáltatások esetében az alapszint egy partíción van rögzítve. A rugalmasabb és gyorsabb teljesítmény érdekében fontolja meg a Standard 1 (S1) és újabb verziót. Az Alapszintű és a Standard (S1, S2 és S3) szint között is válthat.
Alapműveletek és interakciók
Ez a szakasz vektoros futtatókörnyezeti műveleteket mutat be, beleértve az egyetlen indexhez való csatlakozást és biztonságossá tételt.
Feljegyzés
Az indexek áthelyezéséhez vagy másolásához nincs portál- vagy API-támogatás. Az alkalmazás telepítését általában egy másik keresőszolgáltatásra irányíthatja (ugyanazzal az indexnévvel), vagy módosíthatja a nevet, hogy készítsen egy másolatot az aktuális keresőszolgáltatáson, majd felépítse azt.
Indexelkülönítés
A Azure AI Keresés egyszerre csak egy indexet használhat. Minden indexhez kapcsolódó művelet egyetlen indexet céloz meg. Nincs koncepció sem kapcsolódó, sem független indexek összekapcsolására sem az indexeléshez, sem a lekérdezéshez.
Folyamatosan elérhető
Az index azonnal elérhető a lekérdezésekhez, amint az első dokumentum indexelt, de nem működik teljesen, amíg az összes dokumentum indexel. A rendszer belsőleg elosztja az indexet a partíciók között, és replikákon hajtja végre. A fizikai index belsőleg van kezelve. Ön kezeli a logikai indexet.
Az index folyamatosan elérhető, és nem lehet szüneteltetni vagy offline állapotba helyezni. Mivel folyamatos működésre tervezték, a tartalom frissítése és maga az index hozzáadása valós időben történik. Ha egy kérelem egybeesik egy dokumentumfrissítéssel, előfordulhat, hogy a lekérdezések ideiglenesen hiányos eredményeket adnak vissza.
A lekérdezés-folytonosság a dokumentumműveletekhez, például a frissítéshez vagy törléshez, valamint az index meglévő szerkezetét vagy integritását nem befolyásoló módosításokhoz, például új mezők hozzáadásához létezik. A szerkezeti frissítések, például a meglévő mezők módosítása általában egy legördülő és újraépítési munkafolyamattal kezelhetők egy fejlesztési környezetben, vagy az index új verziójának létrehozásával az éles szolgáltatásban.
Az indexek újraépítésének elkerülése érdekében egyes ügyfelek, akik kis módosításokat végeznek a "verzió" mezőben, létrehoznak egy újat, amely egy korábbi verzióval együtt létezik. Idővel ez elavult mezők és elavult egyéni elemződefiníciók révén árva tartalomhoz vezet, különösen egy éles indexben, amelynek replikálása költséges. Ezeket a problémákat az index tervezett frissítései során, az index életciklus-kezelésének részeként kezelheti.
Végpontkapcsolat
Minden vektorindexelés és lekérdezéskérés egy indexet céloz meg. A végpontok általában a következők egyike:
| Végpont | Kapcsolat- és hozzáférés-vezérlés |
|---|---|
<your-service>.search.windows.net/indexes |
Az indexek gyűjteményét célozza meg. Index létrehozása, listázása vagy törlésekor használatos. Ezekhez a műveletekhez rendszergazdai jogosultságok szükségesek, és rendszergazdai API-kulcsokkal vagy keresési közreműködői szerepkörrel érhetők el. |
<your-service>.search.windows.net/indexes/<your-index>/docs |
Egyetlen index dokumentumgyűjteményét célozza meg. Index vagy adatfrissítés lekérdezésekor használatos. A lekérdezésekhez az olvasási jogosultságok elegendőek, és lekérdezési API-kulcsokkal vagy adatolvasó szerepkörrel érhetők el. Az adatfrissítéshez rendszergazdai jogosultságokra van szükség. |
Hogyan csatlakozhatunk az Azure AI Keresés szolgáltatáshoz?
Győződjön meg arról, hogy rendelkezik engedélyekkel vagy API-hozzáférési kulccsal. Ha nem kérdez le egy meglévő indexet, rendszergazdai jogosultságokra vagy közreműködői szerepkör-hozzárendelésre van szüksége a tartalom keresési szolgáltatásban való kezeléséhez és megtekintéséhez.
Kezdje az Azure portállal. A keresőszolgáltatást létrehozó személy megtekintheti és kezelheti azt, beleértve a hozzáférés-vezérlés (IAM) lapon másoknak való hozzáférést is.
Lépjen át más ügyfelekre a programozott hozzáférés érdekében. Az első lépésekhez javasoljuk a Gyorsútmutató: Vektorkeresés REST-tel és az azure-search-vector-samples adattárat.
Vektortárolók kezelése
Azure monitoring platformot biztosít, amely magában foglalja a diagnosztikai naplózást és a riasztást. A következő megoldást javasoljuk:
- Diagnosztikai naplózás engedélyezése.
- Riasztások beállítása.
- A lekérdezési és indexelési teljesítmény elemzése.
Vektoradatokhoz való biztonságos hozzáférés
Azure AI Keresés implementálja az adattitkosítást, az internet nélküli forgatókönyvek privát kapcsolatait és a szerepkör-hozzárendeléseket a biztonságos hozzáféréshez Microsoft Entra ID keresztül. A vállalati biztonsági funkciókkal kapcsolatos további információkért lásd: Adatok, adatvédelem és beépített védelem.