Finalmente ho capito perché i re-ranker sono così potenti una volta compresa la differenza chiave tra bi- e cross-encoder. Ho anche trovato un modo per combinare i loro poteri utilizzando un'architettura unificata. Lasciami spiegare: RAG è composto per l'80% da recupero e per il 20% da generazione. Quindi, se RAG non funziona, è molto probabile che si tratti di un problema di recupero. Ecco perché è così importante avere l'architettura di recupero giusta - e tutto inizia con la comprensione di questi due (in realtà tre) approcci di codifica. (fai riferimento al visual qui sotto mentre leggi) 1️⃣ Bi-encoder I bi-encoder (il backbone della ricerca vettoriale) elaborano le query e i documenti separatamente. - Le embedding dei documenti sono pre-calcolate - La query viene incorporata al momento della ricerca Questo rende i bi-encoder perfetti per il recupero iniziale: - estremamente veloci - funzionano su larga scala - mancano di informazioni contestuali importanti 2️⃣ Cross-encoder I cross-encoder adottano un approccio completamente diverso per il re-ranking. Elaborano la query e ciascun documento come un'unità singola. - Combinano la query con il documento ([CLS] Query [SEP] Documento [SEP]) - Vengono elaborati insieme attraverso il modello per una piena cross-attention Questo rende i cross-encoder ideali per la seconda fase: - catturano relazioni semantiche per una maggiore accuratezza - ma sono molto più lenti e richiedono molte risorse per grandi collezioni Ora, e se potessimo combinare il meglio di entrambi i mondi! 3️⃣ ColBERT ColBERT unisce il potere dei cross-encoder e la scalabilità dei bi-encoder. - Codifica separatamente query e documenti - Crea una matrice di interazione con punteggi di similarità tra tutte le coppie di token query-documento - Prende il punteggio massimo per ciascun token di query tra i token di documento - Somma i punteggi massimi per il punteggio finale di corrispondenza _____ È tutto! Se lo hai trovato interessante, condividilo con la tua rete. Trova me → @akshay_pachaar ✔️ Per ulteriori approfondimenti e tutorial su LLM, AI Agents e Machine Learning!
46,68K