Wat zijn vector-embeddings en vectorzoekopdrachten in Azure Managed Redis?

Vector-similariteitszoektocht (VSS) is een veelgebruikte functie in AI-gedreven intelligente toepassingen. Je kunt Azure Managed Redis gebruiken als een vectordatabase met lage latentie wanneer je het combineert met embeddingmodellen zoals Azure OpenAI, voor Retrieval-Augmented Generation (RAG), semantische caching, aanbeveling, zoeken en andere AI-scenario's.

Dit artikel introduceert vector-embeddings, vector-similariteitszoekopdrachten en hoe Azure Managed Redis vectoren kan opslaan en zoeken met behulp van de RediSearch-module.

Voor tutorials en voorbeeldapplicaties die Azure Managed Redis gebruiken met Azure OpenAI, zie de volgende bronnen:

Bereik van beschikbaarheid

Vectorzoekmogelijkheden in Redis vereisen Redis Stack, met name de RediSearch-module . In Azure Managed Redis is RediSearch beschikbaar als een beheerde module die je moet inschakelen wanneer je de cache aanmaakt.

De volgende tabel toont de beschikbaarheid van RediSearch voor Azure Managed Redis-tiers.

Azure Managed Redis-laag RediSearch-ondersteuning
Memory Optimized Ja
Balanced Ja
Rekenkracht geoptimaliseerd Ja
Flash Optimized Nee.

Important

Je kunt geen modules toevoegen aan een Azure Managed Redis-instantie nadat deze is aangemaakt. Als je van plan bent vectorzoekopdrachten te gebruiken, schakel dan de RediSearch-module in tijdens het provisionen.

Voordat je een Azure Managed Redis-instantie voor vectorzoekopdracht maakt, plan eerst de cacheconfiguratie en het datamodel. Je moet tijdens het provisionen enkele opties kiezen, waaronder modules en clusteringbeleid.

Voor vectorzoekwerklasten:

  • Schakel de RediSearch-module in wanneer je de Azure Managed Redis-instantie aanmaakt.
  • Gebruik het Enterprise-clusterbeleid . RediSearch vereist een Enterprise-clusteringbeleid.
  • Gebruik het NoEviction ontruimingsbeleid wanneer RediSearch is ingeschakeld.
  • Kies een ondersteunde in-memory tier: Memory Optimized, Balanced of Compute Optimized.
  • Schaal de cache op zowel vectordata als indexoverhead.
  • Sla metadata op met vectoren, zoals document-ID, titel, bron-URL, categorie, tijdstempel, tenant-ID of toegangscontrolevelden, zodat queries resultaten kunnen filteren en broninformatie kunnen teruggeven.
  • Gebruik TLS voor clientverbindingen en overweeg Microsoft Entra-authenticatie waar je client het ondersteunt.
  • Voor productieworkloads kun je Private Link, hoge beschikbaarheid en diagnostiek overwegen.

Azure Managed Redis beheert de beschikbare moduleversies voor de service. Je kunt modules niet handmatig laden of moduleversies handmatig bijwerken.

Voor meer informatie, zie Use Redis-modules met Azure Managed Redis, Azure Managed Redis-architectuur en Quickstart: Create an Azure Managed Redis instance.

Wat zijn vector embeddings?

Vector-embeddings zijn numerieke representaties van gegevens, zoals woorden, documenten, afbeeldingen of producten, in een hoogdimensionale vectorruimte. Embeddings leggen semantische relaties vast op een manier die applicaties in staat stelt data wiskundig te vergelijken.

Bijvoorbeeld, de woorden basketball en baseball hebben doorgaans embeddings die dichter bij elkaar liggen dan elk woord aan rainforest, omdat het model semantisch gerelateerde concepten dicht bij elkaar plaatst in de vectorruimte.

Verschillende machine learning-modellen genereren embeddings op verschillende manieren. Voor de beste resultaten gebruik je consequent één embeddingmodel voor een gegeven vectorindex. Het indexschema, de vectorafmetingen en de afstandsmetriek moeten overeenkomen met het embeddingmodel dat is gebruikt om de vectoren te genereren.

Vectorvergelijking

Je kunt vectoren vergelijken met afstands- of gelijkenismetingen. Algemene metrische gegevens zijn onder andere:

  • Cosinusgelijkenis, die de hoek tussen vectoren vergelijkt.
  • Euclidische afstand, die de rechte lijn afstand in vectorruimte meet.
  • Binnenproduct, dat in sommige embedding- en rangschikkingsscenario's vaak wordt gebruikt.

De juiste metriek hangt af van het embeddingmodel en hoe de vectoren worden genormaliseerd. Voor veel tekst-embeddingscenario's is cosinusgelijkenis een veelvoorkomende keuze.

Embeddings genereren

Veel machine learning-modellen ondersteunen insluitings-API's. Voor een voorbeeld van hoe je vector-embeddings maakt met Azure OpenAI, zie Leer hoe je embeddings genereert met Azure OpenAI.

Wat is een vectordatabase?

Een vectordatabase slaat vectoren met hoge dimensies op, indexeert, haalt ze op en vergelijkt ze. Vectordatabases zijn ontworpen om vergelijkbare vectoren met lage latentie en hoge doorvoer terug te geven.

Je kunt Azure Managed Redis als vectordatabase gebruiken door embeddings op te slaan in Redis-datastructuren en deze te indexeren met RediSearch.

Vectoropslag en metadata

In Redis kun je vectoren opslaan in hashes of JSON-documenten. Sla nuttige metadata op bij elke vector, zoals document-ID, titel, bron-URL, categorie, tijdstempel, tenant-ID of velden voor toegangscontrole.

