September 4, 2024

Redis verbetert de prestaties van vector-semantisch zoeken met behulp van een multi-threaded query-engine

Redis verbetert de prestaties van vector-semantisch zoeken met behulp van een multi-threaded query-engine

Redis, een populaire datastructuuropslag in het geheugen, is onlangs gelanceerd Uitgegeven Verbeterde Redis-query-engine. Deze ontwikkeling komt op een moment Vectordatabases We zijn Verkrijg bekendheid Vanwege het belang ervan bij het genereren van gegevens die worden verbeterd door het ophalen (vod) voor GenAI-toepassingen.

Redis heeft belangrijke verbeteringen aangekondigd aan zijn query-engine, waarbij gebruik wordt gemaakt van multi-threading om de doorvoer van query's te verbeteren met behoud van een lage latentie. Redis stelt:

Door query's in staat te stellen gelijktijdig toegang te krijgen tot de index, waardoor Redis efficiënt verticaal kan schalen, zorgen we ervoor dat de doorvoer van Redis-bewerkingen en -query's kan worden geschaald.

Onderstaande grafiek toont de verticale gradiënt.

bron: opnieuw Ontwerpkeuze – uitbreiding en uitbreiding

Het bedrijf benadrukt dat deze vooruitgang van cruciaal belang is nu de datavolumes groeien tot honderden miljoenen documenten, waarbij complexe zoekopdrachten de productiviteit kunnen beperken. Redis beweert dat antwoorden een latentie van minder dan een milliseconde behouden en dat de gemiddelde latentie voor zoekopdrachten minder dan 10 milliseconden bedraagt.

Redis erkent de beperkingen van zijn traditionele single-threaded architectuur voor sommige bewerkingen. Ze legt uit dat langlopende zoekopdrachten op één thread congestie kunnen veroorzaken en de algehele doorvoer kunnen verminderen, vooral bij bewerkingen zoals het zoeken naar gegevens met behulp van een omgekeerde index.

Het bedrijf legt ook de complexiteit van zoekopdrachten uit:

Zoeken is geen kwestie van O(1) tijdscomplexiteit. Zoekopdrachten combineren doorgaans meerdere cursorscans om aan meerdere zoekopdrachtverwachtingen te voldoen. Deze scans worden doorgaans uitgevoerd in logaritmische tijdscomplexiteit O(log(n)), waarbij n het aantal datapunten is dat door de cursor in kaart is gebracht.

Redis beweert dat zijn nieuwe multi-threaded aanpak deze uitdagingen effectief aanpakt, waardoor Redis zijn hoge prestaties voor eenvoudige bewerkingen kan behouden, terwijl de doorvoer voor rekenintensieve bewerkingen zoals zoeken naar vectorovereenkomsten dramatisch wordt verbeterd.

Redis benadrukt dat “het efficiënt schalen van zoekopdrachten een combinatie vereist van horizontaal gedistribueerde gegevensbelasting (uitgaand verkeer) en verticale veelheid, waardoor gelijktijdigheid in indextoegang (elevatie) mogelijk wordt.”

bron: Multi-threaded query-engine in Redis Single Shard, hoofdthread en threadpool

Het bovenstaande diagram toont de nieuwe architectuur, waarbij meerdere query's worden uitgevoerd, elk op een afzonderlijke thread. Redis definieert een proces in drie stappen:

De querycontext (planning) wordt op de hoofdthread ingesteld en in een gedeelde wachtrij geplaatst. Daarom verbruiken threads de wachtrij en voeren ze de querypijplijn uit, gelijktijdig met andere threads. Hierdoor kunnen we meerdere gelijktijdige query's uitvoeren terwijl de hoofdthread actief blijft om meer inkomende verzoeken af ​​te handelen, zoals andere Redis-opdrachten, of om aanvullende query's voor te bereiden en te regelen. Als u klaar bent, worden de resultaten van de zoekopdracht teruggestuurd naar de hoofdthread.

Redis beweert dat deze nieuwe architectuur het mogelijk maakt om de responsiviteit van de hoofdthread op standaard Redis-bewerkingen te behouden en tegelijkertijd veel complexe vragen te verwerken, waardoor de algehele doorvoer en schaalbaarheid van het systeem wordt verbeterd.

Redis voerde een grootschalige operatie uit Normen Om de prestaties van de query-engine te valideren, door deze te vergelijken met drie segmenten van vectordatabaseproviders: pure vectordatabases, algemene databases met vectormogelijkheden en volledig beheerde in-memory Redis-cloudserviceproviders (CSP). Redis claimt zijn bijgewerkte query-engine blinkt uit Pure vectordatabases in termen van snelheid en schaalbaarheid, terwijl ze qua algemene prestaties aanzienlijk beter presteren dan generieke databases en volledig beheerde in-memory Redis CSP-databases.

De markt voor vectordatabases heeft de afgelopen jaren een aanzienlijke stijging doorgemaakt, waarbij veel… producten Deze proliferatie heeft een uitdagende omgeving gecreëerd voor zowel nieuwkomers als gebruikers. Experts Hij wijst erop dat de markt al verzadigd is met opties voor vectordatabases, waardoor het moeilijk wordt voor nieuwe producten om zich te onderscheiden en unieke waarde te vinden.

Doug Turnbullhoofdingenieur bij Reddit, Opmerkingen,

