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


Vektoradatbázis

A KÖVETKEZŐKRE VONATKOZIK: Nosql MongoDB virtuális mag Postgresql

A vektoradatbázisokat számos tartományban és helyzetben használják elemzési és generatív AI-ben, beleértve többek között a természetes nyelvi feldolgozást, a videó- és képfelismerést, a javaslati rendszert és a keresést.

2023-ban a szoftverek jelentős trendje az AI-fejlesztések integrálása volt, amelyet gyakran úgy értek el, hogy speciális önálló vektoradatbázisokat építettek be a meglévő technológiai vermekbe. Ez a cikk bemutatja, hogy mik a vektoradatbázisok, és egy alternatív architektúrát mutat be, amelyet érdemes megfontolni: integrált vektoradatbázis használata a már használt NoSQL-ben vagy relációs adatbázisban, különösen a több modális adatok használata esetén. Ez a megközelítés nem csak a költségek csökkentését teszi lehetővé, hanem nagyobb adatkonzisztenciát, méretezhetőséget és teljesítményt is biztosít.

Tipp.

Az adatkonzisztencia, a méretezhetőség és a teljesítmény kritikus fontosságú az adatigényes alkalmazások esetében, ezért az OpenAI úgy döntött, hogy a ChatGPT szolgáltatást az Azure Cosmos DB fölé építi. Ön is kihasználhatja az integrált vektoradatbázist, valamint az egy számjegyből álló ezredmásodpercnyi válaszidőt, az automatikus és azonnali méretezhetőséget, valamint a garantált sebességet bármilyen léptékben. Tekintse meg a megvalósítási mintákat , és próbálja ki ingyenesen.

Mi az a vektoradatbázis?

A vektoradatbázis egy vektoros beágyazások tárolására és kezelésére szolgáló adatbázis, amely nagy dimenziójú térben lévő adatok matematikai ábrázolása. Ebben a térben minden dimenzió megfelel az adatok egy funkciójának, és több tízezer dimenzió használható kifinomult adatok megjelenítésére. A vektor pozíciója ebben a térben annak jellemzőit jelöli. Szavak, kifejezések vagy teljes dokumentumok, képek, hang és más típusú adatok mind vektorizálhatók. Ezeket a vektoros beágyazásokat a hasonlóság keresésében, a több modális keresésben, a javaslatok motorjaiban, a nagy nyelvi modellekben (LLM-ek) stb. használják.

A vektoradatbázisokban a beágyazásokat a vektorkeresési algoritmusok indexelik és kérdezik le a vektorok távolsága vagy hasonlósága alapján. A legrelevánsabb adatok azonosításához robusztus mechanizmusra van szükség. Néhány jól ismert vektorkeresési algoritmus a hierarchikus Navigable Small World (HNSW), az Inverted File (IVF), a DiskANN stb.

Integrált vektoradatbázis és tiszta vektoradatbázis

A vektoradatbázis-implementációknak két gyakori típusa van: a tiszta vektoradatbázis és az integrált vektoradatbázis a NoSQL-ben vagy a relációs adatbázisban.

A tiszta vektoradatbázist úgy tervezték, hogy hatékonyan tárolja és kezelje a vektoros beágyazásokat, valamint kis mennyiségű metaadatot; nem az adatforrás, amelyből a beágyazások származnak.

A nagy teljesítményű NoSQL-ben vagy relációs adatbázisban integrálható vektoradatbázis további képességeket biztosít. A NoSQL-ben vagy relációs adatbázisban lévő integrált vektoradatbázis a megfelelő eredeti adatok mellett tárolhatja, indexelheti és lekérdezésbeágyazhatja őket. Ez a módszer kiküszöböli az adatok egy különálló, tiszta vektoradatbázisban való replikálásának többletköltségét. Emellett a vektoros beágyazások és az eredeti adatok együttes megtartása jobban megkönnyíti a többmódos adatműveleteket, és nagyobb adatkonzisztenciát, skálázást és teljesítményt tesz lehetővé.

