Ik begreep eindelijk waarom re-rankers zo krachtig zijn, toen ik het belangrijkste verschil tussen bi- en cross-encoders doorhad. Ik vond bovendien een manier om hun krachten te combineren met behulp van een uniforme architectuur. Laat me het uitleggen: RAG is 80% retrieval en 20% generatie. Dus als RAG niet werkt, is het hoogstwaarschijnlijk een retrievalprobleem. Dat is precies waarom het zo belangrijk is om je retrievalarchitectuur goed te krijgen - en het begint met het begrijpen van deze twee (eigenlijk drie) encoderbenaderingen. (verwijs naar de afbeelding hieronder terwijl je leest) 1️⃣ Bi-encoders Bi-encoders (de ruggengraat van vectorzoekopdrachten) verwerken queries en documenten afzonderlijk. - Documentembeddings worden vooraf berekend - Query wordt op zoekmoment ingebed Dit maakt bi-encoders perfect voor initiële retrieval: - extreem snel - werkt op grote schaal - mist belangrijke contextuele informatie 2️⃣ Cross-encoders Cross-encoders nemen een totaal andere benadering voor re-ranking. Ze verwerken de query en elk document als een enkele eenheid. - Combineer query met document ([CLS] Query [SEP] Document [SEP]) - Loop samen door het model voor volledige cross-attentie Dit maakt cross-encoders ideaal voor de tweede fase: - vangt semantische relaties voor betere nauwkeurigheid - maar veel langzamer en resource-intensief voor grote collecties Wat als we nu het beste van beide werelden kunnen combineren! 3️⃣ ColBERT ColBERT brengt de kracht van cross-encoders en de schaalbaarheid van bi-encoders samen. - Encodeer queries en documenten afzonderlijk - Maak een interactiematrix met gelijkeniscores tussen alle query-document tokenparen - Neem de maximale score voor elke query-token over documenttokens - Sommeer de maximale scores voor de uiteindelijke matching score _____ Dat is een wrap! Als je het inzichtelijk vond, deel het dan opnieuw met je netwerk. Vind me → @akshay_pachaar ✔️ Voor meer inzichten en tutorials over LLM's, AI Agents en Machine Learning!
46,68K