Integrerad datasegmentering och inbäddning i Azure AI Search

Integrerad vektorisering är ett tillägg för indexerings- och frågepipelines i Azure AI Search. Den lägger till följande funktioner:

  • Datasegmentering under indexering
  • Text-till-vektorkonvertering under indexering
  • Text till vektorkonvertering under frågor

Datasegmentering är inte ett hårt krav, men om inte dina rådata är små krävs segmentering för att uppfylla kraven på tokeninmatning i inbäddningsmodeller.

Vektorkonverteringar är enkelriktade: text-till-vektor. Det finns ingen vektor-till-text-konvertering för frågor eller resultat (du kan till exempel inte konvertera ett vektorresultat till en sträng som kan läsas av människor).

Integrerad datasegmentering och vektorisering påskyndar utvecklingen och minimerar underhållsaktiviteter under datainmatning och frågetid eftersom det finns färre externa komponenter att konfigurera och hantera. Den här funktionen är nu allmänt tillgänglig.

Använda integrerad vektorisering under indexering

För datasegmentering och text-till-vektorkonverteringar är du beroende av följande komponenter:

Använda integrerad vektorisering i frågor

För text-till-vektorkonvertering under frågor är du beroende av dessa komponenter:

Komponentdiagram

Följande diagram visar komponenterna i integrerad vektorisering.

Diagram över komponenter i ett integrerat vektoriseringsarbetsflöde.

Arbetsflödet är en indexerarpipeline. Indexerare hämtar data från datakällor som stöds och initierar databerikning (eller tillämpad AI) genom att anropa Azure OpenAI- eller Azure AI-tjänster eller anpassad kod för text-till-vektorkonverteringar eller annan bearbetning.

Diagrammet fokuserar på integrerad vektorisering, men lösningen är inte begränsad till den här listan. Du kan lägga till fler kunskaper för AI-berikning, skapa ett kunskapslager, lägga till semantisk rangordning, lägga till relevansjustering och andra frågefunktioner.

Tillgänglighet och priser

Integrerad vektorisering är tillgänglig i alla regioner och nivåer. Men om du använder Azure OpenAI- och Azure AI-kunskaper och vektoriserare kontrollerar du att ditt Azure AI-multitjänstkonto är tillgängligt i samma regioner som Azure AI Search.

Om du använder en anpassad färdighet och en Azure-värdmekanism (till exempel en Azure-funktionsapp, Azure Web App och Azure Kubernetes) kontrollerar du sidan Azure-produkt efter region för funktionstillgänglighet.

Datasegmentering (textdelningsfärdighet) är kostnadsfri och tillgänglig för alla Azure AI-tjänster i alla regioner.

Kommentar

Vissa äldre söktjänster som skapats före den 1 januari 2019 distribueras på infrastruktur som inte stöder vektorarbetsbelastningar. Om du försöker lägga till ett vektorfält i ett schema och få ett fel är det ett resultat av inaktuella tjänster. I det här fallet måste du skapa en ny söktjänst för att testa vektorfunktionen.

Vilka scenarier kan stöd för integrerad vektorisering stödja?

  • Dela upp stora dokument i segment, användbara för vektor- och icke-bevektorscenarier. För vektorer hjälper segment dig att uppfylla indatabegränsningarna för inbäddningsmodeller. För icke-bevektorscenarier kan du ha en sökapp i chattformat där GPT samlar in svar från indexerade segment. Du kan använda vektoriserade eller icke-vektoriserade segment för sökning i chattformat.

  • Skapa ett vektorlager där alla fält är vektorfält och dokument-ID (krävs för ett sökindex) är det enda strängfältet. Fråga vektorarkivet för att hämta dokument-ID:t och skicka sedan dokumentets vektorfält till en annan modell.

  • Kombinera vektor- och textfält för hybridsökning med eller utan semantisk rangordning. Integrerad vektorisering förenklar alla scenarier som stöds av vektorsökning.

När du ska använda integrerad vektorisering

Vi rekommenderar att du använder det inbyggda vektoriseringsstödet för Azure AI Studio. Om den här metoden inte uppfyller dina behov kan du skapa indexerare och kompetensuppsättningar som anropar integrerad vektorisering med hjälp av programmatiska gränssnitt i Azure AI Search.

Använda integrerad vektorisering

För endast frågevektorisering:

  1. Lägg till en vektoriserare i ett index. Det bör vara samma inbäddningsmodell som används för att generera vektorer i indexet.
  2. Tilldela vektoriseraren till en vektorprofil och tilldela sedan en vektorprofil till vektorfältet.
  3. Formulera en vektorfråga som anger vilken textsträng som ska vektoriseras.

