Share via


Generera inbäddningar för sökfrågor och dokument

Azure AI Search är inte värd för vektoriseringsmodeller, så en av dina utmaningar är att skapa inbäddningar för frågeindata och utdata. Du kan använda valfri inbäddningsmodell, men den här artikeln förutsätter inbäddningsmodeller för Azure OpenAI. Demonstrationer på exempellagringsplatsen trycker på inbäddningsmodellerna för likhet i Azure OpenAI.

Dimensionsattribut har minst 2 och högst 3 072 dimensioner per vektorfält.

Kommentar

Den här artikeln gäller för den allmänt tillgängliga versionen av vektorsökning, som förutsätter att programkoden anropar en extern resurs, till exempel Azure OpenAI för vektorisering. En ny funktion som kallas integrerad vektorisering, för närvarande i förhandsversion, erbjuder inbäddad vektorisering. Integrerad vektorisering är beroende av indexerare, kompetensuppsättningar och antingen azureopenAIEmbedding-färdigheten eller en anpassad färdighet som pekar på en modell som körs externt från Azure AI Search.

Så här används modeller

  • Frågeindata kräver att du skickar indata från användaren till en inbäddningsmodell som snabbt konverterar läsbar text till en vektor.

  • Frågeutdata är matchande dokument som finns i ett sökindex. Ditt sökindex måste ha lästs in tidigare med dokument med ett eller flera vektorfält med inbäddningar. Oavsett vilken modell du använde för indexering använder du samma modell för frågor.

Skapa resurser i samma region

Om du vill ha resurser i samma region börjar du med:

  1. En region för inbäddningsmodellen för likhet, för närvarande i Europa och USA.

  2. En region för Azure AI Search.

  3. Observera de regioner som tillhandahåller dessa funktioner för att stödja hybridfrågor som inkluderar semantisk rangordning eller om du vill prova integrering av maskininlärningsmodeller med hjälp av en anpassad färdighet i en AI-berikningspipeline.

Generera en inbäddning för en improviserad fråga

Följande Python-kod genererar en inbäddning som du kan klistra in i egenskapen "values" för en vektorfråga.

!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 och rekommendationer för integrering av inbäddningsmodeller

  • Identifiera användningsfall: Utvärdera de specifika användningsfall där inbäddningsmodellintegrering för vektorsökningsfunktioner kan ge värde till din söklösning. Detta kan omfatta matchande bildinnehåll med textinnehåll, flerspråkiga sökningar eller att hitta liknande dokument.
  • Optimera kostnader och prestanda: Vektorsökning kan vara resurskrävande och omfattas av maximala gränser, så överväg att endast vektorisera fälten som innehåller semantisk betydelse.
  • Välj rätt inbäddningsmodell: Välj en lämplig modell för ditt specifika användningsfall, till exempel ordinbäddningar för textbaserade sökningar eller bildinbäddningar för visuella sökningar. Överväg att använda förtränad modeller som textinbäddning-ada-002 från OpenAI eller REST API för bildhämtning från Azure AI-Visuellt innehåll.
  • Normalisera vektorlängder: Kontrollera att vektorlängderna normaliseras innan du lagrar dem i sökindexet för att förbättra noggrannheten och prestandan för likhetssökning. De flesta förtränad modeller är redan normaliserade men inte alla.
  • Finjustera modellen: Finjustera den valda modellen på dina domänspecifika data om det behövs för att förbättra dess prestanda och relevans för ditt sökprogram.
  • Testa och iterera: Testa och förfina integreringen av inbäddningsmodellen kontinuerligt för att uppnå önskad sökprestanda och användarnöjdhet.

Nästa steg