Share 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 insluitmodel gebruiken, maar in dit artikel wordt ervan uitgegaan dat Azure OpenAI-modellen worden ingesloten. Demo's in de voorbeeldopslagplaats tikken op de overeenkomsten voor het insluiten van modellen van Azure OpenAI.

Dimensiekenmerken hebben minimaal 2 en maximaal 3072 dimensies per vectorveld.

Notitie

Dit artikel is van toepassing op de algemeen beschikbare versie van vectorzoekopdrachten. Hierbij wordt ervan uitgegaan dat uw toepassingscode een externe resource aanroept, zoals Azure OpenAI voor vectorisatie. Een nieuwe functie genaamd geïntegreerde vectorisatie, momenteel in preview, biedt ingesloten vectorisatie. Geïntegreerde vectorisatie heeft een afhankelijkheid van indexeerfuncties, vaardighedensets en de vaardigheid AzureOpenAIEmbedding of een aangepaste vaardigheid die verwijst naar een model dat extern wordt uitgevoerd vanuit Azure AI Search.

Hoe modellen worden gebruikt

  • Voor queryinvoer moet u door de gebruiker verstrekte invoer verzenden naar een insluitmodel dat snel leesbare tekst converteert naar een vector.

    • U kunt bijvoorbeeld tekst-insluiten-ada-002 gebruiken om tekst-insluitingen en REST API voor het ophalen van afbeeldingen te genereren voor insluitingen van afbeeldingen.

    • 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 model u ook hebt gebruikt voor indexering, gebruik hetzelfde model voor query's.

Resources maken in dezelfde regio

Als u resources in dezelfde regio wilt, begint u met:

  1. Een regio voor het insluitmodel voor overeenkomsten, momenteel in Europa en de Verenigde Staten.

  2. Een regio voor Azure AI Search.

  3. Als u hybride query's wilt ondersteunen die semantische classificatie bevatten, of als u de integratie van machine learning-modellen wilt proberen met behulp van een aangepaste vaardigheid in een AI-verrijkingspijplijn, moet u rekening houden met de regio's die deze functies bieden.

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==0.28.1

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 = "2023-05-15"

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

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 overeenkomende afbeeldingsinhoud met tekstinhoud, meertalige zoekopdrachten of het zoeken naar vergelijkbare documenten.
  • 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.
  • 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