Databricks Vector Search

Fontos

Ez a funkció nyilvános előzetes verzióban érhető el a következő régiókban: canadacentral, , centralus, eastuseastus2, northeurope, southeastasia, westeurope, westuswestus2.

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.

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:

    1. Lekérdezésbeágyazások kiszámítása. A lekérdezés metaadatszűrőket is tartalmazhat.
    2. A legtöbb releváns dokumentum azonosításához végezzen hasonlósági keresést.
    3. Adja vissza a legrelevánsabb dokumentumokat, és fűzze hozzá őket a lekérdezéshez.

    vektoradatbázis, a Databricks a beágyazásokat számítja ki

  • 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:

    1. A lekérdezés beágyazásokból áll, és metaadatszűrőket is tartalmazhat.
    2. 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.

    vektoradatbázis, előre kiszámított beágyazások

  • 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:

    vektoradatbázis, előre kiszámított beágyazások automatikus szinkronizálás nélkül

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