Ett vanligare scenario – datasegmentering och vektorisering under indexering:

  1. Skapa en datakällaanslutning till en datakälla som stöds för indexerarbaserad indexering.
  2. Skapa en kompetensuppsättning som anropar kompetens för textdelning för segmentering och AzureOpenAIEmbeddingModel eller någon annan inbäddningsfärdighet för att vektorisera segmenten.
  3. Skapa ett index som anger en vektoriserare för frågetid och tilldela den till vektorfält.
  4. Skapa en indexerare för att driva allt, från datahämtning till körning av kompetensuppsättningar, via indexering. Vi rekommenderar att du kör indexeraren enligt ett schema för att hämta ändrade dokument eller dokument som har missats på grund av begränsning.

Du kan också skapa sekundära index för avancerade scenarier där segmenterat innehåll finns i ett index och som inte har sjunkit i ett annat index. Segmenterade index (eller sekundära index) är användbara för RAG-appar.

Dricks

Prova den nya guiden Importera och vektorisera data i Azure Portal för att utforska integrerad vektorisering innan du skriver någon kod.

Säkra anslutningar till vektoriserare och modeller

Om din arkitektur kräver privata anslutningar som kringgår Internet kan du skapa en delad privat länkanslutning till de inbäddningsmodeller som används av färdigheter under indexering och vektoriserare vid frågetillfället.

Delade privata länkar fungerar endast för Azure-till-Azure-anslutningar. Om du ansluter till OpenAI eller en annan extern modell måste anslutningen vara via det offentliga Internet.

För vektoriseringsscenarier använder du:

  • openai_account för inbäddning av modeller som finns på en Azure OpenAI-resurs.

  • sites för inbäddning av modeller som används som en anpassad färdighet eller anpassad vektoriserare. Grupp-ID sites :t gäller apptjänster och Azure-funktioner, som du kan använda för att vara värd för en inbäddningsmodell som inte är en av Inbäddningsmodellerna för Azure OpenAI.

Begränsningar

Kontrollera att du känner till Azure OpenAI-kvoter och -gränser för inbäddningsmodeller. Azure AI Search har återförsöksprinciper, men om kvoten är slut misslyckas återförsöken.

Gränser för Azure OpenAI-token per minut är per modell, per prenumeration. Tänk på detta om du använder en inbäddningsmodell för både fråge- och indexeringsarbetsbelastningar. Följ om möjligt metodtipsen. Ha en inbäddningsmodell för varje arbetsbelastning och försök distribuera dem i olika prenumerationer.

Kom ihåg att det finns tjänstbegränsningar per nivå och arbetsbelastningar i Azure AI Search.

Fördelar med integrerad vektorisering

Här är några av de viktigaste fördelarna med den integrerade vektoriseringen:

  • Ingen separat pipeline för datasegmentering och vektorisering. Kod är enklare att skriva och underhålla.

  • Automatisera indexering från slutpunkt till slutpunkt. När data ändras i källan (till exempel i Azure Storage, Azure SQL eller Cosmos DB) kan indexeraren flytta uppdateringarna via hela pipelinen, från hämtning till dokumentsprickor, via valfri AI-berikande, datasegmentering, vektorisering och indexering.

  • Batchbearbetning och omprövningslogik är inbyggd (kan inte konfigureras). Azure AI Search har interna återförsöksprinciper för begränsningsfel som uppstår på grund av att Azure OpenAI-slutpunkten maxar tokenkvoterna för inbäddningsmodellen. Vi rekommenderar att indexeraren sätts enligt ett schema (till exempel var 5:e minut) så att indexeraren kan bearbeta alla anrop som har begränsats av Azure OpenAI-slutpunkten trots återförsöksprinciperna.

  • Projicera segmenterat innehåll till sekundära index. Sekundära index skapas på samma sätt som för alla sökindex (ett schema med fält och andra konstruktioner), men de fylls i tillsammans med ett primärt index av en indexerare. Innehåll från varje källdokument flödar till fält i primära och sekundära index under samma indexeringskörning.

    Sekundära index är avsedda för appar med fråge- och svars- eller chattformat. Det sekundära indexet innehåller detaljerad information för mer specifika matchningar, men det överordnade indexet har mer information och kan ofta ge ett mer fullständigt svar. När en matchning hittas i det sekundära indexet returnerar frågan det överordnade dokumentet från det primära indexet. Om du till exempel antar en stor PDF som ett källdokument kan det primära indexet ha grundläggande information (rubrik, datum, författare, beskrivning), medan ett sekundärt index har segment med sökbart innehåll.

Nästa steg