Delen via


Een Azure-service kiezen voor vectorzoekopdrachten

Vectorzoekopdrachten is een methode voor het vinden van informatie die is opgeslagen in een database in de vorm van vectoren. Vectoren zijn groepen getallen die kenmerken of kenmerken van media vertegenwoordigen, zoals tekst of afbeeldingen. Vectoren zijn een aanzienlijke vooruitgang ten opzichte van traditionele zoekmethoden op basis van trefwoorden. Ze bieden snellere, nauwkeurigere resultaten door inzicht te krijgen in de semantische relaties binnen de informatie.

Azure biedt meerdere manieren om gevectoriseerde gegevens op te slaan en te doorzoeken. Dit artikel helpt architecten en ontwikkelaars die de juiste Azure-service voor vectorzoekopdrachten moeten begrijpen en kiezen.

In dit artikel worden de volgende services vergeleken op basis van hun vectorzoekmogelijkheden:

Architecten en ontwikkelaars moeten de beschikbare services vergelijken vanuit het perspectief van systeemvereisten in Choose a candidate service en in Capability matrix.

Een kandidaatservice kiezen

Deze sectie helpt u bij het selecteren van de meest waarschijnlijke services voor uw behoeften. Als u de keuzes wilt beperken, moet u eerst rekening houden met de systeemvereisten.

Belangrijke vereisten

Een stroomdiagram waarmee u de juiste Azure-service voor vectorzoekopdrachten kunt kiezen.

Wanneer u besluit of u een traditionele databaseoplossing of Azure AI-Search-service wilt gebruiken, moet u rekening houden met uw vereisten en of u live of realtime vectoren kunt doorzoeken op uw gegevens. Een traditionele relationele of NoSQL-database is het meest geschikt voor uw scenario als u vaak waarden wijzigt in gevectoriseerde velden en de wijzigingen in realtime of in bijna realtime moeten worden doorzocht. Op dezelfde manier is het gebruik van uw bestaande database mogelijk de beste oplossing voor u om te voldoen aan uw prestatiedoelen. Aan de andere kant, als uw workload geen realtime of bijna realtime vectorzoekbaarheid vereist en u accepteert het beheren van een index van vectoren, kan AI Search een aantrekkelijke keuze zijn.

Als u een traditionele databaseoplossing kiest, is het specifieke type databaseservice dat u wilt gebruiken voornamelijk afhankelijk van de vaardighedenset van uw team en de databases die u momenteel gebruikt. Als u al een specifiek type database gebruikt, zoals MongoDB, is het gebruik van hetzelfde type database mogelijk de eenvoudigste oplossing voor uw scenario. Zoals wordt weergegeven in de sectie Mogelijkheidsmatrix , heeft elke databaseservice enkele unieke mogelijkheden en beperkingen voor vectorzoekopdrachten. Bekijk deze informatie om ervoor te zorgen dat het databasetype van uw voorkeur ondersteuning biedt voor de functionaliteit die u nodig hebt.

Als kostenproblemen een belangrijke factor zijn, is het onderhouden van uw bestaande ontwerp waarschijnlijk het beste geschikt voor uw scenario, omdat het introduceren van nieuwe services of andere exemplaren van een databaseservice nieuwe nettokosten en complexiteit kan toevoegen. Het gebruik van uw huidige databases voor vectorzoekopdrachten is waarschijnlijk van invloed op uw kosten minder dan het gebruik van een toegewezen service.

Als u ervoor kiest om een traditionele database te gebruiken in plaats van AI Search, zijn sommige geavanceerde zoekfuncties standaard niet beschikbaar. Als u bijvoorbeeld herrankering of hybride zoekopdrachten wilt uitvoeren, schakelt u deze functionaliteit in via Transact-SQL (T-SQL) of andere codering.

Mogelijkheidsmatrix

De tabellen in deze sectie geven een overzicht van de belangrijkste verschillen in mogelijkheden.

Basisfuncties

Systeemeigen ondersteuning voor vectorgegevenstypen, kunstmatige neurale netwerkvectorindexen,vectordimensielimieten, meerdere vectorvelden en meerdere vectorindexen verschillen soms tussen de services. Voor uw workloadvereisten zijn mogelijk enkele van deze specifieke functies vereist. Meer informatie over de basisvectorfuncties van elke Azure-service, zoals wordt weergegeven in de volgende tabel.