Vektoradatbázis használati esetei

A vektoradatbázisokat számos tartományban és helyzetben használják az elemzési és generatív AI-ben, beleértve a természetes nyelvi feldolgozást, a videó- és képfelismerést, a javaslati rendszert, a keresést stb. Egy vektoradatbázis például a következő célokra használható:

  • azonosítsa a hasonló képeket, dokumentumokat és dalokat azok tartalma, témái, hangulatai és stílusai alapján
  • hasonló termékek azonosítása jellemzőik, jellemzőik és felhasználói csoportjaik alapján
  • tartalom, termékek vagy szolgáltatások ajánlása egyéni beállítások alapján
  • tartalom, termékek vagy szolgáltatások ajánlása a felhasználói csoportok hasonlóságai alapján
  • a nagy választási lehetőségek közül a legjobban illeszkedő lehetőségek azonosítása az összetett követelményeknek való megfelelés érdekében
  • olyan adatanomáliák vagy csalárd tevékenységek azonosítása, amelyek eltérnek az elsődleges vagy a normál mintáktól
  • állandó memória implementálása AI-ügynökök számára

Tipp.

A vektoradatbázisok tipikus használati esetei mellett az integrált vektoradatbázis az alacsony késésnek, a magas méretezhetőségnek és a magas rendelkezésre állásnak köszönhetően ideális megoldás az éles szintű LLM-gyorsítótárazáshoz is.

Különösen népszerű a vektoradatbázisok használata az LLM-eket és egyéni adatokat vagy tartományspecifikus információkat hasznosító lekéréses-bővített generáció (RAG) engedélyezéséhez. Ez a megközelítés lehetővé teszi, hogy:

  • Környezetileg releváns és pontos válaszok létrehozása a felhasználói kérésekre az AI-modellekből
  • Az LLM-jogkivonatok korlátainak leküzdése
  • A frissített adatok gyakori finomhangolásával járó költségek csökkentése

Ez a folyamat magában foglalja a vonatkozó információk kinyerését egy egyéni adatforrásból, és integrálja őket a modellkérelembe gyors tervezéssel. Mielőtt kérést küldene az LLM-nek, a felhasználói bemenet/lekérdezés/kérés beágyazássá is alakul, és vektorkeresési technikákat alkalmazunk a leginkább hasonló beágyazások megkeresésére az adatbázisban. Ez a technika lehetővé teszi az adatbázis legrelevánsabb adatrekordjainak azonosítását. Ezeket a lekért rekordokat a rendszer a parancssori tervezés használatával adja meg az LLM-kérelem bemeneteként.

Beágyazások

A beágyazás az adatmegjelenítés speciális formátuma, amelyet a gépi tanulási modellek és algoritmusok könnyen használhatnak. A beágyazás egy szöveg szemantikai jelentésének információdús ábrázolása. Minden beágyazás lebegőpontos számok vektora, így a két beágyazás közötti távolság a vektortérben korrelál két bemenet szemantikai hasonlóságával az eredeti formátumban. Ha például két szöveg hasonló, akkor a vektoros ábrázolásuknak is hasonlónak kell lennie. Egy vektoradatbázis-bővítmény, amely lehetővé teszi a beágyazások eredeti adatokkal való tárolását, biztosítja az adatok konzisztenciáját, skálázását és teljesítményét. [Vissza]

A vektoros keresés egy olyan módszer, amely segít megtalálni a hasonló elemeket az adattulajdonságuk alapján, nem pedig egy tulajdonságmező pontos egyezései alapján. Ez a technika olyan alkalmazásokban hasznos, mint a hasonló szövegek keresése, a kapcsolódó képek keresése, javaslatok készítése vagy akár a rendellenességek észlelése. Úgy működik, hogy a gépi tanulási modellel létrehozott adatok vektoros ábrázolásait (számlistáit) egy beágyazási API-val, például az Azure OpenAI-beágyazásokkal vagy az Azure-beli Arc ölelésével hozza létre. Ezután méri az adatvektorok és a lekérdezésvektorok közötti távolságot. A lekérdezésvektorhoz legközelebb eső adatvektorok azok, amelyek szemantikailag a leginkább hasonlítanak. A natív vektorkeresési funkcióval hatékonyan tárolhatja, indexelheti és keresheti a nagy dimenziójú vektoradatokat közvetlenül más alkalmazásadatok mellett. Ez a megközelítés megszünteti az adatok költségesebb alternatív vektoradatbázisokra való migrálásának szükségességét, és zökkenőmentes integrációt biztosít az AI-alapú alkalmazásokba. [Vissza]

Kérik és kérik a tervezést

A parancssor egy adott szövegre vagy információra utal, amely utasításként szolgálhat egy LLM-nek, vagy olyan környezetfüggő adatokra, amelyekre az LLM építhet. A kérdések különböző űrlapokat, például kérdéseket, állításokat vagy akár kódrészleteket is tartalmazhatnak. A parancssorok a következőkként szolgálhatnak:

  • Utasítások az LLM-nek szóló irányelvek
  • Elsődleges tartalom: információt ad az LLM-nek feldolgozásra
  • Példák: segítség a modell adott tevékenységhez vagy folyamathoz való kondicionálásához
  • Cues: irányítsa az LLM kimenetét a megfelelő irányba
  • Támogató tartalom: olyan kiegészítő információkat jelöl, amelyekkel az LLM kimenetet hozhat létre

A forgatókönyvre vonatkozó jó kérések létrehozásának folyamatát parancssori tervezésnek nevezzük. Az azonnali tervezésre vonatkozó kérésekkel és ajánlott eljárásokkal kapcsolatos további információkért tekintse meg az Azure OpenAI service parancssori mérnöki technikáit. [Vissza]

Tokenek

A jogkivonatok a bemeneti szöveg kisebb szegmensekre való felosztásával létrehozott kis méretű szövegrészek. Ezek a szegmensek lehetnek szavak vagy karaktercsoportok, egy karaktertől a teljes szóig változó hosszúságúak. A hamburger szó például olyan jogkivonatokra oszlik, mint a sonka, a bur és a ger, míg egy rövid és gyakori szó, mint a körte, egyetlen jogkivonatnak számít. Az olyan LLM-ek, mint a ChatGPT, a GPT-3.5 vagy a GPT-4, a szavakat tokenekké bontják feldolgozásra. [Vissza]

Lekéréses kiegészítésű generáció

A retrieveal-augmentated generation (RAG) egy olyan architektúra, amely kibővíti az olyan LLM-ek képességeit, mint a ChatGPT, a GPT-3.5 vagy a GPT-4 egy olyan információlekérdezési rendszer hozzáadásával, mint a vektorkeresés, amely földelési adatokat biztosít, például a vektoradatbázisban tároltakat. Ez a módszer lehetővé teszi, hogy az LLM környezetfüggő és pontos válaszokat hozzon létre a vektorizált dokumentumokból, képekből, hangból, videóból stb. származó egyéni adatforrások alapján.

A NoSQL-hez készült Azure Cosmos DB-t használó egyszerű RAG-minta a következő lehet:

  1. Regisztráció az Azure Cosmos DB NoSQL Vector Index előzetes verziójában
  2. Adatbázis és tároló beállítása tárolóvektor-szabályzattal és vektorindexkel.
  3. Adatok beszúrása egy Azure Cosmos DB for NoSQL-adatbázisba és -tárolóba
  4. Beágyazások létrehozása adattulajdonságokból az Azure OpenAI-beágyazások használatával
  5. Kapcsolja össze az Azure Cosmos DB for NoSQL-t.
  6. Vektorindex létrehozása a beágyazási tulajdonságokon
  7. Függvény létrehozása vektoros hasonlóság kereséséhez felhasználói kérés alapján
  8. Kérdések megválaszolása az adatok felett egy Azure OpenAI-kiegészítési modellel

