Megosztás a következőn keresztül:


Mik azok a vektorbeágyazások és vektorkeresések az Azure Cache for Redisben?

A vektoros hasonlóság-keresés (VSS) az AI-alapú intelligens alkalmazások népszerű technológiájává vált. Az Azure Cache for Redis vektoradatbázisként használható olyan modellekkel kombinálva, mint az Azure OpenAI for Retrieveal-Augmented Generative AI és más elemzési forgatókönyvek. Ez a cikk a vektorbeágyazások, a vektor-hasonlóság keresésének és az intelligens alkalmazásokat használó vektoradatbázisok használatának magas szintű bemutatása.

A nagyvállalati szint vagy az Azure Managed Redis Azure OpenAI-val való használatával kapcsolatos oktatóanyagokat és mintaalkalmazásokat az alábbiakban talál:

A rendelkezésre állás hatóköre

A Redis vektorkeresési képességeihez a Redis Stackre van szükség, különösen a RediSearch modulra. Ez a funkció csak az Azure Cache for Redis és az Azure Managed Redis vállalati szintjeiben érhető el.

Ez a táblázat a különböző szintek vektorkeresési rendelkezésre állásának adatait tartalmazza.

Kategória Alapszintű / Standard prémium Vállalati Enterprise Flash Azure által felügyelt Redis
Beszerezhető Nem Nem Igen Igen (előzetes verzió) Igen

Mik azok a vektoros beágyazások?

A vektoros beágyazások a gépi tanulás és a természetes nyelvi feldolgozás alapvető fogalmai, amelyek lehetővé teszik az adatok, például szavak, dokumentumok vagy képek numerikus vektorként való ábrázolását egy nagy dimenziójú vektortérben. A vektoros beágyazások mögött az elsődleges gondolat az adatok mögöttes kapcsolatainak és szemantikájának rögzítése azáltal, hogy a vektortérben lévő pontokra van megfeleltetve. Ez azt jelenti, hogy a szöveget vagy képeket számok sorozatává alakítja, amelyek az adatokat jelölik, majd összehasonlítják a különböző számsorozatokat. Így az összetett adatok matematikailag kezelhetők és elemezhetők, így egyszerűbbé válik az olyan feladatok végrehajtása, mint a hasonlóságok összehasonlítása, a javaslatok és a besorolás.

Minden gépi tanulási modell osztályozza az adatokat, és más módon állítja elő a vektort. Emellett általában nem lehet pontosan meghatározni, hogy az egyes vektordimenziók mit jelentenek. Mivel azonban a modell konzisztens a bemeneti adatok minden blokkja között, a hasonló szavak, dokumentumok vagy képek vektorai szintén hasonlóak. Például a szavak basketball és baseball beágyazások vektorok sokkal közelebb egymáshoz, mint egy szó, mint rainforest.

Vektorok összehasonlítása

A vektorok különböző metrikák használatával hasonlíthatók össze. A vektorok összehasonlításának legnépszerűbb módja a koszinusza hasonlóság használata, amely egy többdimenziós tér két vektora közötti szög koszinuszát méri. Minél közelebb van a vektor, annál kisebb a szög. Más gyakori távolságmetrikák közé tartozik az euklideszi távolság és a belső termék.

Beágyazások létrehozása

Számos gépi tanulási modell támogatja a beágyazási API-kat. A vektoros beágyazások Azure OpenAI szolgáltatással történő létrehozását ismertető példáért tekintse meg a beágyazások Azure OpenAI-val való létrehozását ismertető témakört.

Mi az a vektoradatbázis?

A vektoradatbázis olyan adatbázis, amely képes vektorokat tárolni, kezelni, lekérni és összehasonlítani. A vektoradatbázisoknak hatékonyan kell tárolniuk a nagy dimenziójú vektorokat, és minimális késéssel és nagy átviteli sebességgel kell lekérniük. A nem relációs adattárakat leggyakrabban vektoradatbázisként használják, bár relációs adatbázisok, például a PostgreSQL is használható a pgvector kiterjesztéssel.

Indexelési és keresési módszer

A vektoradatbázisoknak indexelni kell az adatokat a gyors kereséshez és lekéréshez. Emellett a vektoradatbázisoknak támogatniuk kell a beépített keresési lekérdezéseket az egyszerűsített programozási élmény érdekében.

Számos indexelési módszer létezik, például:

  • FLAT – Találgatásos index
  • HNSW – Hatékony és robusztus közelítő közelítő szomszédkeresés hierarchikus navigálható kisvilági gráfokkal

Számos gyakori keresési módszer létezik, például:

  • K-Legközelebbi szomszédok (KNN) - egy kimerítő módszer, amely a legpontosabb, de magasabb számítási költséggel rendelkezik.
  • Közelítő legközelebbi szomszédok (ANN) - hatékonyabb kereskedelmi pontosság nagyobb sebesség és alacsonyabb feldolgozási többletterhelés.

Keresési képességek

