Geïntegreerde gegevenssegmentering en insluiting in Azure AI Search

Belangrijk

Deze functie is beschikbaar als openbare preview onder aanvullende gebruiksvoorwaarden. De REST API 2023-10-01-Preview ondersteunt deze functie.

Geïntegreerde vectorisatie voegt gegevenssegmentering en tekst-naar-vector insluiten toe aan vaardigheden in indexering op basis van indexeerfuncties. Er worden ook tekst-naar-vectorconversies toegevoegd aan query's.

Deze mogelijkheid is alleen preview. In de algemeen beschikbare versie van vectorzoekopdrachten en in eerdere preview-versies zijn gegevenssegmentering en vectorisatie afhankelijk van externe onderdelen voor segmentering en vectoren, en uw toepassingscode moet elke stap verwerken en coördineren. In deze preview worden segmentering en vectorisatie ingebouwd in indexering via vaardigheden en indexeerfuncties. U kunt een vaardighedenset instellen waarmee gegevens worden gesegmenteerd met behulp van de vaardigheid Tekst splitsen en vervolgens een insluitmodel aanroepen met behulp van de vaardigheid AzureOpenAIEmbedding of een aangepaste vaardigheid. Vectorizers die tijdens het indexeren worden gebruikt, kunnen ook worden aangeroepen op query's om tekst naar vectoren te converteren.

Voor indexering is geïntegreerde vectorisatie vereist:

Voor query's:

  • Een vectorizer die is gedefinieerd in het indexschema, toegewezen aan een vectorveld en automatisch wordt gebruikt tijdens het uitvoeren van query's om een tekstquery te converteren naar een vector.

Vectorconversies zijn in één richting: tekst-naar-vector. Er is geen vector-naar-tekstconversie voor query's of resultaten (u kunt bijvoorbeeld geen vectorresultaat converteren naar een door mensen leesbare tekenreeks).

Onderdeeldiagram

In het volgende diagram ziet u de onderdelen van geïntegreerde vectorisatie.

Diagram van onderdelen in een geïntegreerde vectorisatiewerkstroom.

Hier volgt een controlelijst van de onderdelen die verantwoordelijk zijn voor geïntegreerde vectorisatie:

  • Een ondersteunde gegevensbron voor indexering op basis van indexeerfuncties.
  • Een index die vectorvelden opgeeft en een vectorizerdefinitie die is toegewezen aan vectorvelden.
  • Een vaardighedenset die een vaardigheid Tekst splitsen biedt voor gegevenssegmentering en een vaardigheid voor vectorisatie (ofwel de vaardigheid AzureOpenAiEmbedding of een aangepaste vaardigheid die verwijst naar een extern insluitmodel).
  • Optioneel, indexprojecties (ook gedefinieerd in een vaardighedenset) om gesegmenteerde gegevens naar een secundaire index te pushen
  • Een insluitmodel, geïmplementeerd in Azure OpenAI of beschikbaar via een HTTP-eindpunt.
  • Een indexeerfunctie om het proces end-to-end te stimuleren. Een indexeerfunctie geeft ook een schema, veldtoewijzingen en eigenschappen op voor wijzigingsdetectie.

Deze controlelijst is gericht op geïntegreerde vectorisatie, maar uw oplossing is niet beperkt tot deze lijst. U kunt meer vaardigheden toevoegen voor AI-verrijking, een kennisarchief maken, semantische classificatie toevoegen, relevantie afstemmen en andere queryfuncties toevoegen.

Beschikbaarheid en prijzen

De beschikbaarheid van geïntegreerde vectorisatie is gebaseerd op het insluitmodel. Als u Azure OpenAI gebruikt, controleert u de regionale beschikbaarheid.

Als u een aangepaste vaardigheid en een Azure-hostingmechanisme (zoals een Azure-functie-app, Azure-web-app en Azure Kubernetes) gebruikt, controleert u het product op regiopagina voor beschikbaarheid van functies.

Gegevenssegmentering (vaardigheid Tekst splitsen) is gratis en beschikbaar voor alle Azure AI-services in alle regio's.

Notitie

Sommige oudere zoekservices die vóór 1 januari 2019 zijn gemaakt, worden geïmplementeerd op infrastructuur die geen ondersteuning biedt 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.

Welke scenario's kunnen geïntegreerde vectorisatieondersteuning bieden?

  • Deel grote documenten onder in segmenten, handig voor vector- en niet-vectorscenario's. Voor vectoren kunt u met segmenten voldoen aan de invoerbeperkingen voor het insluiten van modellen. Voor niet-vectorscenario's hebt u mogelijk een zoek-app in chatstijl waarin GPT antwoorden van geïndexeerde segmenten samenvoegt. U kunt vectorized of niet-vectorized segmenten gebruiken voor zoeken in chatstijlen.

  • Bouw een vectorarchief waarin alle velden vectorvelden zijn en de document-id (vereist voor een zoekindex) het enige tekenreeksveld is. Voer een query uit in het vectorarchief om document-id's op te halen en verzend vervolgens de vectorvelden van het document naar een ander model.

  • Vector- en tekstvelden combineren voor hybride zoekopdrachten, met of zonder semantische rangschikking. Geïntegreerde vectorisatie vereenvoudigt alle scenario's die worden ondersteund door vectorzoekopdrachten.

