Geïntegreerde gegevenssegmentering en insluiting in Azure AI Search
Geïntegreerde vectorisatie is een uitbreiding van de indexerings- en querypijplijnen in Azure AI Search. Hiermee worden de volgende mogelijkheden toegevoegd:
- Gegevenssegmenteren tijdens het indexeren
- Conversie van tekst naar vector tijdens het indexeren
- Conversie van tekst naar vector tijdens query's
Gegevenssegmentering is geen harde vereiste, maar tenzij uw onbewerkte documenten klein zijn, is segmentering nodig om te voldoen aan de invoervereisten voor tokens van insluitingsmodellen.
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).
Met geïntegreerde gegevenssegmentering en vectorisatie wordt de ontwikkeling versneld en worden onderhoudstaken tijdens gegevensopname en querytijd geminimaliseerd, omdat er minder externe onderdelen zijn die moeten worden geconfigureerd en beheerd. Deze mogelijkheid is nu algemeen beschikbaar.
Geïntegreerde vectorisatie gebruiken tijdens het indexeren
Voor gegevenssegmentering en conversie van tekst-naar-vector neemt u een afhankelijkheid van de volgende onderdelen:
Een indexeerfunctie, die onbewerkte gegevens ophaalt uit een ondersteunde gegevensbron en fungeert als de pijplijnengine.
Een vectorindex om de gesegmenteerde en gevectoriseerde inhoud te ontvangen.
Een vaardighedenset die is geconfigureerd voor:
Vaardigheid Tekst splitsen, gebruikt om de gegevens te segmenteren.
Een insluitvaardigheid die wordt gebruikt voor het genereren van vectormatrices. Dit kan een van de volgende zijn:
AzureOpenAIEmbedding-vaardigheid, gekoppeld aan tekst-embedding-ada-002,text-embedding-3-small, text-embedding-3-large op Azure OpenAI.
Aangepaste vaardigheid die verwijst naar een ander insluitmodel in Azure of op een andere site.
Azure AI Vision-vaardigheid (preview) die verwijst naar de multimodale API voor Azure AI Vision.
AML-vaardigheid verwijst naar de modelcatalogus in Azure AI Studio die verwijst naar geselecteerde modellen in de modelcatalogus.
Geïntegreerde vectorisatie gebruiken in query's
Voor conversie van tekst-naar-vector tijdens query's neemt u een afhankelijkheid van deze onderdelen:
Een query waarmee een of meer vectorvelden worden opgegeven.
Een tekenreeks die tijdens de query naar een vector wordt geconverteerd.
Een vectorizer, gedefinieerd in het indexschema, toegewezen aan een vectorveld en automatisch gebruikt tijdens het uitvoeren van query's om een tekstquery te converteren naar een vector. De vectorizer die u hebt ingesteld, moet overeenkomen met het insluitmodel dat wordt gebruikt om uw inhoud te coderen.
Onderdeeldiagram
In het volgende diagram ziet u de onderdelen van geïntegreerde vectorisatie.
De werkstroom is een indexeerpijplijn. Indexeerfuncties halen gegevens op uit ondersteunde gegevensbronnen en initiëren gegevensverrijking (of toegepaste AI) door Azure OpenAI- of Azure AI-services of aangepaste code aan te roepen voor tekst-naar-vectorconversies of andere verwerking.
Het diagram 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
Geïntegreerde vectorisatie is beschikbaar in alle regio's en lagen. Als u echter Azure OpenAI en Azure AI-vaardigheden en vectorizers gebruikt, moet u ervoor zorgen dat uw Azure AI-account voor meerdere services beschikbaar is in dezelfde regio's als Azure AI Search.
Als u een aangepaste vaardigheid en een Azure-hostingmechanisme (zoals een Azure-functie-app, Azure-web-app en Azure Kubernetes) gebruikt, controleert u het Azure-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 gevectoriseerde of niet-gevectoriseerde segmenten gebruiken voor zoeken in chatstijl.
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:
- Voeg een vectorizer toe aan een index. Het moet hetzelfde insluitingsmodel zijn dat wordt gebruikt om vectoren in de index te genereren.
- Wijs de vectorizer toe aan een vectorprofiel en wijs vervolgens een vectorprofiel toe aan het vectorveld.
- Formuleer een vectorquery die de tekenreeks aangeeft die moet worden gevectoraliseerd.
Een veelvoorkomender scenario: gegevenssegmentering en vectorisatie tijdens het indexeren:
- Maak een gegevensbronverbinding met een ondersteunde gegevensbron voor indexering op basis van indexeerfuncties.
- Maak een vaardighedenset die de vaardigheid Text Split aanroept voor segmenten en AzureOpenAIEmbeddingModel of een andere insluitingsvaardigheid om de segmenten te vectoriseren.
- Maak een index die een vectorizer opgeeft voor de querytijd en wijs deze toe aan vectorvelden.
- Maak een indexeerfunctie om alles te stimuleren, van het ophalen van gegevens tot het uitvoeren van vaardighedensets, via indexering. Het is raadzaam om de indexeerfunctie volgens een schema uit te voeren om gewijzigde documenten of documenten op te halen die zijn gemist vanwege beperking.
U kunt desgewenst secundaire indexen maken voor geavanceerde scenario's waarbij 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.
Verbindingen met vectorizers en modellen beveiligen
Als uw architectuur privéverbindingen vereist die het internet omzeilen, kunt u een gedeelde private link-verbinding maken met de insluitmodellen die worden gebruikt door vaardigheden tijdens het indexeren en vectorizers tijdens het uitvoeren van query's.
Gedeelde privékoppelingen werken alleen voor Azure-naar-Azure-verbindingen. Als u verbinding maakt met OpenAI of een ander extern model, moet de verbinding via het openbare internet zijn.
Voor vectorisatiescenario's gebruikt u:
openai_account
voor het insluiten van modellen die worden gehost op een Azure OpenAI-resource.sites
voor het insluiten van modellen die zijn geopend als een aangepaste vaardigheid of aangepaste vectorizer. Desites
groeps-id is voor App-services en Azure-functies, die u kunt gebruiken om een insluitmodel te hosten dat geen van de Azure OpenAI-insluitingsmodellen is.
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.
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.
Batchverwerkings- en nieuwe pogingslogica is ingebouwd (niet configureerbaar). Azure AI Search heeft intern beleid voor opnieuw proberen voor beperkingsfouten die worden weergegeven omdat het Azure OpenAI-eindpunt maximaal tokenquota heeft voor het insluitmodel. We raden u aan de indexeerfunctie volgens een schema (bijvoorbeeld om de 5 minuten) te plaatsen, zodat de indexeerfunctie alle aanroepen kan verwerken die zijn beperkt door het Azure OpenAI-eindpunt, ondanks het beleid voor opnieuw proberen.
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 vraag- en antwoord- of chatstijl-apps. De secundaire index bevat gedetailleerde informatie voor specifiekere overeenkomsten, maar de bovenliggende index bevat meer informatie en kan vaak een completer antwoord opleveren. Wanneer een overeenkomst wordt gevonden in de secundaire index, retourneert de query het bovenliggende document uit de primaire index. Uitgaande van een groot PDF-bestand als brondocument, kan de primaire index bijvoorbeeld basisinformatie bevatten (titel, datum, auteur, beschrijving), terwijl een secundaire index segmenten van doorzoekbare inhoud bevat.