Mogelijkheid Azure Cosmos DB for PostgreSQL Azure Cosmos DB voor NoSQL Azure Cosmos DB voor MongoDB (vCore) Azure Database for PostgreSQL (Flex) Azure AI Search Azure SQL-database
Ingebouwde vectorzoekopdrachten Ja 1 Ja Ja 2 Ja 1 Ja 3 Ja 4
Vectorgegevenstype Ja Ja Ja Ja Ja Nr.
Dimensielimieten 6 16.000 7 of 2000 5058 of 4096 2.000 16.000 7 of 2000 3072 1998 (preview)5
Meerdere vectorvelden Ja Ja No Ja Ja Ja
Meerdere vectorindexen Ja Ja No Ja Ja Ja
  1. 'pgvector' ondersteunt vectorzoekopdrachten. Dit is de extensie van PostgreSQL.
  2. Vectorzoekopdrachten gebruiken voor insluitingen in Azure Cosmos DB voor MongoDB vCore
  3. Vectoren in Azure AI Search
  4. Native vector search is beschikbaar met azure SQL Database Early adopter preview
  5. Vectoren kunnen worden opgeslagen in een VARBINARY(8000) kolom of variabele.
  6. Modellen insluiten vanuit OpenAI, 1536 voor tekst-insluiten-ada-002 en tekst-insluiten-3-klein en 3072 voor tekst-insluiten-3-groot. Voor multimodale insluitingsmodellen van Azure AI Vision, 1024 voor zowel afbeeldingen als tekst.
  7. Vectoren kunnen maximaal 16.000 dimensies hebben. Maar index met 'IVFFlat' en 'HNSW' ondersteunt vectoren met maximaal 2000 dimensies.
  8. Vectoren die zijn geïndexeerd met het platte indextype kunnen maximaal 505 dimensies zijn. Vectoren die zijn geïndexeerd met het indextype quantizedFlat of DiskANN kunnen maximaal 4.096 dimensies zijn.

Zoekmethoden

Workloads moeten vaak vectorzoekopdrachten combineren met zoeken in volledige tekst of zelfs een hybride zoekopdracht (zoeken in volledige tekst of semantische zoekopdrachten plus vectorzoekopdrachten). De combinatie van hybride zoekopdrachten en rerankering zorgt voor hoge nauwkeurigheid voor workloads. U kunt hybride zoekopdrachten en herrankering handmatig implementeren met uw eigen code, of u kunt overwegen hoe uw vectorarchief deze workloadvereiste ondersteunt.

Zoekmethode Azure Cosmos DB for PostgreSQL Azure Cosmos DB voor NoSQL Azure Cosmos DB voor MongoDB (vCore) Azure Database for PostgreSQL (Flex) Azure AI Search Azure SQL-database
Zoeken in volledige tekst Ja 1 Nee Ja 2 Ja 1 Ja 3 Ja 4
Hybride zoekopdracht Ja 5 Nee Nr. Ja 5 Ja 6 Ja 7
Ingebouwde herrankering Nee No No Nr. Ja 8 Nee
  1. Zoeken in volledige tekst in PostgreSQL
  2. Zoeken en query's uitvoeren met tekstindexen in Azure Cosmos DB voor MongoDB vCore
  3. Aan de slag met zoeken in volledige tekst
  4. Vectorgegevens op SQL Server
  5. Niet opgegeven als eersteklas functie, maar voorbeeldcodes worden verstrekt.
  6. Hybride zoekopdrachten (combinatie van zoeken in volledige tekst, vectorzoekopdrachten en semantische classificatie) wordt geleverd als een eersteklas functie.
  7. Voorbeeld van hybride zoekopdracht voor Azure SQL-database en SQL Server.
  8. Rerankering met de naam Semantic Ranking is een eersteklas functie voor het opnieuw rangschikken van het resultaat van zoeken in volledige tekst en/of vectorzoekopdrachten.

Algoritmen voor indexering van vectorgegevens

Vectorgegevensindexering is de mogelijkheid om vectoren efficiënt op te slaan en op te halen. Deze mogelijkheid is belangrijk omdat indexering invloed heeft op de snelheid en nauwkeurigheid van zoekopdrachten naar overeenkomsten en dichtstbijzijnde buurquery's op gegevensbronnen.

Indexen zijn doorgaans gebaseerd op een volledige k-dichtstbijzijnde buur (Ek-NN) of een ANN-algoritme. Ek-NN voert een uitgebreide zoekopdracht uit op alle gegevenspunten één voor één en retourneert de nauwkeurige K dichtstbijzijnde buren. Ek-NN werkt in milliseconden met een kleine hoeveelheid gegevens, maar kan latentie veroorzaken voor grote hoeveelheden gegevens.

HNSW en IVFFlat zijn ANN-algoritmeindexen. Het selecteren van de juiste indexeringsstrategie omvat een zorgvuldige overweging van verschillende factoren, zoals de aard van de gegevensset, de specifieke vereisten van de query's en de beschikbare resources. IVFFlat is effectief in omgevingen waarin hardwarebronnen beperkt zijn of queryvolumes niet hoog zijn. HNSW exceleert in systemen die snelle queryreacties vereisen en zich kunnen aanpassen aan wijzigingen in de gegevensset.

Krijg inzicht in de soorten vectorgegevensindexering uit de volgende tabel.

