Delen via


Insluitingen genereren voor zoekquery's en documenten

Azure AI Search host geen vectorisatiemodellen, dus een van uw uitdagingen is het maken van insluitingen voor query-invoer en -uitvoer. U kunt elk ondersteund insluitmodel gebruiken, maar in dit artikel wordt ervan uitgegaan dat Azure OpenAI-insluitingsmodellen worden gebruikt voor de stappen.

We raden geïntegreerde vectorisatie aan, die ingebouwde gegevenssegmentering en vectorisatie biedt. Geïntegreerde vectorisatie heeft een afhankelijkheid van indexeerfuncties, vaardighedensets en ingebouwde of aangepaste vaardigheden die verwijzen naar een model dat extern wordt uitgevoerd vanuit Azure AI Search.

Als u zelf gegevenssegmentering en vectorisatie wilt afhandelen, bieden we demo's in de voorbeeldopslagplaats die laten zien hoe u kunt integreren met andere communityoplossingen.

Hoe insluitmodellen worden gebruikt in vectorquery's

  • Queryinvoer zijn vectoren of tekst of afbeeldingen die tijdens het verwerken van query's worden geconverteerd naar vectoren. De ingebouwde oplossing in Azure AI Search is het gebruik van een vectorizer.

    U kunt de conversie ook zelf afhandelen door de queryinvoer door te geven aan een insluitmodel van uw keuze. Om snelheidsbeperking te voorkomen, kunt u logica voor opnieuw proberen implementeren in uw workload. Voor de Python-demo hebben we vasthoudendheid gebruikt.

  • Query-uitvoer zijn overeenkomende documenten die in een zoekindex worden gevonden. Uw zoekindex moet eerder zijn geladen met documenten met een of meer vectorvelden met insluitingen. Welk insluitmodel u ook hebt gebruikt voor indexering, gebruik hetzelfde model voor query's.

Resources maken in dezelfde regio

Voor geïntegreerde vectorisatie moeten resources zich in dezelfde regio bevinden:

  1. Controleer de regio's voor een insluitmodel voor tekst.

  2. Zoek dezelfde regio voor Azure AI Search.

  3. Als u hybride query's wilt ondersteunen die semantische classificatie bevatten of als u machine learning-modelintegratie wilt proberen met behulp van een aangepaste vaardigheid in een AI-verrijkingspijplijn, selecteert u een Azure AI Search-regio die deze functies biedt.

Een insluiting genereren voor een geïmproviseerde query

Met de volgende Python-code wordt een insluiting gegenereerd die u kunt plakken in de eigenschap 'waarden' van een vectorquery.

!pip install openai

import openai

openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"

response = openai.Embedding.create(
    input="How do I use Python in VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

Uitvoer is een vectormatrix van 1536 dimensies.

Tips en aanbevelingen voor integratie van model insluiten

  • Gebruiksvoorbeelden identificeren: evalueer de specifieke use cases waarbij integratie van het insluiten van modellen voor vectorzoekfuncties waarde kan toevoegen aan uw zoekoplossing. Dit kan bestaan uit multimodale of overeenkomende afbeeldingsinhoud met tekstinhoud, meertalige zoekopdrachten of overeenkomsten.

  • Een segmenteringsstrategie ontwerpen: het insluiten van modellen heeft limieten voor het aantal tokens dat ze kunnen accepteren, wat een vereiste voor het segmenteren van gegevens voor grote bestanden introduceert. Zie Grote documenten segmenten voor vectorzoekoplossingen voor meer informatie.

  • Kosten en prestaties optimaliseren: vectorzoekopdrachten kunnen resource-intensief zijn en onderhevig zijn aan maximumlimieten. Overweeg daarom alleen de velden te vectoriseren die semantische betekenis bevatten. Verklein de vectorgrootte zodat u meer vectoren voor dezelfde prijs kunt opslaan.

  • Kies het juiste insluitingsmodel: selecteer een geschikt model voor uw specifieke use-case, zoals woord-insluitingen voor zoekopdrachten op basis van tekst of afbeeldingen voor visuele zoekopdrachten. Overweeg vooraf getrainde modellen te gebruiken, zoals tekst-insluiten-ada-002 vanuit OpenAI of REST API voor het ophalen van afbeeldingen vanuit Azure AI Computer Vision.

  • Vectorlengten normaliseren: Zorg ervoor dat de vectorlengten worden genormaliseerd voordat ze in de zoekindex worden opgeslagen om de nauwkeurigheid en prestaties van overeenkomsten te verbeteren. De meeste vooraf getrainde modellen zijn al genormaliseerd, maar niet allemaal.

  • Het model verfijnen: verfijn indien nodig het geselecteerde model op uw domeinspecifieke gegevens om de prestaties en relevantie van uw zoektoepassing te verbeteren.

  • Testen en herhalen: test en verfijn continu de integratie van het insluitmodel om de gewenste zoekprestaties en tevredenheid van de gebruiker te bereiken.

Volgende stappen