Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Note
Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.
Wzajemne łączenie rangi (RRF) to algorytm, który ocenia wyniki wyszukiwania z wielu wcześniej sklasyfikowanych wyników w celu utworzenia jednego, ujednoliconego zestawu wyników. W Wyszukiwanie AI platformy Azure RRF jest używany, gdy co najmniej dwa zapytania są wykonywane równolegle, takie jak zapytania hybrydowe i wiele zapytań wektorowych. Każde pojedyncze zapytanie tworzy sklasyfikowany zestaw wyników, a RRF scala i homogenizuje te klasyfikacje w jeden zestaw wyników dla odpowiedzi zapytania.
RRF opiera się na koncepcji wzajemnej rangi, która jest odwrotnością rangi pierwszego odpowiedniego dokumentu na liście wyników wyszukiwania. Celem techniki jest uwzględnienie pozycji elementów w oryginalnych rankingach i nadanie większej ważności elementom, które są klasyfikowane wyżej na wielu listach. Takie podejście może pomóc poprawić ogólną jakość i niezawodność końcowego rankingu, dzięki czemu jest bardziej przydatne w zadaniu łączenia wielu uporządkowanych wyników wyszukiwania.
Jak działa klasyfikacja RRF
Funkcja RRF działa przez pobranie wyników wyszukiwania z wielu metod, przypisanie wzajemnego wyniku klasyfikacji do każdego dokumentu w wynikach, a następnie połączenie wyników w celu utworzenia nowego rankingu. Koncepcja polega na tym, że dokumenty pojawiające się na pierwszych pozycjach w wielu metodach wyszukiwania prawdopodobnie będą bardziej istotne i powinny zostać sklasyfikowane wyżej w połączonym wyniku.
Oto proste wyjaśnienie procesu RRF:
Pobieranie wyników wyszukiwania sklasyfikowanych z wielu zapytań uruchomionych równolegle.
Przypisz wzajemne wyniki klasyfikacji dla wyników na każdej z list sklasyfikowanych. Funkcja RRF generuje nowe
@search.scoredla każdego dopasowania w każdym zestawie wyników. Dla każdego dokumentu w wynikach wyszukiwania aparat przypisuje wynik wzajemnej rangi na podstawie jego pozycji na liście. Wynik jest obliczany jako1/(rank + k), gdzierankjest pozycją dokumentu na liście ikjest stałą. Eksperymenty pokazują, że algorytm działa najlepiej po ustawieniukmałej wartości, takiej jak 60. Takwartość jest stałą w algorytmie RRF i całkowicie oddzielona odktej, która kontroluje liczbę najbliższych sąsiadów.Połącz wyniki. Dla każdego dokumentu aparat sumuje wzajemne wyniki klasyfikacji uzyskane z każdego systemu wyszukiwania, generując łączny wynik dla każdego dokumentu.
Aparat klasyfikuje dokumenty na podstawie połączonych wyników i sortuje je. Wynikowa lista jest rankingem połączonym.
Do oceniania są używane tylko pola oznaczone jako searchable w indeksie lub searchFields w zapytaniu. Tylko pola oznaczone jako retrievablelub określone w select zapytaniu są zwracane w wynikach wyszukiwania wraz z ich wynikiem wyszukiwania.
Równoległe wykonywanie zapytań
RRF jest używany w dowolnym momencie, gdy istnieje więcej niż jedno wykonanie zapytania. W poniższych przykładach przedstawiono wzorce zapytań, w których odbywa się równoległe wykonywanie zapytań:
- Zapytanie pełnotekstowe oraz jedno zapytanie wektorowe (prosty scenariusz hybrydowy) równa się dwóm wykonaniom zapytań.
- Zapytanie pełnotekstowe, a także jedno zapytanie wektorowe przeznaczone dla dwóch pól wektorów, równa się trzy wykonania zapytania.
- Zapytanie pełnotekstowe oraz dwa zapytania wektorowe przeznaczone dla pięciu pól wektorów są równe 11 wykonań zapytań.
Punktacja w wynikach wyszukiwania hybrydowego
Za każdym razem, gdy wyniki są klasyfikowane, @search.score właściwość zawiera wartość używaną do zamawiania wyników. Wyniki są generowane przez algorytmy klasyfikacji, które różnią się w zależności od każdej metody. Każdy algorytm ma swój własny zakres i wielkość.
W poniższej tabeli przedstawiono właściwość oceniania zwracaną dla każdego dopasowania, algorytmu i zakresu wyników dla każdego algorytmu klasyfikacji istotności. Aby uzyskać więcej informacji oraz diagram procesu oceniania wyników, zobacz Istotność w usłudze Wyszukiwanie AI platformy Azure.
| Metoda wyszukiwania | Parameter | Algorytm oceniania | Range |
|---|---|---|---|
| wyszukiwanie pełnotekstowe | @search.score |
Algorytm BM25 | Brak górnego limitu. |
| wyszukiwanie wektorowe | @search.score |
Algorytm HNSW korzystający z metryki podobieństwa określonej w konfiguracji HNSW. | 0,333 – 1,00 (Cosine), od 0 do 1 dla euklidesanów i dotproduct. |
| wyszukiwanie hybrydowe | @search.score |
Algorytm RRF | Górna granica jest ograniczona przez liczbę połączonych zapytań, a każde zapytanie wnosi maksymalnie 1/k do wyniku RRF (jest to parametr k w algorytmie RRF, a nie zapytanie wektorowe). Na przykład scalanie trzech zapytań generuje wyższe wyniki RRF niż w przypadku scalenia tylko dwóch wyników wyszukiwania. |
| klasyfikacja semantyczna | @search.rerankerScore |
Ranking semantyczny | 0.00 - 4.00 |
Klasyfikacja semantyczna występuje po scaleniu wyników za pomocą protokołu RRF. Jego wynik (@search.rerankerScore) jest zawsze zgłaszany oddzielnie w odpowiedzi na zapytanie. Klasyfikator semantyczny może ponownie klasyfikować wyniki wyszukiwania pełnotekstowego i hybrydowego, pod warunkiem że wyniki te zawierają pola z bogatą semantycznie treścią. Może ponownie klasyfikować czyste zapytania wektorowe, jeśli przeszukiwane dokumenty zawierają pola tekstowe z treścią istotną semantycznie.
Rozpakuj wynik wyszukiwania na podwyniki
Możesz zdekonstruować wynik wyszukiwania, aby wyświetlić jego podpunkty oceniania. W przypadku zapytań wektorowych te informacje mogą ułatwić określenie odpowiedniej wartości dla wagi wektorów lub ustawienia minimalnych progów.
Aby uzyskać podscores:
Użyj interfejsu API REST wyszukiwania dokumentów lub pakietu zestawu Azure SDK, który udostępnia tę funkcję.
Zmodyfikuj żądanie zapytania, dodając nowy
debugparametr ustawiony navector,semanticjeśli używasz semantycznego rangatora luball.
Oto przykład zapytania hybrydowego zwracającego wyniki cząstkowe w trybie debugowania:
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-04-01
{
"vectorQueries": [
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"exhaustive": true,
"k": 10
},
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"exhaustive": true,
"k": 10
}
],
"search": "historic hotel walk to restaurants and shopping",
"select": "HotelName, Description, Address/City",
"debug": "vector",
"top": 10
}
Wyniki ważone
Możesz również nadać zapytaniom wektorowym większe lub mniejsze znaczenie w zapytaniu hybrydowym.
Pamiętaj, że podczas przetwarzania RRF dla określonego dokumentu wyszukiwarka sprawdza rangę tego dokumentu dla każdego zestawu wyników, w którym jest on wyświetlany. Załóżmy, że dokument pojawia się w trzech oddzielnych wynikach wyszukiwania, przy czym wyniki te pochodzą z dwóch zapytań wektorowych i jednego zapytania tekstowego ocenianego metodą BM25. Pozycja dokumentu różni się w każdym wyniku.
| Znaleziono dopasowanie | Pozycja w wynikach | @search.score | mnożnik wagi | @search.score (ważone) |
|---|---|---|---|---|
| wyniki wektorowe 1 | pozycja 1 | 0.8383955 | 0.5 | 0.41919775 |
| wyniki wektorowe 2 | pozycja 5 | 0.81514114 | 2.0 | 1.63028228 |
| Wyniki BM25 | pozycja 10 | 0.8577363 | NA | 0.8577363 |
Pozycja dokumentu w każdym zestawie wyników odpowiada początkowemu wynikowi, który jest dodawany w celu utworzenia końcowego wyniku RRF dla tego dokumentu.
W przypadku dodania wagi wektorów początkowe wyniki podlegają mnożnikowi wagi, który zwiększa lub zmniejsza wynik. Wartość domyślna to 1,0, co oznacza, że nie ma wagi, a początkowy wynik jest używany w klasyfikacji RRF. Jednak jeśli dodasz wagę 0,5, wynik zostanie zmniejszony i wynik stanie się mniej ważny w połączonej klasyfikacji. Z kolei, jeśli dodasz wagę 2,0, wynik ma większy wpływ na ogólny wynik RRF.
W tym przykładzie @search.score wartości (ważone) przechodzą do modelu klasyfikacji RRF.
Liczba sklasyfikowanych wyników w odpowiedzi na zapytanie hybrydowe
Domyślnie, jeśli nie używasz stronicowania, silnik wyszukiwania zwraca top 50 najwyżej ocenianych dopasowań dla wyszukiwania pełnotekstowego i najbardziej podobnych k dopasowań do wyszukiwania wektorowego. W zapytaniu top hybrydowym określa liczbę wyników w odpowiedzi. W oparciu o wartości domyślne zwracane są 50 najlepiej sklasyfikowanych dopasowań ujednoliconego zestawu wyników.
Często wyszukiwarka znajduje więcej wyników niż top i k. Aby zwrócić więcej wyników, użyj parametrów topstronicowania , skipi next. Stronicowanie umożliwia określenie liczby wyników na każdej stronie logicznej i nawigowanie po całym zestawie danych. Możesz ustawić maxTextRecallSize na większe wartości (wartość domyślna to 1000), aby zwrócić więcej wyników po stronie tekstowej zapytania hybrydowego.
Domyślnie wyszukiwanie pełnotekstowe podlega maksymalnemu limitowi 1000 dopasowań (zobacz Limity odpowiedzi interfejsu API). Po znalezieniu 1000 dopasowań wyszukiwarka nie szuka już więcej.
Aby uzyskać więcej informacji, zobacz Jak pracować z wynikami wyszukiwania.