Semantische rangschikking in Azure AI Search

In Azure AI Search verbetert semantische classificatie de relevantie van zoekopdrachten aanzienlijk met behulp van taalbegrip om zoekresultaten opnieuw te rangschikkingen. Dit artikel is een inleiding op hoog niveau. De sectie aan het einde bevat informatie over beschikbaarheid en prijzen.

Semantische ranker is een Premium-functie, gefactureerd op basis van gebruik. We raden dit artikel aan voor achtergrond, maar als u liever aan de slag wilt gaan, volgt u deze stappen:

Notitie

Semantische classificatie maakt geen gebruik van generatieve AI of vectoren. Als u zoekt naar vectorondersteuning en overeenkomsten zoeken? Zie Vector search in Azure AI Search voor meer informatie.

Wat is semantische rangschikking?

Semantische ranker is een verzameling query-gerelateerde mogelijkheden die de kwaliteit van een initiële BM25-rangschikking of RRF-gerangschikt zoekresultaat voor op tekst gebaseerde query's verbeteren. Wanneer u deze inschakelt voor uw zoekservice, breidt semantische classificatie de pijplijn voor het uitvoeren van query's op twee manieren uit:

  • Ten eerste voegt het secundaire classificatie toe boven een eerste resultatenset die is gescoord met BEHULP van BM25 of RRF. Deze secundaire classificatie maakt gebruik van meertalige deep learning-modellen die zijn aangepast van Microsoft Bing om de meest semantisch relevante resultaten te promoten.

  • Ten tweede extraheert en retourneert het onderschrift s en antwoorden in het antwoord, die u op een zoekpagina kunt weergeven om de zoekervaring van de gebruiker te verbeteren.

Hier volgen de mogelijkheden van de semantische reranker.

Functie Beschrijving
Semantische rangschikking Gebruikt de context of semantische betekenis van een query om een nieuwe relevantiescore te berekenen ten opzichte van vooraf gedefinieerde resultaten.
Semantische onderschrift s en markeringen Extraheert letterlijke zinnen en woordgroepen uit een document waarin de inhoud het beste wordt samengevat, met markeringen over belangrijke passages voor eenvoudig scannen. Bijschriften die een resultaat samenvatten, zijn handig wanneer afzonderlijke inhoudsvelden te dicht zijn voor de pagina met zoekresultaten. Gemarkeerde tekst verhoogt de meest relevante termen en woordgroepen, zodat gebruikers snel kunnen bepalen waarom een overeenkomst als relevant werd beschouwd.
Semantische antwoorden Een optionele en extra substructuur die wordt geretourneerd door een semantische query. Het biedt een direct antwoord op een query die lijkt op een vraag. Het vereist dat een document tekst bevat met de kenmerken van een antwoord.

Hoe semantische ranker werkt

Semantische classificatie voedt een query en resultaten voor language understanding-modellen die door Microsoft worden gehost en scant op betere overeenkomsten.

In de volgende afbeelding wordt het concept uitgelegd. Houd rekening met de term 'kapitaal'. Het heeft verschillende betekenissen, afhankelijk van of de context financieel, recht, geografie of grammatica is. Via taalkennis kan de semantische ranker context detecteren en resultaten promoten die passen bij de queryintentie.

Illustration of vector representation for context.

Semantische rangschikking is zowel resource- als tijdsintensief. Om de verwerking binnen de verwachte latentie van een querybewerking te voltooien, worden de invoer in de semantische rangschikking geconsolideerd en verkleind, zodat de herrankeringsstap zo snel mogelijk kan worden voltooid.

Er zijn twee stappen voor semantische rangschikking: samenvatting en score. Uitvoer bestaat uit opnieuw gescorede resultaten, onderschrift s en antwoorden.

Hoe invoer wordt verzameld en samengevat

In semantische classificatie geeft het querysubsysteem zoekresultaten door als invoer voor samenvattings- en classificatiemodellen. Omdat de classificatiemodellen beperkingen voor invoergrootte hebben en intensief worden verwerkt, moeten zoekresultaten worden aangepast en gestructureerd (samengevat) voor een efficiënte verwerking.

  1. Semantische classificatie begint met een BM25-gerangschikt resultaat van een tekstquery of een met RRF gerangschikt resultaat van een hybride query. Alleen tekstvelden worden gebruikt in de herrankeringsoefening en alleen de top 50 resultaten worden naar semantische rangschikking uitgevoerd, zelfs als de resultaten meer dan 50 bevatten. Velden die in semantische rangschikking worden gebruikt, zijn doorgaans informatief en beschrijvend.

  2. Voor elk document in het zoekresultaat accepteert het samenvattingsmodel maximaal 2000 tokens, waarbij een token ongeveer 10 tekens is. Invoer wordt samengesteld uit de velden 'title', 'keyword' en 'content' die worden vermeld in de semantische configuratie.

  3. Overmatige lange tekenreeksen worden bijgesneden om ervoor te zorgen dat de totale lengte voldoet aan de invoervereisten van de samenvattingsstap. Deze bijsnijdoefening is waarom het belangrijk is om velden toe te voegen aan uw semantische configuratie in volgorde van prioriteit. Als u zeer grote documenten met tekstzware velden hebt, wordt alles na de maximumlimiet genegeerd.

    Semantisch veld Tokenlimiet
    "titel" 128 tokens
    "trefwoorden 128 tokens
    "inhoud" resterende tokens
  4. Samenvattingsuitvoer is een samenvattingstekenreeks voor elk document, samengesteld uit de meest relevante informatie uit elk veld. Samenvattingstekenreeksen worden verzonden naar de classificatiefunctie voor scoren en naar leesbegripmodellen voor machineleesmodellen voor onderschrift s en antwoorden.

    De maximale lengte van elke gegenereerde samenvattingstekenreeks die wordt doorgegeven aan de semantische ranker, is 256 tokens.

