Hybridní vyhledávání s využitím vektorů a fulltextu ve službě Azure AI Search

Hybridní vyhledávání je kombinace fulltextových a vektorových dotazů, které se spouštějí na indexu vyhledávání, který obsahuje prohledávatelný obsah prostého textu a generované vkládání. Pro účely dotazů je hybridní vyhledávání:

  • Jeden požadavek na dotaz, který obsahuje parametry search dotazu i vectors parametry dotazu
  • Paralelní provádění
  • Se sloučenými výsledky v odpovědi na dotaz se skóre pomocí reciproční Rank Fusion (RRF)

Tento článek vysvětluje koncepty, výhody a omezení hybridního vyhledávání. Podívejte se na toto vložené video s vysvětlením a krátkými ukázkami toho, jak hybridní načítání přispívá k vysoce kvalitním chatovacím a kopírovacím aplikacím.

Jak funguje hybridní vyhledávání?

Ve službě Azure AI Search můžou vektorová pole obsahující vkládání žít vedle textových a číselných polí, což umožňuje formulovat hybridní dotazy, které se provádějí paralelně. Hybridní dotazy můžou využívat stávající funkce, jako je filtrování, fasetování, řazení, bodovací profily a sémantické řazení v jediné žádosti o vyhledávání.

Hybridní vyhledávání kombinuje výsledky z fulltextových i vektorových dotazů, které používají různé funkce řazení, jako jsou BM25, HNSW a EKNN. Reciproční algoritmus Rank Fusion (RRF) sloučí výsledky. Odpověď dotazu poskytuje pouze jednu sadu výsledků s použitím RRF k seřazení sjednocených výsledků.

Struktura hybridního dotazu

Hybridní vyhledávání je predikované na tom, že má vyhledávací index, který obsahuje pole různých datových typů, včetně prostého textu a čísel, geografické souřadnice, pokud chcete geoprostorové vyhledávání a vektory pro matematickou reprezentaci bloku textu. Ve službě Azure AI Search můžete použít téměř všechny možnosti dotazů s vektorovým dotazem, s výjimkou interakcí na straně klienta s čistým textem, jako jsou automatické dokončování a návrhy.

Reprezentativní hybridní dotaz může vypadat následovně (všimněte si, že vektorové dotazy mají zástupné hodnoty pro stručnost):

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2024-07-01
  content-type: application/JSON
{
    "count": true,
    "search": "historic hotel walk to restaurants and shopping",
    "select": "HotelId, HotelName, Category, Description, Address/City, Address/StateProvince",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"], 
    "vectors": [
        {
            "value": [ <array of embeddings> ]
            "k": 7,
            "fields": "DescriptionVector"
        },
        {
            "value": [ <array of embeddings> ]
            "k": 7,
            "fields": "Description_frVector"
        }
    ],
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config"
}

Mezi klíčové body patří:

  • search určuje jeden fulltextový vyhledávací dotaz.
  • vectors pro vektorové dotazy, které můžou být více zaměřené na více vektorových polí. Pokud vložený prostor obsahuje vícejazyčný obsah, vektorové dotazy můžou najít shodu bez analyzátorů jazyka nebo překladu.
  • select určuje, která pole mají být vrácena ve výsledcích, což by měla být textová pole, která jsou čitelná pro člověka.
  • filters může určit geoprostorové vyhledávání nebo jiná kritéria zahrnutí a vyloučení, například zda je zahrnuto parkoviště. Geoprostorový dotaz v tomto příkladu najde hotely v okruhu 300 kilometrů od WashingtonU D.C.
  • facets lze použít k výpočtu kontejnerů omezujících vlastnost nad výsledky, které se vrací z hybridních dotazů.
  • queryType=semantic vyvolá sémantický ranker, který používá porozumění strojovému čtení k zobrazení relevantnějších výsledků hledání. Sémantické řazení je volitelné. Pokud tuto funkci nepoužíváte, odeberte poslední tři řádky hybridního dotazu.

Filtry a omezující vlastnosti cílová datová struktura v indexu, které se liší od invertovaných indexů používaných pro fulltextové vyhledávání a vektorové indexy používané pro vektorové vyhledávání. Když se například spustí filtry a fasetové operace, může vyhledávací modul v odpovědi použít provozní výsledek na výsledky hybridního hledání.

Všimněte si, že v dotazu není žádná orderby . Explicitní pořadí řazení přepisují výsledky seřazené podle relevance, takže pokud chcete mít podobnost a relevance BM25, vynecháte řazení v dotazu.

Odpověď z výše uvedeného dotazu může vypadat takto:

{
    "@odata.count": 3,
    "@search.facets": {
        "Address/StateProvince": [
            {
                "count": 1,
                "value": "NY"
            },
            {
                "count": 1,
                "value": "VA"
            }
        ]
    },
    "value": [
        {
            "@search.score": 0.03333333507180214,
            "@search.rerankerScore": 2.5229012966156006,
            "HotelId": "49",
            "HotelName": "Swirling Currents Hotel",
            "Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center.",
            "Category": "Luxury",
            "Address": {
                "City": "Arlington",
                "StateProvince": "VA"
            }
        },
        {
            "@search.score": 0.032522473484277725,
            "@search.rerankerScore": 2.111117362976074,
            "HotelId": "48",
            "HotelName": "Nordick's Valley Motel",
            "Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer.  Hiking? Wine Tasting? Exploring the caverns?  It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley.",
            "Category": "Boutique",
            "Address": {
                "City": "Washington D.C.",
                "StateProvince": null
            }
        }
    ]
}

Hybridní vyhledávání kombinuje silné stránky vektorového vyhledávání a hledání klíčových slov. Výhodou vektorového vyhledávání je hledání informací, které jsou koncepčně podobné vašemu vyhledávacímu dotazu, i když v invertovaném indexu neexistují žádné shody klíčových slov. Výhodou klíčového slova nebo fulltextového vyhledávání je přesnost s možností použít volitelné sémantické řazení, které zlepšuje kvalitu počátečních výsledků. Některé scénáře, jako je dotazování na kódy produktů, vysoce specializované žargon, data a jména lidí, můžou s hledáním klíčových slov lépe fungovat, protože dokáže identifikovat přesné shody.

Testování srovnávacích testů u datových sad reálného světa a srovnávacích testů značí, že hybridní načítání sémantickým rankerem nabízí významné výhody v relevance vyhledávání.

Následující video vysvětluje, jak hybridní načítání poskytuje optimální základní data pro generování užitečných odpovědí umělé inteligence.

Viz také

Outperform vector search with hybrid retrieval and ranking (Tech blog)