Udostępnij za pośrednictwem


Wyszukiwanie hybrydowe przy użyciu wektorów i pełnego tekstu w usłudze Azure AI Search

Wyszukiwanie hybrydowe to kombinacja pełnotekstowych i wektorowych zapytań wykonywanych względem indeksu wyszukiwania zawierającego zarówno przeszukiwalną zawartość zwykłego tekstu, jak i wygenerowane osadzanie. Na potrzeby zapytań wyszukiwanie hybrydowe to:

  • Pojedyncze żądanie zapytania zawierające parametry zapytania i search vectors
  • Równoległe wykonywanie
  • Po scaleniu wyników w odpowiedzi zapytania wynik został obliczony przy użyciu wzajemnego łączenia rangi (RRF)

W tym artykule wyjaśniono pojęcia, korzyści i ograniczenia wyszukiwania hybrydowego. Obejrzyj to osadzone wideo , aby uzyskać wyjaśnienie i krótkie pokazy sposobu, w jaki pobieranie hybrydowe przyczynia się do wysokiej jakości aplikacji czatu i copilot.

Jak działa wyszukiwanie hybrydowe?

W usłudze Azure AI Search pola wektorowe zawierające osadzanie mogą żyć obok pól tekstowych i liczbowych, co umożliwia formułowanie zapytań hybrydowych wykonywanych równolegle. Zapytania hybrydowe mogą korzystać z istniejących funkcji, takich jak filtrowanie, tworzenie aspektów, sortowanie, ocenianie profilów i klasyfikacja semantyczna w jednym żądaniu wyszukiwania.

Wyszukiwanie hybrydowe łączy wyniki zarówno z pełnotekstowych, jak i wektorowych zapytań, które używają różnych funkcji klasyfikacji, takich jak BM25, HNSW i EKNN. Algorytm łączenia wzajemnego rangi (RRF) scala wyniki. Odpowiedź zapytania zawiera tylko jeden zestaw wyników, używając protokołu RRF do klasyfikacji ujednoliconych wyników.

Struktura zapytania hybrydowego

Wyszukiwanie hybrydowe jest oparte na indeksie wyszukiwania zawierającym pola różnych typów danych, w tym zwykły tekst i liczby, współrzędne geograficzne, jeśli chcesz przeszukiwać geoprzestrzenne, i wektory dla matematycznej reprezentacji fragmentu tekstu. Niemal wszystkie funkcje zapytań w usłudze Azure AI Search można używać z zapytaniem wektorowym, z wyjątkiem czystych interakcji po stronie klienta tekstu, takich jak autouzupełnianie i sugestie.

Reprezentatywne zapytanie hybrydowe może być następujące (zwróć uwagę, że zapytania wektorowe mają wartości symboli zastępczych dla zwięzłości):

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"
}

Kluczowe kwestie obejmują:

  • search określa jedno zapytanie wyszukiwania pełnotekstowego.
  • vectors w przypadku zapytań wektorowych, które mogą być wielokrotne, przeznaczone dla wielu pól wektorów. Jeśli miejsce osadzania zawiera zawartość wielojęzyczną, zapytania wektorowe mogą znaleźć dopasowanie bez analizatorów języka ani tłumaczenia.
  • select Określa, które pola mają być zwracane w wynikach, które powinny być polami tekstowymi, które są czytelne dla człowieka.
  • filters może określać wyszukiwanie geoprzestrzenne lub inne kryteria dołączania i wykluczania, takie jak to, czy parking jest dołączony. Zapytanie geoprzestrzenne w tym przykładzie znajduje hotele w promieniu 300 kilometrów od Waszyngtonu.
  • facets Może służyć do obliczania zasobników aspektów na wynikach zwracanych z zapytań hybrydowych.
  • queryType=semantic wywołuje semantyczny ranger, stosując zrozumienie odczytu maszyny w celu uwidocznienia bardziej odpowiednich wyników wyszukiwania. Klasyfikacja semantyczna jest opcjonalna. Jeśli nie używasz tej funkcji, usuń ostatnie trzy wiersze zapytania hybrydowego.

Filtry i aspekty dotyczą struktur danych w indeksie, które różnią się od odwróconych indeksów używanych do wyszukiwania pełnotekstowego i indeksów wektorów używanych do wyszukiwania wektorowego. W związku z tym, gdy filtry i operacje aspektowe są wykonywane, wyszukiwarka może zastosować wynik operacyjny do wyników wyszukiwania hybrydowego w odpowiedzi.

Zwróć uwagę, że w zapytaniu nie ma orderby żadnych informacji. Jawne zamówienia sortowania zastępują wyniki sklasyfikowane według istotności, więc jeśli chcesz uzyskać podobieństwo i istotność BM25, pomiń sortowanie w zapytaniu.

Odpowiedź z powyższego zapytania może wyglądać następująco:

{
    "@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
            }
        }
    ]
}

Wyszukiwanie hybrydowe łączy mocne strony wyszukiwania wektorów i wyszukiwania słów kluczowych. Zaletą wyszukiwania wektorowego jest znalezienie informacji, które są koncepcyjnie podobne do zapytania wyszukiwania, nawet jeśli w indeksie odwróconym nie ma pasujących słów kluczowych. Zaletą wyszukiwania słów kluczowych lub pełnotekstowych jest precyzja, dzięki czemu można zastosować opcjonalny semantyczny ranking, który poprawia jakość początkowych wyników. Niektóre scenariusze — takie jak wykonywanie zapytań dotyczących kodów produktów, wysoce wyspecjalizowanego żargonu, dat i nazwisk osób — może działać lepiej dzięki wyszukiwaniu słów kluczowych, ponieważ może identyfikować dokładne dopasowania.

Testy porównawcze na rzeczywistych i porównawczych zestawach danych wskazują, że pobieranie hybrydowe z semantycznym rankerem zapewnia znaczne korzyści w zakresie istotności wyszukiwania.

W poniższym filmie wideo wyjaśniono, jak pobieranie hybrydowe zapewnia optymalne dane uziemione do generowania przydatnych odpowiedzi sztucznej inteligencji.

Zobacz też

Wyszukiwanie wektorów przewyższanych za pomocą hybrydowego pobierania i klasyfikowania (blog tech)