Uitvoer van semantische rangschikking

Uit elke samenvattingstekenreeks vinden de machinebegripmodellen passages die het meest representatief zijn.

Uitvoer is:

  • Een semantische onderschrift voor het document. Elke onderschrift is beschikbaar in een tekst zonder opmaak en een markeringsversie en is vaak minder dan 200 woorden per document.

  • Een optioneel semantisch antwoord, ervan uitgaande dat u de answers parameter hebt opgegeven, is de query ingesteld als een vraag en wordt een passage gevonden in de lange tekenreeks die waarschijnlijk antwoord geeft op de vraag.

Bijschriften en antwoorden zijn altijd exacte tekst uit uw index. Er is geen generatief AI-model in deze werkstroom waarmee nieuwe inhoud wordt gemaakt of samengesteld.

Hoe samenvattingen worden beoordeeld

Scoren wordt uitgevoerd via de onderschrift en eventuele andere inhoud uit de samenvattingstekenreeks waarmee de lengte van het 256-token wordt ingevuld.

  1. Bijschriften worden geëvalueerd voor conceptuele en semantische relevantie ten opzichte van de opgegeven query.

  2. Een @search.rerankerScore wordt aan elk document toegewezen op basis van de semantische relevantie van het document voor de opgegeven query. Scores variëren van 4 tot 0 (hoog tot laag), waarbij een hogere score een hogere relevantie aangeeft.

  3. Overeenkomsten worden in aflopende volgorde weergegeven op score en opgenomen in de nettolading van het queryantwoord. De nettolading bevat antwoorden, tekst zonder opmaak en gemarkeerde onderschrift s en velden die u hebt gemarkeerd als ophaalbaar of opgegeven in een select-component.

Notitie

Vanaf 14 juli 2023 wordt de distributie @search.rerankerScore gewijzigd. Het effect op scores kan niet worden bepaald, behalve door middel van testen. Als u een vaste drempelwaarde hebt voor deze antwoordeigenschap, voert u de tests opnieuw uit om te begrijpen wat de nieuwe waarden voor uw drempelwaarde moeten zijn.

Semantische mogelijkheden en beperkingen

Semantische ranker is een nieuwere technologie, dus het is belangrijk om verwachtingen te stellen over wat het wel en niet kan. Wat het kan doen:

  • Promoot overeenkomsten die semantisch dichter bij de intentie van de oorspronkelijke query liggen.

  • Zoek tekenreeksen die moeten worden gebruikt als onderschrift s en antwoorden. Bijschriften en antwoorden worden geretourneerd in het antwoord en kunnen worden weergegeven op een pagina met zoekresultaten.

Wat semantische classificatie niet kan doen, is de query opnieuw uitvoeren op het hele corpus om semantisch relevante resultaten te vinden. De Semantische classificatie herschikt de bestaande resultatenset, bestaande uit de top 50 resultaten, zoals beoordeeld door het standaardclassificatie-algoritme. Bovendien kan semantische classificatie geen nieuwe informatie of tekenreeksen maken. Bijschriften en antwoorden worden letterlijk uit uw inhoud geëxtraheerd, dus als de resultaten geen antwoordachtige tekst bevatten, produceren de taalmodellen er geen.

Hoewel semantische rangschikking in elk scenario niet nuttig is, kan bepaalde inhoud aanzienlijk profiteren van de mogelijkheden ervan. De taalmodellen in semantische rangschikking werken het beste voor doorzoekbare inhoud die informatierijk en gestructureerd is als proza. Een knowledge base, onlinedocumentatie of documenten die beschrijvende inhoud bevatten, zien de meeste voordelen van semantische classificatiemogelijkheden.

De onderliggende technologie is afkomstig van Bing en Microsoft Research en is geïntegreerd in de Azure AI Search-infrastructuur als een invoegtoepassingsfunctie. Zie Hoe AI van Bing azure AI Search (Microsoft Research Blog) aanstuurt voor meer informatie over onderzoek en AI-investeringen die semantische rangschikkingen maken.

De volgende video biedt een overzicht van de mogelijkheden.

Beschikbaarheid en prijzen

Semantische ranker is beschikbaar voor zoekservices in de Basic- en hogere lagen, afhankelijk van regionale beschikbaarheid.

Wanneer u semantische rangschikking inschakelt, kiest u een prijsplan voor de functie:

  • Bij lagere queryvolumes (minder dan 1000 maandelijks) is semantische classificatie gratis.
  • Kies bij hogere queryvolumes het standaardprijsplan.

Op de pagina met prijzen voor Azure AI Search ziet u het factureringstarief voor verschillende valuta's en intervallen.

Kosten voor semantische rangschikking worden in rekening gebracht wanneer queryaanvragen zijn opgenomen queryType=semantic en de zoekreeks niet leeg is (bijvoorbeeld search=pet friendly hotels in New York). Als uw zoekreeks leeg is (search=*), worden er geen kosten in rekening gebracht, zelfs niet als het queryType is ingesteld op semantisch.

Zie ook