Jednostka 4 / 11

Strategie odzyskiwania: Top-k, Hybrid, Re-ranking

Zyski:

  • Wdrożenie wyszukiwania hybrydowego, które łączy wybór górnego k oraz wyszukiwanie semantyczne i słowa kluczowe
  • Zwiększenie trafności pierwszego wyszukiwania dzięki ponownemu rankingu
  • Zwiększenie możliwości wyszukiwania trudnych pytań dzięki technikom takim jak transformacja zapytań i HyDE

Ładnie zniszczyłeś dokumenty i umieściłeś je w bazie danych wektorów. Teraz prawdziwa praca: pobieranie właściwych elementów, gdy użytkownik zadaje pytanie. Nazywa się to odzyskiwaniem i stanowi podstawę jakości RAG. Zapamiętaj frazę „Jakość wyszukiwania = jakość RAG”; To urządzenie jest prawdziwą sztuką poprawy tej jakości. Omówimy praktyczne techniki, od wyboru top-k po wyszukiwanie hybrydowe, od ponownego rankingu po transformację zapytań.

Top-k: Ile sztuk przyniesiemy?

Najbardziej podstawowe ustawienie: ile sztuk (k) zwrócić z wyszukiwania. Jeśli przyniesiesz mniej (k=1), istnieje duże ryzyko, że przegapisz właściwy element; Jeśli dodasz za dużo (k=20), spowoduje to dodanie szumu do modelu i koszt tokena wzrośnie.

Rozróżnij dwa pojęcia. Przypomnienie: tempo, w jakim właściwy element znajduje się wśród odzyskanych. Precyzja: tempo, w jakim to, co jest pobierane, jest istotne. Zwiększanie k zwiększa przywołanie, ale zmniejsza precyzję. Celem jest zrównoważenie obu.

góra-k

Wpływ

odpowiednia sytuacja

1-3

Wysoka precyzja, ryzyko chybienia

Proste pytania z jedną odpowiedzią

4-8

Równowaga; większość scenariuszy

Ogólne korporacyjne RAG

10-20

Wyższe przywołanie powoduje wzrost hałasu

Z ponownym rankingiem (poniżej)

Wskazówka: powszechny i ​​skuteczny wzorzec: pobierz szeroko (k=20), a następnie zawęź z ponownym rankingiem (górne 4). W ten sposób niczego nie przeoczysz i nadasz modelowi czysty kontekst.

Wyszukiwanie hybrydowe: siła dwóch wyszukiwań

Wyszukiwanie semantyczne (wektorowe) przechwytuje znaczenie, ale pomija takie rzeczy: pełny kod produktu („XR-4471”), rzadki skrót, nazwę własną, numer wersji. W przypadku zadań związanych z dopasowaniem ścisłym bardzo dobrze sprawdza się tradycyjne wyszukiwanie słów kluczowych — zwłaszcza klasyczny algorytm o nazwie BM25.

Wyszukiwanie hybrydowe łączy w sobie jedno i drugie: działa zarówno wyszukiwanie semantyczne, jak i wyszukiwanie słów kluczowych, łącząc wyniki. Tym samym w pytaniu typu „Okres gwarancji

Łączenie odbywa się zwykle za pomocą RRF (Reciprocal Rank Fusion): utwór znajdujący się wyżej na obu listach pojawia się wyżej.

# Pobieranie hybrydowe (koncepcyjne)sem = wektor_wyszukiwanie(pytanie, k=20) # klucz znaczenia = bm25_search(pytanie, k=20) # fullwordresult = rrf_merge(sem, klucz)[:8] # połącz dwa, górne 8

Zmiana rankingu: druga i mądrzejsza przepustka

Pierwsza rozmowa może być szybka, ale niegrzeczna. W ramach ponownego rankingu kandydaci zwróceni w pierwszym wyszukiwaniu oceniani są jeden po drugim za pomocą mocniejszego modelu (zwykle cross-enkodera — modelu, który odczytuje pytanie i fragment razem oraz ocenia trafność) i przenosi najbardziej odpowiednich na górę.

Logika jest następująca: w pierwszym wyszukiwaniu przydzielana jest duża liczba kandydatów do przypomnienia (20 kandydatów), osoba dokonująca ponownego rankingu wybiera 4 najlepszych pod względem precyzji. To dwuetapowe podejście jest znacznie dokładniejsze niż wyszukiwanie jednoetapowe. Kosztuje to pewne opóźnienie i dodatkowe przetwarzanie; Zyskiem jest znaczny wzrost jakości.

# Dwuetapowe wyszukiwanie (koncepcyjnych)kandydatów = hybrid_search(pytanie, k=20) # broad, Quickscore = reranker.score(pytanie, kandydaci) # Wynik trafności dla każdego kontekstu kandydata = rating.rank()[:4] # top 4

Przekształcanie zapytania

Czasami problem nie leży w wyszukiwaniu, ale w samym pytaniu. Jeśli użytkownik zapyta „a co z pracownikami zdalnymi?” ”, nie można tego szukać samodzielnie (nie jest jasne, co dotyczy pracowników zdalnych). Oto techniki transformacji zapytań:

  • Przepisz: Użyj historii rozmów, aby zadać pytanie osobno: „Jaki pracownicy zdalni są uprawnieni do corocznego urlopu?”
  • Wiele zapytań: wygeneruj 3 różne wyrażenia tego samego pytania, wyszukaj je wszystkie, połącz wyniki. Różne słowa znajdują różne elementy.
  • HyDE (Hipotetyczne osadzanie dokumentów): Najpierw wydrukuj „możliwą odpowiedź” do modelu, a następnie osadź i wyszukaj tę wyimaginowaną odpowiedź. Wyimaginowana odpowiedź czasami okazuje się lepsza, ponieważ słowami jest bliższa prawdziwemu dokumentowi.

