Uudelleenjärjestäminen ristiinkoodereilla
Hakekaa edullisilla upotuksilla 50 parasta tulosta ja järjestäkää sitten viisi parasta uudelleen hitaammalla ristiinkooderilla paremman tarkkuuden saavuttamiseksi.
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:
- Bi-encoder hakee 50 parasta ehdokasta nopeasti
- Cross-encoder järjestää ne uudelleen ja valitsee 5 parasta
- 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.
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
- Uudelleenjärjestäminen ristiinkoodereilla
- HyDE: hypoteettiset dokumenttiupotukset
- Monivektorihaku (ColBERT)
- RAG:n arviointi (RAGAS, Recall@K)