Dela via


Vektorlager i Azure Database for PostgreSQL

Vektorlager används i flera domäner och situationer i analytisk och generativ AI, inklusive bearbetning av naturligt språk, video- och bildigenkänning, rekommendationssystem och sökning.

Vad är en vektorbutik?

Ett vektorlager (kallas även en vektordatabas) är en databas som lagrar och hanterar inbäddningar av vektorer. Vektorbäddningar är matematiska representationer av data i ett högdimensionellt utrymme.

I det här utrymmet motsvarar varje dimension en funktion i data. Tiotusentals dimensioner kan användas för att representera avancerade data. En vektors position i det här utrymmet representerar dess egenskaper. Ord, fraser, hela dokument, bilder, ljud och andra typer av data kan alla vektoriseras.

Hur fungerar ett vektorlager?

I ett vektorlager använder du vektorsökningsalgoritmer för att indexera och fråga inbäddningar. Välkända vektorsökningsalgoritmer inkluderar Disk Approximate Nearest Neighbor (DiskANN), Hierarchical Navigable Small World (HNSW), och Inverted File with Flat Compression (IVFFlat).

Vektorsökning är en metod som hjälper dig att hitta liknande objekt baserat på deras dataegenskaper i stället för exakta matchningar i ett egenskapsfält. Den här tekniken är användbar i program som att söka efter liknande text, hitta relaterade bilder, göra rekommendationer eller till och med identifiera avvikelser.

Vektorsökning används för att fråga vektorinbäddningar av dina data som du skapade med hjälp av en maskininlärningsmodell via ett INBÄDDNINGS-API. Exempel på API:er för inbäddningar är Azure OpenAI-inbäddningar och Hugging Face på Azure.

Vektorsökning mäter avståndet mellan datavektorerna och frågevektorn. De datavektorer som är närmast din frågevektor är de som är mest lika semantiskt.

När du använder Azure Database for PostgreSQL som vektorlager kan du lagra, indexera och fråga inbäddningar tillsammans med de ursprungliga data. Den här metoden eliminerar den extra kostnaden för att replikera data i en separat, ren vektordatabas.

Den här arkitekturen håller också ihop vektorbäddningar och ursprungliga data. Att hålla inbäddningarna samman med data underlättar multimodala dataprocesser bättre. Det ger också större datakonsekvens, skalning och prestanda.