# Warianty (pojęciowe) z wieloma zapytaniami = model.uret("Wyraź to pytanie na 3 różne sposoby: " + pytanie)tum_sonuc = []dla v w wariantach: all_sonuc += wektor_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]

Słabe odzyskiwanie/silne odzyskiwanie

Słabe (jednostopniowe, tylko semantyka, stała k=3):

wynik = wektor_wyszukiwanie(pytanie, k=3)# Problem: brak kodu produktu, w przypadku trudnych pytań nie można wprowadzić poprawnej części 3.

Potężny (hybryda + widek + ponowny ranking + wiele zapytań, jeśli to konieczne):

Candidate = hybrid_search(rewrite(pytanie, przeszłość), k=20)context = reranker.score(pytanie, kandydaci).first(4)# Przechwytywane są zarówno dokładne dopasowanie, jak i znaczenie; Trafia do 4 najlepszych modeli.

Trzy mini etui

Przypadek 1 — Uciekł kod produktu. Czyste wyszukiwanie semantyczne w zespole wsparcia nie pozwoliło znaleźć dosłownie słowa „RTX-9080” w pytaniu „Błąd sterownika RTX-9080”; Przywiózł inne produkty o podobnych nazwach. Po dodaniu wyszukiwania hybrydowego nastąpiło dokładne dopasowanie kodu, a odsetek zwracanych prawidłowych artykułów wzrósł z 58% do 92%.

Przypadek 2 – Różnica w ponownym rankingu. Asystent prawny pracował z k=5, ale w większości przypadków prawidłowa pozycja to 7-10. Pozostał w szeregach. Po wprowadzeniu rerankingu k=20 + odsetek znalezienia się prawidłowego artykułu w pierwszej trójce wzrósł z 61% do 94%; Opóźnienie zwiększone jedynie o 300 ms — akceptowalny kompromis.

Przypadek 3 – Pytanie uzupełniające bez kontekstu. W asystencie HR użytkownik pyta „a co z pracownikami zatrudnionymi na pół etatu?” Kiedy zapytałem, system przyniósł nieistotne części. Przepisując zapytanie (wyciągając kontekst „urlopu corocznego” z przeszłości i dodając „Pracownicy zatrudnieni w niepełnym wymiarze czasu pracy mają prawo do urlopu corocznego”), odsetek prawidłowych odpowiedzi wzrósł z 40% do 86%.

Typowe błędy

  • Opierając się wyłącznie na wyszukiwaniu semantycznym: brakuje kodu produktu, skrótu, nazwy własnej; Dodaj hybrydę.
  • Utrzymywanie k za małego: właściwy element nie może zostać umieszczony na liście; poszerzaj i zawężaj, zmieniając rangę.
  • Nigdy nie myśl o zmianie rankingu: pierwsze wyszukiwanie jest niegrzeczne; Drugie inteligentne przejście znacznie poprawia jakość.
  • Wyszukiwanie pytań uzupełniających w niezmienionej postaci: Pytanie bez kontekstu szuka informacji bez znaczenia; przepisać.
  • Ślepe zwiększanie k (bez ponownej rangi): Model jest wypełniony szumem, odpowiedź jest zniekształcona, a koszt wzrasta.
Uwaga: każda technika zwiększa koszty i opóźnienia. Multi-zapytanie oznacza potrójne wyszukiwanie, re-ranking oznacza dodatkowe wywołanie modelu. Zacznij od prostej hybrydy + najpierw rozsądne k; Zmierz i dodaj ciężkie techniki tam, gdzie jest to naprawdę potrzebne. Dodawanie bez mierzenia.

Podsumowując

  • Top-k to równowaga pomiędzy przypominaniem i precyzją; Generalnie 4-8 to dobry początek.
  • Wyszukiwanie hybrydowe łączy wyszukiwanie semantyczne z wyszukiwaniem według słów kluczowych (BM25); Odzyskuje dokładne dopasowania.
  • Ponowny ranking ponownie ocenia kandydatów z szerokiego wstępnego wyszukiwania za pomocą solidnego modelu i wybiera najlepszych.
  • Transformacja zapytań (przepisywanie, wielokrotne zapytania, HyDE) umożliwia przeszukiwanie trudnych i bezkontekstowych pytań.
  • Silny wzorzec: szerokie pobieranie → połączenie z hybrydą → zawężenie z ponownym uszeregowaniem; ale dodaj każdą technikę, mierząc ją.

Zadanie aplikacji

Przygotuj 6 trudnych pytań z danymi z poprzednich jednostek: co najmniej 2 wymagające dokładnego dopasowania (kod produktu, skrót, data), 2 semantyczne (ten sam temat z innymi słowami), 2 pytania uzupełniające bez kontekstu. (1) Najpierw pomyśl o każdym pytaniu jak o wyszukiwaniu semantycznym i ręcznie zaznacz, które części się pojawią. (2) Dokonaj ponownej oceny tych samych pytań, dodając hybrydę i zmianę rankingu. (3) Przepisz pytania uzupełniające bez kontekstu. Zanotuj w formie tabelarycznej, która technika ma wpływ na rodzaj pytania.

lista kontrolna

  • [ ] Wiem, że top-k to równowaga z precyzją przywoływania i rozsądny zakres początkowy.
  • [ ] Potrafię wyjaśnić, dlaczego wyszukiwanie hybrydowe pozwala uzyskać dokładne dopasowania.
  • [ ] Potrafię zastosować dwuetapową logikę ponownego rankingu (szeroki → inteligentny wąski).
  • [ ] Uznaję potrzebę przepisania pytań uzupełniających bez kontekstu.
  • [ ] Potwierdzam, że dodałem ciężkie techniki mierząc, a nie mierząc.