A RAG-minta gyors tervezéssel a válaszminőség növelését szolgálja azáltal, hogy több környezeti információt kínál a modellnek. A RAG lehetővé teszi, hogy a modell szélesebb körű tudásbázis alkalmazzon azáltal, hogy releváns külső forrásokat épít be a létrehozási folyamatba, így átfogóbb és tájékozottabb válaszokat eredményez. A "földelés" LLM-ekről további információt az LLM-eknek a földeléséről szóló cikkben talál. [Vissza]

Az integrált vektoradatbázis funkcióival az alábbi módokon valósíthatja meg a RAG-t az adatokon:

Integrált vektoradatbázis-funkciók implementálása

Integrált vektoradatbázis-funkciókat a következő Azure Cosmos DB API-khoz implementálhat:

NoSQL API

Az Azure Cosmos DB for NoSQL a világ első kiszolgáló nélküli NoSQL-vektoradatbázisa. A vektorokat és az adatokat együtt tárolhatja az Azure Cosmos DB for NoSQL-ben integrált vektoradatbázis-képességekkel, ahol létrehozhat egy vektorindexet a DiskANN alapján, amely a Microsoft Research által kifejlesztett nagy teljesítményű vektorindexelési algoritmusok készlete.

A DiskANN lehetővé teszi a nagy pontosságú, alacsony késésű lekérdezők bármilyen szintű végrehajtását, miközben kihasználja az Azure Cosmos DB for NoSQL összes előnyét, például a 99,999%-os SLA-t (HA-kompatibilis), a georeplikálást, a kiszolgáló nélküliről a kiosztott átviteli sebességre (RU) való zökkenőmentes áttérést egy adattárban.

API a MongoDB-hez

Használja a natívan integrált vektoradatbázist az Azure Cosmos DB for MongoDB-ben (vCore-architektúra), amely hatékony módot kínál a nagy dimenziójú vektoradatok tárolására, indexelésére és keresésére közvetlenül más alkalmazásadatok mellett. Ez a megközelítés megszünteti az adatok költségesebb alternatív vektoradatbázisokra való migrálásának szükségességét, és zökkenőmentes integrációt biztosít az AI-alapú alkalmazásokba.

Kódminták

API for PostgreSQL

Használja a natívan integrált vektoradatbázist az Azure Cosmos DB for PostgreSQL-ben, amely hatékony módot kínál a magas dimenziójú vektoradatok tárolására, indexelésére és keresésére közvetlenül más alkalmazásadatok mellett. Ez a megközelítés megszünteti az adatok költségesebb alternatív vektoradatbázisokra való migrálásának szükségességét, és zökkenőmentes integrációt biztosít az AI-alapú alkalmazásokba.

Kódminta

NoSQL API

Feljegyzés

A NoSQL API esetében a 2024. májusi buildelés során bejelentjük a legkorszerűbb vektorindexelési algoritmus natív integrációját. Kérjük, maradjon hangolva.

A NoSQL API natívan integrált vektoradatbázisa fejlesztés alatt áll. Addig is alkalmazhat RAG-mintákat az Azure Cosmos DB for NoSQL és az Azure AI Search használatával. Ez a megközelítés lehetővé teszi a NoSQL API-ban található adatok hatékony integrálását az AI-orientált alkalmazásokba.

Következő lépés

30 napos ingyenes próbaverzió Azure-előfizetés nélkül

90 napos ingyenes próbaidőszak és akár 6000 usd átviteli sebességű kredit az Azure AI Advantage használatával

További vektoradatbázis-megoldások

Vektorindexelési szolgáltatások diagramja.