Metadata maakt vectorzoeken nuttiger omdat applicaties resultaten kunnen filteren vóór of tijdens vectorzoeken. Voor RAG-toepassingen kan metadata ook worden teruggegeven met zoekresultaten ter ondersteuning van citaties en bronverankering.

Index en zoekmethoden

Vectordatabases gebruiken indexen om zoeken efficiënt te maken. RediSearch ondersteunt veelvoorkomende vectorindexeringsmethoden, waaronder:

  • FLAT - Een exacte brute-force index. FLAT kan nuttig zijn voor kleinere datasets of workloads die uitputtend zoeken vereisen.
  • HNSW - Een benaderende dichtstbijzijnde burenindex gebaseerd op hiërarchische navigeerbare kleine wereldgrafieken. HNSW wordt vaak gebruikt voor grotere datasets waarbij lagere latentie belangrijker is dan uitputtende precisie.

Veelvoorkomende zoekmethoden zijn:

  • K-dichtstbijzijnde buren (KNN) - Geeft de meest vergelijkbare vectoren terug K .
  • Approximate dichtstbijzijnde buren (ANN) - Ruilt wat precisie in voor lagere latentie en lagere rekenkosten.

Zoekmogelijkheden

Vectordatabases voeren zoekopdrachten uit door een queryvector te vergelijken met geïndexeerde vectoren en geven de meest vergelijkbare resultaten terug. Veel toepassingen gebruiken ook hybride zoekopdrachten, waarbij metadatafilters de kandidatenset vóór of tijdens vectorvergelijking versmallen.

Bijvoorbeeld, een productaanbevelingsquery kan alleen zoeken in producten in een specifieke categorie, of een RAG-applicatie kan alleen documenten zoeken die de huidige gebruiker mag benaderen.

Sleutelscenario's voor vectorzoekopdrachten

Vectorgelijkheidszoektocht kan in veel toepassingspatronen worden gebruikt, waaronder:

  • Semantische Q&A. Bouw een chatbot die vragen beantwoordt via je eigen data. Documenten kunnen in segmenten worden opgedeeld, ingebed, opgeslagen in Azure Managed Redis en op basis van vectorsimilariteit worden opgehaald voordat ze door een groot taalmodel worden samengevat.
  • Document ophalen. Gebruik embeddings om semantische documentzoekopdrachten te bieden wanneer zoekwoord zoeken niet voldoende is.
  • Productaanbeveling. Zoek vergelijkbare producten of diensten op basis van browseactiviteiten, aankoopgeschiedenis of productbeschrijvingen.
  • Visuele zoekopdracht. Zoek naar producten of afbeeldingen die visueel lijken op een ingediende afbeelding.
  • Semantische cache. Verminder de kosten en latentie van LLM door voltooiingen te cachen en gecachte antwoorden te hergebruiken wanneer een nieuwe prompt semantisch lijkt op een eerdere prompt.
  • LLM-gespreksgeheugen. Sla kortetermijngeheugen, zoals recente gesprekswendingen, en langetermijngeheugen, zoals duurzame samenvattingen, gebruikersvoorkeuren of feiten, op als embeddings die applicaties kunnen ophalen voor toekomstige reacties.

Waarom kiezen voor Azure Managed Redis voor het opslaan en zoeken van vectoren?

Azure Managed Redis is nuttig voor vectorzoekworkloads die toegang met lage latentie nodig hebben dicht bij applicatiegegevens, cachegegevens, sessiestatus of conversatiegeheugen. Omdat Redis vaak wordt gebruikt voor high-performance applicatiepatronen, kan Azure Managed Redis vector search ondersteunen en tegelijkertijd aanverwante gebruikssituaties bedienen zoals caching, snelheidsbeperking, sessieopslag, semantische caching en agentgeheugen.

Veel AI- en applicatieframeworks bevatten Redis-integraties, waaronder:

Azure Managed Redis gebruikt de RediSearch-module om vectorzoekmogelijkheden te ondersteunen zoals:

  • Veelvoorkomende afstandsmetrics, waaronder L2, COSINE, en IP.
  • KNN-zoekopdrachten met FLAT en HNSW vectorindexen.
  • Vectoropslag in hash- of JSON-datastructuren.
  • Top K-vragen.
  • Vectorbereikzoekopdrachten.
  • Hybride zoekfunctie met zoekfuncties zoals:
    • Georuimtelijke filtering.
    • Numerieke en tekstfilters.
    • Prefix- en fuzzy-overeenstemming.
    • Fonetische overeenkomst.
    • Booleaanse zoekopdrachten.

Wat zijn mijn andere opties om vectoren op te slaan en te zoeken?

Azure biedt meerdere diensten voor vectoropslag en zoekopdrachten. De beste keuze hangt af van je werkdruk.

Dienst Overweeg wanneer
Azure Beheerde Redis Je hebt een laag-latentie vectorzoekopdracht nodig dicht bij applicatiecache, sessietoestand, semantische cache of LLM-geheugenpatronen.
Azure AI Zoeken Je hebt een zoek-eerst service nodig voor documentindexering, hybride zoekopdrachten, relevantie-tuning en enterprise-retrieval-scenario's.
Azure Cosmos DB Je wilt vectorzoekopdrachten naast operationele NoSQL-data.
Azure Database for PostgreSQL - Flexible Server Je wilt vectorzoeken in PostgreSQL met behulp van pgvector bijbehorende relationele data.

De beste manier om te beginnen met embeddings en vectorzoekopdrachten is het zelf te proberen.