Sdílet prostřednictvím


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í proti indexu vyhledávání, který obsahuje prohledávatelný obsah prostého textu i 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 je BM25 a HNSW. Reciproční algoritmus Rank Fusion (RRF) sloučí výsledky. Odpověď dotazu poskytuje pouze jednu sadu výsledků, pomocí RRF vyberte z každého dotazu nejrelevavantnější shody.

Struktura hybridního dotazu

Hybridní vyhledávání je predikované na to, že má vyhledávací index, který obsahuje pole různých datových typů, včetně prostého textu a čísel, geografické souřadnice pro geoprostorové vyhledávání a vektory pro matematickou reprezentaci bloku textu. V 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, jako jsou automatické dokončování a návrhy.

Reprezentativní hybridní dotaz může vypadat následovně (všimněte si, že vektor je oříznut pro stručnost):

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2023-11-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 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ž může 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ává sémantické řazení a používá porozumění strojovému čtení k zobrazení relevantnějších výsledků hledání.

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": "Old Carrabelle 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 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 sémantické hodnocení, 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ů na reálných datových sadách a datových sad srovnávacích testů značí, že hybridní načítání s sémantickým řazením nabízí významné výhody v oblasti 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)