Végül a vektoradatbázisok vektorkereséseket hajtanak végre a kiválasztott vektor-összehasonlító módszerrel a leginkább hasonló vektorok visszaadásához. Egyes vektoradatbázisok hibrid kereséseket is végezhetnek, ha először szűkítik a találatokat az adatbázisban tárolt jellemzők vagy metaadatok alapján a vektorkeresés végrehajtása előtt. Így hatékonyabbá és testre szabhatóbbá teheti a vektorkeresést. A vektorkeresés például csak az adatbázisban egy adott címkével rendelkező vektorokra, vagy egy adott régió földrajzi helyadataival rendelkező vektorokra korlátozható.

Vektorkeresési kulcsforgatókönyvek

A vektoros hasonlóság keresése több alkalmazásban is használható. Néhány gyakori használati eset:

  • Szemantikus Q&A. Hozzon létre egy csevegőrobotot, amely képes válaszolni a saját adataival kapcsolatos kérdésekre. Például egy csevegőrobot, amely képes válaszolni az alkalmazottak egészségügyi ellátással kapcsolatos kérdéseire. Több száz oldalnyi, sűrű egészségügyi lefedettségi dokumentációt oszthat fel adattömbökre, beágyazási vektorokká alakítható át, és a vektorok hasonlósága alapján kereshet. Az eredményként kapott dokumentumok ezután egy másik nagy nyelvi modellt (LLM) használó alkalmazottak számára összegzhetők. Szemantikai kérdések és válaszok – példa
  • Dokumentumlekérés. Az LLM-k által biztosított szöveg mélyebb szemantikai megértésével gazdagabb dokumentumkeresési élményt biztosíthat, ahol a hagyományos kulcsszóalapú keresések rövidek lesznek. Példa dokumentumlekérésre
  • Termékajánlás. Keressen hasonló termékeket vagy szolgáltatásokat, amelyeket a korábbi felhasználói tevékenységek, például a keresési előzmények vagy a korábbi vásárlások alapján ajánlhat. Példa termékajánlásra
  • Visual Search. Olyan termékek keresése, amelyek hasonlóak egy felhasználó vagy egy másik termék képéhez. Vizuális keresés példa
  • Szemantikai gyorsítótárazás. Az LLM-ek költségeit és késését az LLM-befejezések gyorsítótárazásával csökkentheti. Az LLM-lekérdezéseket vektoros hasonlóság alapján hasonlítjuk össze. Ha egy új lekérdezés elég hasonló egy korábban gyorsítótárazott lekérdezéshez, a rendszer visszaadja a gyorsítótárazott lekérdezést. Szemantikai gyorsítótárazási példa a LangChain használatával
  • LLM-beszélgetési memória. A beszélgetési előzmények megőrzése egy LLM-sel beágyazásként egy vektoradatbázisban. Az alkalmazás vektorkereséssel lekérheti a releváns előzményeket vagy emlékeket az LLM válaszába. LLM-beszélgetési memória példa

Miért válassza az Azure Cache for Redist vektorok tárolásához és kereséséhez?

Az Azure Cache for Redis hatékonyan használható vektoradatbázisként a beágyazási vektorok tárolására és a vektorok hasonlósági keresésére. A vektoros tárolás és a keresés támogatása számos kulcsfontosságú gépi tanulási keretrendszerben elérhető, például:

Ezek a keretrendszerek gazdag integrációval rendelkeznek a Redis használatával. A Redis LangChain-integráció például automatikusan létrehoz egy indexsémát a Redis vektortárolóként való használatakor átadott metaadatokhoz . Ez sokkal egyszerűbbé teszi az eredmények metaadatokon alapuló szűrését.

A Redis számos keresési funkcióval rendelkezik a RediSearch modulon keresztül, amely az Azure Cache for Redis nagyvállalati szintjén érhető el. Ezek a következők:

  • Több távolsági metrika, beleértve Euclidean, Cosine és Internal Product.
  • A KNN (using FLAT) és az ANN (using HNSW) indexelési metódusok támogatása.
  • Vektoros tárolás kivonat- vagy JSON-adatstruktúrákban
  • Leggyakoribb K-lekérdezések
  • Vektortartomány-lekérdezések (vagyis az összes elem megkeresése egy adott vektortávolságon belül)
  • Hibrid keresés hatékony lekérdezési funkciókkal, például:
    • Térinformatikai szűrés
    • Numerikus és szövegszűrők
    • Előtag és hozzávetőleges egyezés
    • Fonetikus egyeztetés
    • Logikai lekérdezések

Emellett a Redis gyakran gazdaságos választás, mivel már olyan gyakran használják gyorsítótárazáshoz vagy munkamenet-tároló alkalmazásokhoz. Ezekben a forgatókönyvekben egy tipikus gyorsítótárazási szerepkör kiszolgálásával, a vektorkeresési alkalmazások egyidejű kezelése mellett dupla terhelést tud lekérni.

Milyen egyéb lehetőségek vannak a vektorok tárolására és keresésére?

Az Azure-ban több más megoldás is létezik a vektoros tároláshoz és a kereséshez. További megoldások a következők:

A beágyazások és vektorkeresés első lépéseinek legjobb módja, ha kipróbálja magát!