Indexeringsmethode Azure Cosmos DB for PostgreSQL Azure Cosmos DB voor NoSQL Azure Cosmos DB voor MongoDB (vCore) Azure Database for PostgreSQL (Flex) Azure AI Search Azure SQL-database
Volledige K-dichtstbijzijnde buur (EKNN) Ja Ja Ja Ja Ja Ja
Hiërarchische navigable Small World (HNSW) Ja Nr. Ja (preview)1 Ja Ja Nr.
IVFflat Ja No Ja Ja No Nr.
Overige - flat, quantizedFlat, diskANN2 Vectorveldbeperking 3
Vector index beperking 4
- - Externe bibliotheken zijn beschikbaar5
  1. Overzicht van Azure Cosmos DB voor MongoDB - Overzicht van vectorzoekopdrachten
  2. Beleid voor vectorindexering
  3. Er is slechts één vectorveld beschikbaar per container.
  4. Er is slechts één vectorindex beschikbaar per container.
  5. Index kan worden gemaakt met behulp van externe bibliotheken zoals Scikit Learn of FAISS

Mogelijkheden voor overeenkomsten en afstandsberekeningen

Er zijn cosinus-overeenkomsten, dot-product en euclidische afstandsberekeningsmethoden voor vectorzoekopdrachten. Deze methoden worden gebruikt om de gelijkenis tussen twee vectoren of de afstand tussen twee vectoren te berekenen.

Voorlopige gegevensanalyse profiteert van zowel metrische gegevens als Euclidische afstanden, waardoor verschillende inzichten over de gegevensstructuur kunnen worden opgehaald, terwijl tekstclassificatie doorgaans beter presteert onder Euclidean afstanden. Het ophalen van de meest vergelijkbare teksten met een bepaalde tekst werkt meestal beter met cosinus-overeenkomsten.

Azure OpenAI Service-insluitingen zijn afhankelijk van cosinus-gelijkenis met het berekenen van overeenkomsten tussen documenten en een query.

Berekening van ingebouwde vectorvergelijking Azure Cosmos DB for PostgreSQL Azure Cosmos DB voor NoSQL Azure Cosmos DB voor MongoDB (vCore) Azure Database for PostgreSQL (Flex) Azure AI Search Azure SQL-database
Cosinus-gelijkenis Ja Ja1 Ja Ja Ja Ja 2
Euclidische afstand (L2 afstand) Ja Ja1 Ja Ja Ja Ja 2
Dot-product Ja Ja1 Ja Ja Ja Ja 2
  1. Berekening van vectorafstand voor Azure Cosmos DB voor NoSQL.
  2. Voorbeelden van afstandsberekeningen voor Azure SQL-database en SQL Server.

Integratie met Azure OpenAI en andere onderdelen

Bij het implementeren van vectorzoekopdrachten kunt u ook overwegen om koppelingen te maken met andere Microsoft-onderdelen. Azure OpenAI Service helpt u bijvoorbeeld bij het maken van vectorvectoren voor uw gegevens en invoerquery's voor het zoeken naar vector-overeenkomsten.

Mogelijkheid Azure Cosmos DB for PostgreSQL Azure Cosmos DB voor NoSQL Azure Cosmos DB voor MongoDB (vCore) Azure Database for PostgreSQL (Flex) Azure AI Search Azure SQL-database
Azure OpenAI-service : uw eigen gegevens toevoegen Nee Nr. Ja 1 Nee Ja 2 Nee
Vector insluiten met Azure OpenAI Nee No Nr. Ja 3 Ja 4 Ja 5
Integratie met promptstroom Nee No No Nr. Ja 6 Nee
Integratie met Semantische kernel Ja 7 Ja8 Ja9 Ja 7 Ja 10 Ja 11
  1. Azure Cosmos DB voor MongoDB (vCore) wordt ondersteund als een gegevensbron voor Azure OpenAI op uw gegevens.
  2. Azure AI Search wordt ondersteund als een gegevensbron voor Azure OpenAI op uw gegevens.
  3. De Azure AI-extensie (preview) is beschikbaar.
  4. Azure AI Search biedt een vaardigheid om de gesegmenteerde tekst te vectoriseren.
  5. U kunt een opgeslagen procedure maken voor de implementatie van het insluitmodel.
  6. Ondersteund als een vectordatabase in het hulpprogramma Vector DB Lookup .
  7. Ondersteund als een geheugenconnector en een vectordatabaseconnector (C#).
  8. Azure Cosmos DB in Semantic Kernel.
  9. Ondersteund als vectordatabaseconnector (Python).
  10. Ondersteund als een geheugenconnector en een vectordatabaseconnector (C#, Python).
  11. Ondersteund als een geheugenconnector.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Belangrijkste auteurs:

Andere Inzenders:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stap

Kennisanalyse implementeren met Azure AI Search. In dit leertraject wordt uitgelegd hoe u Azure AI Search gebruikt.