Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Jótanács
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.
Jótanács
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 a 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
Jótanács
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 a következőket teszi lehetővé:
- 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.
Megjegyzés:
Érdeklik az ultra nagy átviteli sebességű vektorkeresési képességek? Azure Cosmos DB olyan továbbfejlesztett vektorkeresési funkciókat fejleszt, amelyeket nagy vektoradatkészletekhez terveztek, ultra magas átviteli sebességű beszúrásokkal és keresésekkel párosítva. Másodpercenként több millió lekérdezést (QPS) képes elférni kiszámítható, alacsony késéssel és páratlan költséghatékonysággal. Regisztráljon, hogy többet tudjon meg a korai hozzáférési lehetőségekről, és értesítést kapjon, ha ezek a képességek elérhetővé válnak.
Vektoradatbázissal kapcsolatos fogalmak
Embeddings
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.
Vektoros keresés
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.
Feladatok és feladatkészítés
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 utasítás különböző formákat vehet fel, például kérdésként, állításként vagy akár kódrészletként. 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.
Tokens
A tokenek olyan kis szövegrészek, amelyeket a bemeneti szöveg kisebb szegmensekre való felosztásával hoznak létre. 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ésalapú 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:
- Az Azure Cosmos DB NoSQL-vektorindex engedélyezése
- Adatbázis és tároló beállítása tárolóvektor-szabályzattal és vektorindexkel
- Adatok beszúrása egy Azure Cosmos DB for NoSQL-adatbázisba és -tárolóba
- Beágyazások létrehozása adattulajdonságokból Azure OpenAI-beágyazások használatával
- Kapcsolja össze az Azure Cosmos DB for NoSQL-t.
- Vektorindex létrehozása a beágyazási tulajdonságokon
- Függvény létrehozása vektoros hasonlóság kereséséhez felhasználói kérés alapján
- Kérdések megválaszolása az adatok felett egy Azure OpenAI-befejezé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 implementálhat az Azure Cosmos DB-hez és annak különböző kompatibilitási API-jaihoz.
NoSQL API
Az Azure Cosmos DB for NoSQL a világ első kiszolgáló nélküli NoSQL-vektoradatbázisa. Tárolja együtt a vektorokat és az adatokat az integrált vektoradatbázis-képességekkel rendelkező NoSQL rendszerben, az Azure Cosmos DB-ben, ahol a Microsoft Research által kifejlesztett, nagy teljesítményű vektorindexelési algoritmusok készlete, a DiskANN alapján hozhat létre vektorindexet.
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.
Hivatkozások és minták
- Mi az adatbázis a ChatGPT mögött? - Microsoft Mechanics
- Vektorindexelés az Azure Cosmos DB for NoSQL-ben
- VectorDistance rendszerfüggvény NoSQL-lekérdezések
- Vektorkeresés az Azure Cosmos DB for NoSQL-ban
- Python – Jegyzetfüzet-oktatóanyag
- C# – Saját Copilot Complete Solution Accelerator létrehozása AKS-sel és szemantikai kernellel
- C# – Saját Copilot-mintaalkalmazás és gyakorlati tesztkörnyezet létrehozása
- Python – Movie Chatbot
Kódrészletek
- Python Notebook – Vektoradatbázis-integráció a LangChain-oktatóanyagon keresztül
- Python Notebook – Az LLM gyorsítótár integrációja a LangChain oktatóanyag segítségével
- Python – LlamaIndex-integráció
- Python – Szemantikus kernelmemória-integráció
- Python-jegyzetfüzet – Movie Chatbot
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.