Databricks Vector Search
Fontos
Ez a funkció nyilvános előzetes verzióban érhető el a következő régiókban: canadacentral
, , centralus
, eastus
eastus2
, northeurope
, southeastasia
, westeurope
, westus
westus2
.
Ez a cikk áttekintést nyújt a Databricks vektoradatbázis-megoldásáról, a Databricks Vector Searchről, beleértve annak működését és működését.
Mi az a Databricks Vector Search?
A Databricks Vector Search egy vektoradatbázis, amely a Databricks Intelligence Platformba van beépítve, és integrálva van annak szabályozási és hatékonyságnövelő eszközeivel. A vektoradatbázis olyan adatbázis, amely beágyazások tárolására és lekérésére van optimalizálva. A beágyazások az adatok szemantikai tartalmának matematikai ábrázolásai, jellemzően szöveges vagy képadatok. A beágyazásokat egy nagy nyelvi modell hozza létre, és számos GenAI-alkalmazás kulcsfontosságú összetevője, amelyek az egymáshoz hasonló dokumentumok vagy képek megtalálásától függenek. Ilyenek például a RAG-rendszerek, az ajánlórendszerek, valamint a kép- és videofelismerés.
A Vektorkeresés funkcióval vektorkeresési indexet hozhat létre egy Delta-táblából. Az index metaadatokat tartalmazó beágyazott adatokat tartalmaz. Ezután egy REST API-val lekérdezheti az indexet a leginkább hasonló vektorok azonosításához és a kapcsolódó dokumentumok visszaadásához. Az indexet úgy strukturálhatja, hogy automatikusan szinkronizálja az alapul szolgáló Delta-tábla frissítésekor.
A Databricks Vector Search a hierarchikus Navigable Small World (HNSW) algoritmust használja a legközelebbi szomszédkeresésekhez, valamint az L2 távolságmetrikát a beágyazási vektor hasonlóságának méréséhez. Ha koszinuszos hasonlóságot szeretne használni, normalizálnia kell az adatpont-beágyazásokat, mielőtt a Vector Searchbe etetené őket. Az adatpontok normalizálása esetén az L2 távolság által előállított rangsor megegyezik a koszinusza hasonlóság által előállított rangsorolással.
Hogyan működik a Vector Search?
Vektoradatbázis Databricksben való létrehozásához először el kell döntenie, hogyan biztosítson vektoros beágyazást. A Databricks három lehetőséget támogat:
1 . lehetőség: Adjon meg egy forrás Delta-táblát, amely szöveges formátumban tartalmaz adatokat. A Databricks egy ön által megadott modellel számítja ki a beágyazásokat. A Delta-tábla frissítése során az index szinkronizálva marad a Delta táblával.
Az alábbi ábra a folyamatot szemlélteti:
- Lekérdezésbeágyazások kiszámítása. A lekérdezés metaadatszűrőket is tartalmazhat.
- A legtöbb releváns dokumentum azonosításához végezzen hasonlósági keresést.
- Adja vissza a legrelevánsabb dokumentumokat, és fűzze hozzá őket a lekérdezéshez.
2 . lehetőség: Előre számított beágyazásokat tartalmazó forrás Delta-táblázatot ad meg. A Delta-tábla frissítése során az index szinkronizálva marad a Delta táblával.
Az alábbi ábra a folyamatot szemlélteti:
- A lekérdezés beágyazásokból áll, és metaadatszűrőket is tartalmazhat.
- A legtöbb releváns dokumentum azonosításához végezzen hasonlósági keresést. Adja vissza a legrelevánsabb dokumentumokat, és fűzze hozzá őket a lekérdezéshez.
3 . lehetőség: Előre számított beágyazásokat tartalmazó forrás Delta-táblázatot ad meg. A Delta-tábla frissítésekor nincs automatikus szinkronizálás. A beágyazási tábla módosításakor manuálisan kell frissítenie az indexet a REST API használatával.
Az alábbi diagram a 2. lehetőséggel megegyező folyamatot mutatja be, azzal a különbséggel, hogy a vektorindex nem frissül automatikusan a Delta-tábla módosításakor:
Vektorkeresés beállítása
A Databricks Vector Search használatához a következőket kell létrehoznia:
- Vektorkeresési végpont. Ez a végpont a vektorkeresési indexet szolgálja ki. A végpontot a REST API vagy az SDK használatával kérdezheti le és frissítheti. A végpontok automatikusan skálázhatók az index méretének vagy az egyidejű kérések számának támogatásához. Útmutatásért lásd: Vektorkeresési végpont létrehozása.
- Vektorkeresési index. A vektorkeresési index egy Delta-táblából jön létre, és úgy van optimalizálva, hogy valós időben közelítő közelítő szomszédkereséseket biztosítson. A keresés célja a lekérdezéshez hasonló dokumentumok azonosítása. A vektorkeresési indexek a Unity Katalógusban jelennek meg, és azokat szabályozzák. Útmutatásért lásd : Vektorkeresési index létrehozása.
Ezenkívül ha úgy dönt, hogy a Databricks kiszámítja a beágyazásokat, létre kell hoznia egy végpontot kiszolgáló modellt is a beágyazási modellhez. Útmutatásért tekintse meg a végpontokat kiszolgáló alapmodell létrehozása című témakört.
A végpontot kiszolgáló modell lekérdezéséhez használja a REST API-t vagy a Python SDK-t. A lekérdezés a Delta tábla bármely oszlopa alapján definiálhat szűrőket. További részletekért lásd: Szűrők használata lekérdezéseken, API-referencia vagy Python SDK-referencia.
Követelmények
- Unity Catalog-kompatibilis munkaterület.
- A kiszolgáló nélküli számítás engedélyezve van.
- A forrástáblának engedélyezve kell lennie az Adatcsatorna módosítása funkcióval.
- CREATE TABLE privileges on catalog schema(s) to create indexes.
- A személyes hozzáférési jogkivonatok engedélyezve.
Adatvédelem és hitelesítés
A Databricks az alábbi biztonsági vezérlőket implementálja az adatok védelme érdekében:
- A Vector Search felé irányuló minden ügyfélkérés logikailag el van különítve, hitelesítve és engedélyezve van.
- A Databricks-vektorkeresés titkosítja az összes inaktív adatot (AES-256) és az átvitelt (TLS 1.2+).
A Databricks Vector Search két hitelesítési módot támogat:
- Személyes hozzáférési jogkivonat – Személyes hozzáférési jogkivonatot használhat a Vector Search használatával történő hitelesítéshez. Tekintse meg a személyes hozzáférési hitelesítési jogkivonatot. Ha az SDK-t jegyzetfüzet-környezetben használja, az automatikusan létrehoz egy PAT-jogkivonatot a hitelesítéshez.
- Szolgáltatásnév jogkivonata – A rendszergazda létrehozhat egy szolgáltatásnév-jogkivonatot, és átadhatja azt az SDK-nak vagy API-nak. Lásd: szolgáltatásnevek használata. Éles használat esetén a Databricks szolgáltatásnév-jogkivonat használatát javasolja.
Erőforrás- és adatméretkorlátok
Az alábbi táblázat a vektorkeresési végpontok és indexek erőforrás- és adatméretkorlátjait foglalja össze:
Erőforrás | Részletesség | Korlát |
---|---|---|
Vektorkeresési végpontok | Munkaterületenként | 10 |
Beágyazások | Végpontonként | 100,000,000 |
Beágyazási dimenzió | Indexenként | 4096 |
Indexek | Végpontonként | 20 |
Oszlopok | Indexenként | 20 |
Oszlopok | Támogatott típusok: bájtok, rövid, egész szám, hosszú, lebegőpontos, kettős, logikai, sztring, időbélyeg, dátum | |
Metaadatmezők | Indexenként | 20 |
Index neve | Indexenként | 128 karakter |
A vektorkeresési indexek létrehozására és frissítésére az alábbi korlátozások vonatkoznak:
Erőforrás | Részletesség | Korlát |
---|---|---|
A Delta Sync Index sormérete | Indexenként | 100 KB |
Forrásoszlop méretének beágyazása a Delta Sync-indexhez | Indexenként | 32764 bájt |
Direct Vector-index tömeges upsert kérésméretkorlátja | Indexenként | 10MB |
Direct Vector-index tömeges törlési kérésméretkorlátja | Indexenként | 10MB |
A vektorkeresés lekérdezési API-ra az alábbi korlátozások vonatkoznak.
Erőforrás | Részletesség | Korlát |
---|---|---|
Szöveghossz lekérdezése | Lekérdezésenként | 32764 |
Számeredmények | Lekérdezésenként | 50 |
Korlátozások
- A PrivateLink - vagy IP-hozzáférési listák támogatása jelenleg a kiválasztott ügyfelekre korlátozódik. Ha a funkciót PrivateLink- vagy IP-hozzáférési listákkal szeretné használni, forduljon a Databricks ügyfélszolgálatához.
- Az ügyfél által felügyelt kulcsok (CMK) nem támogatottak a nyilvános előzetes verzióban.
- A szabályozott munkaterületek nem támogatottak, ezért ez a funkció nem HIPAA-kompatibilis.
- A sor- és oszlopszintű engedélyek nem támogatottak. A szűrő API használatával azonban saját alkalmazásszintű ACL-eket is implementálhat.
További erőforrások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: