Vectorzoekopdrachten in Azure AI Zoeken

Vectorzoekopdrachten is een benadering voor het ophalen van informatie die ondersteuning biedt voor indexering en query's op numerieke weergaven van inhoud. Omdat de inhoud numeriek is in plaats van tekst zonder opmaak, is matching gebaseerd op vectoren die het meest lijken op de queryvector. Met deze benadering kunt u overeenkomen met:

  • Semantische of conceptuele gelijkenis. Zo zijn 'hond' en 'canine' conceptueel vergelijkbaar, maar taalkundig verschillend.
  • Meertalige inhoud, zoals 'hond' in het Engels en 'hund' in het Duits.
  • Meerdere inhoudstypen, zoals 'hond' in tekst zonder opmaak en een afbeelding van een hond.

Dit artikel bevat een overzicht van vectorzoekopdrachten in Azure AI Zoeken, waaronder ondersteunde scenario's, beschikbaarheid en integratie met andere Azure-services.

Tip

Wilt u meteen aan de slag? Volg deze stappen:

  1. Geef insluitingen voor uw index op of genereer in een indexeerpijplijn.
  2. Maak een vectorindex.
  3. Vector queries uitvoeren.

Welke scenario's kunnen vectorzoekopdrachten ondersteunen?

Vector search ondersteunt de volgende scenario's:

  • Overeenkomsten zoeken. Codeer tekst met behulp van insluitmodellen of opensource-modellen, zoals OpenAI-insluitingen of SBERT. Vervolgens haalt u documenten op met query's die ook zijn gecodeerd als vectoren.

  • Hybride zoekopdracht. Azure AI Zoeken definieert hybride zoekopdrachten als de uitvoering van vectorzoekopdrachten en keywordzoekopdrachten in dezelfde aanvraag. Vectorondersteuning wordt geïmplementeerd op veldniveau. Als een index vector- en niet-vectorvelden bevat, kunt u een query schrijven die op beide doelen is gericht. De query's worden parallel uitgevoerd en de resultaten worden samengevoegd in één antwoord en dienovereenkomstig gerangschikt.

  • Multimodale zoekopdracht. Codeer tekst en afbeeldingen met behulp van multimodale insluitingen, zoals OpenAI CLIP of GPT-4 Turbo with Vision in Azure OpenAI en voer een query uit op een insluitruimte die bestaat uit vectoren uit beide inhoudstypen.

  • Meertalige zoekopdracht. Azure AI Zoeken is ontworpen voor uitbreidbaarheid. Als u modellen en chatmodellen hebt ingesloten die in meerdere talen zijn getraind, kunt u deze aanroepen via aangepaste of ingebouwde vaardigheden aan de indexeringszijde of vectorizers aan de queryzijde. Gebruik de multitaalmogelijkheden die worden ondersteund door Azure AI Zoeken voor niet-ctorinhoud in hybride zoekscenario's voor meer controle over tekstomzetting.

  • Gefilterde vectorzoekopdrachten. Een queryaanvraag kan een vectorquery en een filterexpressie bevatten. Filters zijn van toepassing op tekst- en numerieke velden. Ze zijn handig voor metagegevensfilters en voor het opnemen of uitsluiten van zoekresultaten op basis van filtercriteria. Hoewel een vectorveld niet kan worden gefilterd, kunt u een filterbaar tekst- of numeriek veld instellen. De zoekmachine kan het filter verwerken voor of na het uitvoeren van de vectorquery.

  • Vectordatabase. Azure AI Zoeken de gegevens opslaat die u opvraagt. Gebruik deze als een pure vectorindex wanneer u langetermijngeheugen of een knowledge base nodig hebt, waarbij gegevens worden geaard voor de rag-architectuur (retrieval-augmented generation) of een app die vectoren gebruikt.

Hoe werkt vectorzoekopdrachten?

Azure AI Zoeken ondersteunt het indexeren, opslaan en opvragen van vector-embedmenten van een zoekindex. In het volgende diagram ziet u de indexerings- en querywerkstromen voor vectorzoekopdrachten.

Architectuur van vectorzoekwerkstroom.

Aan de indexeringszijde maakt Azure AI Zoeken gebruik van een algoritme nearest neighbors om vergelijkbare vectoren dicht bij elkaar te plaatsen in een index. Intern worden vectorindexen gemaakt voor elk vectorveld.

Hoe u insluitingen krijgt van uw broninhoud in Azure AI Zoeken is afhankelijk van uw verwerkingsbenadering:

  • Voor interne verwerking biedt Azure AI Zoeken geïntegreerde gegevenssegmentatie en vectorisatie in een indexeerpijplijn. U geeft de benodigde resources op, zoals eindpunten en verbindingsgegevens voor Azure OpenAI. Azure AI Zoeken voert vervolgens de aanroepen uit en verwerkt de overgangen. Deze benadering vereist een indexeerfunctie, een ondersteunde gegevensbron en een vaardighedenset die segmentering en insluiting aanstuurt.

  • Voor externe verwerking kunt u buiten Azure AI Zoeken embeddings genereren en de gevectoriseerde inhoud rechtstreeks naar vectorvelden in uw zoekindex pushen.

Aan de queryzijde verzamelt uw client-app gebruikersinvoer, meestal via een prompt. U kunt een coderingsstap toevoegen om de invoer te vectoriseren en vervolgens de vectorquery naar uw Azure AI Zoeken-index te verzenden voor overeenkomsten zoeken. Net als bij indexering kunt u geïntegreerde vectorisatie gebruiken om de query te coderen. Voor beide benaderingen retourneert Azure AI Zoeken documenten met de aangevraagde k dichtstbijzijnde buren (kNN) in de resultaten.

Azure AI Zoeken ondersteunt hybridscenario's die parallel vector- en trefwoordzoekopdrachten uitvoeren en een uniforme resultatenset retourneren, die vaak betere resultaten biedt dan vector- of trefwoordzoekopdrachten. Voor hybride zoekopdrachten worden zowel vector- als niet-vectorinhoud opgenomen in dezelfde index voor query's die tegelijkertijd worden uitgevoerd.

Beschikbaarheid en prijzen

Vector search is beschikbaar in alle regio's en op alle niveaus zonder extra kosten. Het genereren van insluitingen of het gebruik van AI-verrijking voor vectorisatie kan echter kosten in rekening brengen van de modelprovider.

Voor portal en programmatische toegang tot vectorzoekopdrachten kunt u het volgende gebruiken:

Opmerking

  • Sommige zoekservices die vóór 1 januari 2019 zijn gemaakt, bieden geen ondersteuning voor vectorworkloads. Als u een vectorveld probeert toe te voegen aan een schema en een fout krijgt, is dit het gevolg van verouderde services. In dit geval moet u een nieuwe zoekservice maken om de vectorfunctie uit te proberen.

  • Zoekservices die zijn gemaakt na 3 april 2024 bieden hogere quota voor vectorindexen. Als u een oudere service hebt, kunt u uw service mogelijk upgraden voor hogere vectorquota.

Azure AI Zoeken is diep geïntegreerd in het Azure AI-platform. De volgende tabel bevat producten die nuttig zijn in vectorworkloads.

Product Integratie
Azure OpenAI Azure OpenAI biedt insluitingsmodellen en chatmodellen. Demo's en voorbeelden richten zich op het model text-embedding-ada-002 . We raden Azure OpenAI aan voor het genereren van insluitingen voor tekst.
Gieterijgereedschappen Image Retrieval Vectorize Image API ondersteunt vectorisatie van afbeeldingsinhoud. We raden deze API aan voor het genereren van insluitingen voor afbeeldingen.
Foundry Agentendienst In Azure AI Zoeken kunt u een indexed knowledge source maken die verwijst naar een zoekindex met vectorvelden en een vectorizer. Vervolgens kunt u de kennisbron koppelen aan een knowledge base en de knowledge base verbinden met Foundry Agent Service, zodat uw agents vectorzoekresultaten bieden voor verbeterde kennis ophalen.
Azure gegevensplatforms: Azure Blob Storage, Azure Cosmos DB, Azure SQL, Microsoft OneLake U kunt indexeerfuncties gebruiken om gegevensopname te automatiseren en vervolgens geïntegreerde vectorisatie gebruiken om insluitingen te genereren. Azure AI Zoeken kan vectorgegevens automatisch indexeren van Azure blobindexeerfuncties, Azure Cosmos DB voor NoSQL indexeerfuncties, Azure Data Lake Storage Gen2, Azure-tabelopslag en Microsoft OneLake. Zie Vectorvelden toevoegen aan een zoekindex voor meer informatie.

Het wordt ook vaak gebruikt in opensource-frameworks zoals LangChain.