Maar bij het zoeken naar vectoren hebben we tientallen opties. Als “klanten” van dergelijke opties wordt het veld uiterst omslachtig… en het ophalen van vectoren is steeds minder het probleem. De moeilijke problemen bij het oplossen van het ophalen in de echte wereld gaan niet alleen over het verkrijgen van vectoren, maar over alles eromheen.

Dit perspectief onderstreept de behoefte aan alomvattende oplossingen die de bredere uitdagingen bij het ophalen van gegevens op basis van AI aanpakken.

Nieuwe Redis-query-engine Claims 16x hogere querysnelheid vergeleken met zijn voorganger. In het bijzonder voldoet de query-engine aan de behoeften van GenAI-applicaties, zoals op chatbots gebaseerde RAG in realtime Bij het ophalen van gegevens uit vectordatabases moeten meerdere stappen snel worden verwerkt.

Paul Buchheitde maker van Gmail, introduceerde “De 100 millisecondenregel“, waarin staat dat elke interactie in minder dan 100 milliseconden moet plaatsvinden, zodat gebruikers zich onmiddellijk voelen.

Analyse van latentiegrenzen in RAG-architecturen onthult: netwerkretour, LLM-verwerking, GenAI-applicatieprocessen en vectordatabasequery's, resulterend in een gemiddelde end-to-end latentie van 1513 ms (1,5 seconden). Om deze uitdaging aan te gaan, moeten ontwikkelaars hun datastructuur heroverwegen om real-time GenAI-applicaties te bouwen die de 100 millisecondenregel benaderen. RAG in realtime Dit is van cruciaal belang voor het behouden van de app-snelheid en het benutten van AI-mogelijkheden, zodat gebruikers vrijwel onmiddellijke interacties krijgen en betrokken blijven bij de app.

Victora Ofer Mendelevitch Het herinnert ons eraan dat de prestaties van vectordatabases weliswaar van cruciaal belang zijn, maar deel uitmaken van een grotere technologie Esthetisch uitzicht Bij het ontwikkelen van toepassingen voor kunstmatige intelligentie.

Het is waar dat RAG momenteel de meest populaire methodologie is voor het bouwen van betrouwbare op LLM gebaseerde applicaties met behulp van uw eigen gegevens, en dat u een sterke semantische zoekmogelijkheid nodig heeft als onderdeel van uw algehele ophaalmogelijkheden (R in RAG), maar een vectordatabase is slechts één daarvan. onderdeel van die totale stapel. En misschien is het niet eens het belangrijkste onderdeel.

Yingjun Wuoprichter Rising Wave-labsBiedt een aanvullend perspectief op het ontwikkelen van vectordatabases:

In plaats van te investeren in nieuwe vectordatabaseprojecten, zou het raadzaam zijn om zich te concentreren op bestaande databases en mogelijkheden te onderzoeken om deze te verbeteren met behulp van vectorengines, waardoor ze robuuster en robuuster worden.

De aanpak van Redis voor het optimaliseren van de bestaande infrastructuur komt overeen met dit perspectief en biedt mogelijk een meer geïntegreerde en efficiënte oplossing voor ontwikkelaars.

Uitgebreid Referentie Het proces richtte zich op zowel de opname- als de zoekbelasting. Voor opname heeft Redis de tijd gemeten die nodig was om gegevens op te nemen en te indexeren met behulp van een hiërarchisch navigeerbare kleine wereld (Gezondheid en fitness in het zuidwesten van Engeland(Geschatte algoritme voor de dichtstbijzijnde buur)Dat) zoekopdracht. Voor de zoekopdracht richten ze zich op de k-dichtstbijzijnde buren (K-nn) lookups, het meten van de doorvoer in verzoeken per seconde (RPS) en de gemiddelde latentie aan de clientzijde, inclusief round-trip time (RTT).

Resultaten van het vergelijken van Redis met Essentie-960-Euclidisch, handschoen-100-hoekig, Diep beeld met 96 hoeken, dbpedia-openai-1M-hoekig Datasets met verschillende vectordimensies en afstandsfuncties om te garanderen uitgebreid de test. De simulatieomgeving maakte gebruik van industriestandaard tools voor prestatiemeting, waaronder Qdrant's vectordatabasestandaard Om betrouwbare en herhaalbare resultaten te verkrijgen.

Hoewel Redis indrukwekkende prestaties levert in zijn benchmarks, is het belangrijk om rekening te houden met de standpunten van andere spelers in de branche. Biedt een vergelijkend onderzoek uitgevoerd door een Redis-concurrent Een ander perspectief Over Redis-mogelijkheden. in aanvulling op, Netwerk schaalDBaaS, een bedrijf dat een databasebeheerplatform as a service (DBaaS) levert, nam deel. ideeën Op Redis.

Redis heeft de nieuwe query-engine onmiddellijk beschikbaar gemaakt in Redis Software, met plannen om deze in het najaar uit te brengen voor Redis Cloud. Zie dit om een ​​Redis-vectordatabase in actie te zien met behulp van het LangChain-framework Demo, een praktisch overzicht van hoe deze technieken kunnen worden toegepast op scenario's in de echte wereld. Voor meer informatie over de wereld van vectordatabases, probeer deze PostgresML-presentatie en de InfoQ-podcast met… Edo Vrijheidoprichter en CEO van Pinecone vectordatabase, deelt zijn visie op deze technieken in RAG-toepassingen.