W końcu zrozumiałem, dlaczego re-rankery są tak potężne, gdy pojąłem kluczową różnicę między bi- i cross-encoderami. Dodatkowo znalazłem sposób na połączenie ich mocy za pomocą zjednoczonej architektury. Pozwól, że wyjaśnię: RAG to 80% wyszukiwania i 20% generacji. Więc jeśli RAG nie działa, najprawdopodobniej to problem z wyszukiwaniem. Dokładnie dlatego tak ważne jest, aby dobrze zrozumieć swoją architekturę wyszukiwania - a zaczyna się to od zrozumienia tych dwóch (właściwie trzech) podejść do kodowania. (odnieś się do wizualizacji poniżej podczas czytania) 1️⃣ Bi-encodery Bi-encodery (kręgosłup wyszukiwania wektorowego) przetwarzają zapytania i dokumenty osobno. - Osadzenia dokumentów są wstępnie obliczane - Zapytanie jest osadzane w czasie wyszukiwania To sprawia, że bi-encodery są idealne do początkowego wyszukiwania: - niezwykle szybkie - działają na dużą skalę - pomijają ważne informacje kontekstowe 2️⃣ Cross-encodery Cross-encodery przyjmują zupełnie inne podejście do re-rankingu. Przetwarzają zapytanie i każdy dokument jako jedną jednostkę. - Łączą zapytanie z dokumentem ([CLS] Zapytanie [SEP] Dokument [SEP]) - Przechodzą przez model razem dla pełnej uwagi krzyżowej To sprawia, że cross-encodery są idealne do drugiego etapu: - uchwycają relacje semantyczne dla lepszej dokładności - ale są znacznie wolniejsze i bardziej zasobożerne dla dużych zbiorów A co jeśli moglibyśmy połączyć to, co najlepsze z obu światów! 3️⃣ ColBERT ColBERT łączy moc cross-encoderów i skalowalność bi-encoderów. - Osobno kodują zapytania i dokumenty - Tworzą macierz interakcji z wynikami podobieństwa między wszystkimi parami tokenów zapytanie-dokument - Biorą maksymalny wynik dla każdego tokena zapytania wśród tokenów dokumentu - Sumują maksymalne wyniki dla ostatecznego wyniku dopasowania _____ To wszystko! Jeśli uznałeś to za pouczające, podziel się z siecią. Znajdź mnie → @akshay_pachaar ✔️ Po więcej informacji i tutoriali na temat LLM, AI Agents i uczenia maszynowego!
46,68K