AI Agents · Lekcja

Ponowne szeregowanie za pomocą cross-encoderów

Pobierz 50 najlepszych wyników za pomocą tanich embeddingów, a następnie uszereguj ponownie 5 najlepszych wolniejszym cross-encoderem, aby zwiększyć precyzję.

Lekcja 1 z 414 kroki

Ponowne szeregowanie za pomocą cross-encoderów to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Dlaczego stosować reranking?

Podobieństwo embeddingów to szybki, zgrubny pierwszy etap. Często pobiera fragmenty, które mają z zapytaniem wspólne SŁOWA KLUCZOWE, ale w rzeczywistości nie są istotne dla PYTANIA.

Reranker przyjmuje pary (zapytanie, fragment) i oblicza znacznie dokładniejszy wynik trafności.

Bi-encoder a cross-encoder

Dwie architektury służące do obliczania podobieństwa tekstów:

  • Bi-encoder — osadza zapytanie i fragment osobno, a następnie oblicza cosinus. Jest szybki (wektoryzuje raz i ponownie wykorzystuje wynik), ale mniej dokładny.
  • Cross-encoder — przetwarza parę (zapytanie, fragment) wspólnie przez model. Jest wolny (osobno dla każdej pary), ale znacznie dokładniejszy.

Pobieranie dwuetapowe

Wzorzec, który je łączy:

  1. Bi-encoder szybko pobiera 50 najlepszych kandydatów
  2. Cross-encoder wykonuje reranking do 5 najlepszych
  3. 5 najlepszych trafia do promptu LLM

Zyskujemy szybkość bi-encodera i precyzję cross-encodera.

Reranking z Cohere

Najprostszy cross-encoder do zastosowań produkcyjnych:

import cohere
co = cohere.Client(COHERE_KEY)

results = co.rerank(
    model='rerank-multilingual-v3.0',
    query='What is the refund policy?',
    documents=top_50_chunks,
    top_n=5
)
for r in results.results:
    print(r.index, r.relevance_score, top_50_chunks[r.index])

Rerankery open source

BGE Reranker to czołowa opcja OSS:

from sentence_transformers import CrossEncoder
model = CrossEncoder('BAAI/bge-reranker-base')

pairs = [(query, chunk) for chunk in candidates]
scores = model.predict(pairs)
ranked = [c for _, c in sorted(zip(scores, candidates), reverse=True)][:5]

Voyage Rerank

import voyageai
vo = voyageai.Client(api_key=VOYAGE_KEY)
res = vo.rerank(
    query=query,
    documents=candidates,
    model='rerank-2',
    top_k=5
)

Kiedy reranking pomaga

  • Długie listy kandydatów (50–200)
  • Subtelne różnice w trafności
  • Zapytania zawierające negację lub porównanie
  • Przypadki wielojęzyczne

Kiedy nie pomaga

  • Już wąskie zestawy kandydatów (5 najlepszych z bi-encodera)
  • Zapytania o krytycznym znaczeniu opóźnienia i niskiej stawce

Kompromis kosztowy

Cross-encodery wykonują inferencję dla każdej pary. Reranking 50 kandydatów oznacza 50 wywołań modelu (tani w przypadku Cohere/Voyage, wolniejszy przy samodzielnym hostowaniu).

Na reranking należy przeznaczyć 50–200 kandydatów; większa liczba rzadko się opłaca.

Integrating into LangChain

from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import CohereRerank

compressor = CohereRerank(top_n=5)
retriever = ContextualCompressionRetriever(
    base_compressor=compressor,
    base_retriever=vector_retriever
)

Integrating into LlamaIndex

from llama_index.postprocessor.cohere_rerank import CohereRerank

rerank = CohereRerank(top_n=5)
query_engine = index.as_query_engine(
    similarity_top_k=20,
    node_postprocessors=[rerank]
)

Reranking uwzględniający różnorodność

Czasami potrzebne są różnorodne wyniki, a nie tylko te z najwyższą oceną, które mogą być niemal identyczne. MMR (Maximal Marginal Relevance) równoważy ocenę i różnorodność:

from langchain.vectorstores import Chroma
results = store.max_marginal_relevance_search(query, k=5, fetch_k=20, lambda_mult=0.5)

Wzorzec dwuetapowy

Dlaczego używać bi-encodera i cross-encodera zamiast tylko jednego z nich?

Podsumowanie

Bi-encoder pobiera 50 wyników, a cross-encoder wykonuje reranking do 5. W produkcji należy używać Cohere lub Voyage, a BGE OSS przy samodzielnym hostowaniu. Znaczna poprawa dokładności przy umiarkowanym wzroście kosztów.

Bezpłatny start

Ucz się AI Agents dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
60
Lekcje
239

Często zadawane pytania

Czy lekcja „Ponowne szeregowanie za pomocą cross-encoderów” jest bezpłatna?

Tak — pełny tekst „Ponowne szeregowanie za pomocą cross-encoderów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Ponowne szeregowanie za pomocą cross-encoderów”?

Pobierz 50 najlepszych wyników za pomocą tanich embeddingów, a następnie uszereguj ponownie 5 najlepszych wolniejszym cross-encoderem, aby zwiększyć precyzję. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Ponowne szeregowanie za pomocą cross-encoderów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Ponowne szeregowanie za pomocą cross-encoderów
  2. HyDE: embeddingi hipotetycznych dokumentów
  3. Wyszukiwanie wielowektorowe (ColBERT)
  4. Ocena RAG (RAGAS, Recall@K)
← Powrót do AI Agents