Wanneer moet u geïntegreerde vectorisatie gebruiken

U wordt aangeraden de ingebouwde vectorisatieondersteuning van Azure AI Studio te gebruiken. Als deze aanpak niet aan uw behoeften voldoet, kunt u indexeerfuncties en vaardighedensets maken die geïntegreerde vectorisatie aanroepen met behulp van de programmatische interfaces van Azure AI Search.

Integratievectorisatie gebruiken

Voor vectorisatie met alleen query's:

  1. Voeg een vectorizer toe aan een index. Het moet hetzelfde insluitingsmodel zijn dat wordt gebruikt om vectoren in de index te genereren.
  2. Wijs de vectorizer toe aan een vectorprofiel en wijs vervolgens een vectorprofiel toe aan het vectorveld.
  3. Formuleer een vectorquery die de tekenreeks aangeeft die moet worden gevectoraliseerd.

Een veelvoorkomender scenario: gegevenssegmentering en vectorisatie tijdens het indexeren:

  1. Maak een gegevensbronverbinding met een ondersteunde gegevensbron voor indexering op basis van indexeerfuncties.
  2. Maak een vaardighedenset die de vaardigheid Text Split aanroept voor segmenten en AzureOpenAIEmbeddingModel of een aangepaste vaardigheid om de segmenten te vectoriseren.
  3. Maak een index die een vectorizer opgeeft voor de querytijd en wijs deze toe aan vectorvelden.
  4. Maak een indexeerfunctie om alles te stimuleren, van het ophalen van gegevens tot het uitvoeren van vaardighedensets, via indexering.

U kunt desgewenst secundaire indexen maken voor geavanceerde scenario's waarin gesegmenteerde inhoud zich in de ene index bevindt en niet in een andere index is gesegmenteerd. Gesegmenteerde indexen (of secundaire indexen) zijn handig voor RAG-apps.

Tip

Probeer de nieuwe wizard Gegevens importeren en vectoriseren in Azure Portal om geïntegreerde vectorisatie te verkennen voordat u code schrijft.

U kunt ook een Jupyter-notebook configureren om dezelfde werkstroom, cel per cel, uit te voeren om te zien hoe elke stap werkt.

Beperkingen

Zorg ervoor dat u de Azure OpenAI-quota en -limieten kent voor het insluiten van modellen. Azure AI Search heeft beleid voor opnieuw proberen, maar als het quotum is uitgeput, mislukken nieuwe pogingen.

Limieten voor Azure OpenAI-token per minuut zijn per model, per abonnement. Houd er rekening mee dat als u een insluitmodel gebruikt voor zowel query- als indexeringsworkloads. Volg indien mogelijk de aanbevolen procedures. Zorg voor een insluitmodel voor elke workload en probeer deze in verschillende abonnementen te implementeren.

Houd er in Azure AI Search rekening mee dat er servicelimieten zijn per laag en workloads.

Ten slotte worden de volgende functies momenteel niet ondersteund:

Voordelen van geïntegreerde vectorisatie

Hier volgen enkele van de belangrijkste voordelen van de geïntegreerde vectorisatie:

  • Geen afzonderlijke pijplijn voor het segmenteren en vectoriseren van gegevens. Code is eenvoudiger te schrijven en te onderhouden.

  • Automatiseer het end-to-end indexeren. Wanneer gegevens in de bron (zoals in Azure Storage, Azure SQL of Cosmos DB) worden gewijzigd, kan de indexeerfunctie deze updates verplaatsen via de hele pijplijn, van ophalen tot documentbarsten, via optionele AI-verrijking, gegevenssegmentering, vectorisatie en indexering.

  • Gesegmenteerde inhoud projecteren naar secundaire indexen. Secundaire indexen worden gemaakt zoals elke zoekindex (een schema met velden en andere constructies), maar deze worden gevuld met een primaire index door een indexeerfunctie. Inhoud van elk brondocument stroomt naar velden in primaire en secundaire indexen tijdens dezelfde indexeringsuitvoering.

    Secundaire indexen zijn bedoeld voor rag-apps (Augmented Generation) voor gegevenssegmentering en ophalen. Ervan uitgaande dat een groot PDF-bestand als brondocument is, kan de primaire index basisinformatie bevatten (titel, datum, auteur, beschrijving) en een secundaire index bevat de segmenten van inhoud. Vectorisatie op het niveau van het gegevenssegment maakt het gemakkelijker om relevante informatie te vinden (elk segment kan worden doorzocht) en retourneert een relevant antwoord, met name in een zoek-app in chatstijl.

Gesegmenteerde indexen

Segmentering is een proces van het verdelen van inhoud in kleinere beheerbare delen (segmenten) die onafhankelijk van elkaar kunnen worden verwerkt. Segmentering is vereist als brondocumenten te groot zijn voor de maximale invoergrootte van insluitingsmodellen of grote taalmodellen, maar het kan zijn dat u hiermee een betere indexstructuur krijgt voor RAG-patronen en zoeken in chatstijl.

In het volgende diagram ziet u de onderdelen van gesegmenteerde indexering.

Diagram van segmenterings- en vectorisatiewerkstroom.

Volgende stappen