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


Vektoradatbázis

Tipp.

A legújabb vektoradatbázis- és RAG-mintaalkalmazás-mintákért látogasson el az Azure Cosmos DB Mintagyűjteménybe.

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 Hierarchical Navigable Small World (HNSW), az Inverted File (IVF) és a DiskANN.

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; ez különbözik attól az adatforrástól, 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é. A sémarugalmasságú és integrált vektoradatbázisokkal rendelkező, nagy teljesítményű adatbázisok különösen optimálisak az AI-ügynökök számára.

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 és a keresést. 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
  • Azonosítsa azokat az adatrendellenességeket vagy csalárd tevékenységeket, 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.

A vektoradatbázisok különösen népszerűek 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.

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, például egy beágyazási API-val létrehozott adatok vektorreprezentációit (számlistáit) használja, mint például a Azure OpenAI Embeddings vagy a Hugging Face az Azure-on. 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.

"Utánzás és prompt mérnökség"

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. Egy támpont különböző formátumokat ölthet, mint például kérdés, állítás vagy akár kódrészlet. A parancssorok a következőkként szolgálhatnak:

  • Utasítások, amelyek irányelveket adnak az LLM-nek
  • Elsődleges tartalom, amely adatokat ad az LLM-nek feldolgozásra
  • Példák a modell adott tevékenységhez vagy folyamathoz való kondicionálásához
  • Az LLM kimenetének a megfelelő irányba történő irányításához
  • Az LLM által a kimenet létrehozásához használható kiegészítő információkat megjelenítő tartalom

A forgatókönyvhöz jó kérdések létrehozásának folyamatát prompttervezésnek nevezzük. A parancssori tervezésre vonatkozó kérésekkel és ajánlott eljárásokkal kapcsolatos további információkért lásd: Rendszerüzenetek tervezése.

Tokenek

A tokenek a bemeneti szöveg kisebb szegmensekre való felosztásával létrehozott kis 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 tokenekre oszlik, mint a hamu, a bur és a ger, míg egy rövid és gyakori szó, mint a körte, egyetlen tokennek 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őkre képes:

  1. Az Azure Cosmos DB NoSQL-vektorindex engedélyezése
  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. További információ: Földelési LLM-ek.

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, hogy nagy pontosságú, alacsony késésű lekérdezéseket végezzen bármilyen léptékben, miközben kihasználja az Azure Cosmos DB for NoSQL összes előnyét, például a 99.999-es% 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.

Azure Cosmos DB for MongoDB

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

Következő lépés