AI-agenter · Lektion

Omrangering med cross-encodere

Hent de 50 bedste med billige embeddings, og omrangér derefter de 5 bedste med en langsommere cross-encoder for højere præcision.

Lektion 1 af 414 trin

Omrangering med cross-encodere er en gratis AI-agenter-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i AI-agenter, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. AI-agenter-kurset indeholder 4 lektioner i alt.

Dele af denne lektion er endnu ikke oversat og vises på engelsk.

Hvorfor omrangere?

Embedding-lighed er et hurtigt, groft første trin. Det trækker ofte blokke ind, der deler NØGLEORD med forespørgslen, men som faktisk ikke er relevante for SPØRGSMÅLET.

En omrangerer tager par af (forespørgsel, blok) og beregner en langt mere præcis relevansscore.

Bi-encoder kontra cross-encoder

To arkitekturer til tekstlighed:

  • Bi-encoder — laver embeddings af forespørgsel og blok separat og beregner cosinus. Hurtig (vektorisér én gang, genbrug), men mindre præcis.
  • Cross-encoder — kører (forespørgsel, blok) samlet gennem modellen. Langsom (pr. par), men langt mere præcis.

Hentning i to trin

Mønstret, der kombinerer dem:

  1. Bi-encoder henter hurtigt de 50 bedste kandidater
  2. Cross-encoder omrangerer dem til de 5 bedste
  3. De 5 bedste sendes ind i LLM-prompten

Du får bi-encoderens hastighed og cross-encoderens præcision.

Brug af Cohere Rerank

Den nemmeste cross-encoder til produktion:

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])

Open source-omrangerere

BGE Reranker er den førende open source-mulighed:

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
)

Når omrangering hjælper

  • Lange kandidatlister (50-200)
  • Nuancerede forskelle i relevans
  • Forespørgsler med benægtelse eller sammenligning
  • Flersprogede tilfælde

Når det ikke hjælper

  • Allerede snævre kandidatresultater (de 5 bedste fra bi-encoder)
  • Forespørgsler, hvor svartid er kritisk, men konsekvenserne er små

Omkostningsafvejning

Cross-encodere kører en inferens pr. par. Omrangering af 50 kandidater er 50 modelkald (billigt med Cohere/Voyage, langsommere ved selvhosting).

Afsæt 50-200 kandidater til omrangering; flere kan sjældent betale sig.

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]
)

Omrangering med fokus på mangfoldighed

Nogle gange vil du have mangfoldige resultater, ikke kun dem med den højeste score (som kan være næsten identiske). MMR (Maximal Marginal Relevance) afvejer score mod mangfoldighed:

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

Mønster i to trin

Hvorfor bruge bi-encoder + cross-encoder i stedet for kun én?

Opsummering

Bi-encoder henter 50, og cross-encoder omrangerer dem til 5. Brug Cohere eller Voyage i produktion; BGE OSS ved selvhosting. En markant forbedring af nøjagtigheden til moderate ekstra omkostninger.

Gratis at komme i gang

Lær AI-agenter med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
60
Lektioner
239

Ofte stillede spørgsmål

Er lektionen “Omrangering med cross-encodere” gratis?

Ja — hele teksten til “Omrangering med cross-encodere” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af AI-agenter-kurset, skal du opgradere til CoddyKit PRO. AI-agenter-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Omrangering med cross-encodere”?

Hent de 50 bedste med billige embeddings, og omrangér derefter de 5 bedste med en langsommere cross-encoder for højere præcision. Du øver dig i AI-agenter med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på AI-agenter?

Der kræves ingen tidligere erfaring. AI-agenter på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Omrangering med cross-encodere”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne AI-agenter-lektion?

Ja. Alle AI-agenter-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Omrangering med cross-encodere
  2. HyDE: Hypotetiske dokumentembeddings
  3. Multivektorsøgning (ColBERT)
  4. RAG-evaluering (RAGAS, Recall@K)
← Tilbage til AI-agenter