Tekoälyagentit · Oppitunti

Uudelleenjärjestäminen ristiinkoodereilla

Hakekaa edullisilla upotuksilla 50 parasta tulosta ja järjestäkää sitten viisi parasta uudelleen hitaammalla ristiinkooderilla paremman tarkkuuden saavuttamiseksi.

Oppitunti 1/414 vaihetta

Uudelleenjärjestäminen ristiinkoodereilla on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Osaa tämän oppitunnin sisällöstä ei ole vielä käännetty, joten se näytetään englanniksi.

Miksi tulokset järjestetään uudelleen?

Embedding-samankaltaisuus on nopea ja karkea ensimmäinen vaihe. Se tuo usein mukaan katkelmia, joissa on kyselyn kanssa yhteisiä AVAINSANOJA mutta jotka eivät tosiasiassa liity KYSYMYKSEEN.

Uudelleenjärjestäjä ottaa (query, chunk) -pareja ja laskee niille paljon tarkemman relevanssipisteytyksen.

Bi-encoder ja cross-encoder

Tekstin samankaltaisuuden kaksi arkkitehtuuria:

  • Bi-encoder — muodostaa kyselystä ja katkelmasta embeddingin erikseen ja laskee kosinin. Nopea, koska vektori muodostetaan kerran ja sitä voidaan käyttää uudelleen, mutta epätarkempi.
  • Cross-encoder — käsittelee (query, chunk) -parin yhdessä mallin läpi. Hidas, koska käsittely tehdään jokaiselle parille, mutta paljon tarkempi.

Kaksivaiheinen haku

Malli, jossa nämä yhdistetään:

  1. Bi-encoder hakee 50 parasta ehdokasta nopeasti
  2. Cross-encoder järjestää ne uudelleen ja valitsee 5 parasta
  3. Viisi parasta lisätään LLM:n kehotteeseen

Saatte bi-encoderin nopeuden ja cross-encoderin tarkkuuden.

Cohere Rerankin käyttäminen

Helpoimmin tuotantokäyttöön sopiva cross-encoder:

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

Avoimen lähdekoodin uudelleenjärjestäjät

BGE Reranker on johtava OSS-vaihtoehto:

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
)

Milloin uudelleenjärjestäminen auttaa

  • Pitkät ehdokaslistat (50–200)
  • Hienovaraiset erot relevanssissa
  • Kyselyt, jotka sisältävät kieltoja tai vertailuja
  • Monikieliset tapaukset

Milloin siitä ei ole hyötyä

  • Valmiiksi suppeat ehdokasjoukot, kuten bi-encoderin viisi parasta
  • Viivekriittiset kyselyt, joissa panokset ovat pienet

Kustannusten ja hyödyn kompromissi

Cross-encoderit suorittavat päättelyn jokaiselle parille. 50 ehdokkaan uudelleenjärjestäminen tarkoittaa 50:tä mallikutsua. Cohere- ja Voyage-palveluilla se on edullista, mutta itse ylläpidettynä hitaampaa.

Varatkaa uudelleenjärjestämiseen 50–200 ehdokasta; suurempi määrä on harvoin vaivan arvoinen.

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

Monimuotoisuustietoinen uudelleenjärjestäminen

Joskus haluatte monipuolisia tuloksia pelkkien korkeimman pistemäärän saaneiden sijaan, sillä parhaat tulokset voivat olla lähes identtisiä. MMR (Maximal Marginal Relevance) tasapainottaa pistemäärää ja monimuotoisuutta:

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

Kaksivaiheinen malli

Miksi käyttää bi-encoderia ja cross-encoderia yhden sijaan?

Kertaus

Bi-encoder hakee 50 tulosta, ja cross-encoder järjestää ne uudelleen viideksi. Käyttäkää tuotannossa Coherea tai Voyagea ja itse ylläpidettäessä BGE OSS:ää. Tarkkuus paranee merkittävästi kohtuullisin lisäkustannuksin.

Aloita maksutta

Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
60
Oppitunnit
239

Usein kysytyt kysymykset

Onko oppitunti ”Uudelleenjärjestäminen ristiinkoodereilla” ilmainen?

Kyllä – oppitunnin ”Uudelleenjärjestäminen ristiinkoodereilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Uudelleenjärjestäminen ristiinkoodereilla”?

Hakekaa edullisilla upotuksilla 50 parasta tulosta ja järjestäkää sitten viisi parasta uudelleen hitaammalla ristiinkooderilla paremman tarkkuuden saavuttamiseksi. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Uudelleenjärjestäminen ristiinkoodereilla”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?

Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Uudelleenjärjestäminen ristiinkoodereilla
  2. HyDE: hypoteettiset dokumenttiupotukset
  3. Monivektorihaku (ColBERT)
  4. RAG:n arviointi (RAGAS, Recall@K)
← Takaisin: Tekoälyagentit