Jeg forsto endelig hvorfor re-rangere er så kraftige når jeg forsto nøkkelforskjellen mellom bi- og krysskodere. Jeg fant videre en måte å kombinere kreftene deres ved å bruke en enhetlig arkitektur. La meg forklare: RAG er 80 % gjenfinning og 20 % generering. Så hvis RAG ikke fungerer, er det mest sannsynlig et gjenfinningsproblem. Det er nettopp derfor det er så viktig å få riktig hentearkitektur - og det starter med å forstå disse to (faktisk tre) kodingstilnærmingene. (se bildet nedenfor mens du leser) 1️⃣ Bi-kodere Bikodere (ryggraden i vektorsøk) behandler spørringer og dokumenter separat. - Dokumentinnbygginger er forhåndsberegnet - Spørringen bygges inn på søketidspunktet Dette gjør bi-enkodere perfekte for første henting: - ekstremt rask - fungerer i stor skala - Savner viktig kontekstuell informasjon 2️⃣ Krysskodere Krysskodere har en helt annen tilnærming for re-rangering. De behandler spørringen og hvert dokument som en enkelt enhet. - Kombiner spørring med dokument ([CLS] Spørring [SEP] Dokument [SEP]) - Kjør gjennom modellen sammen for full kryssoppmerksomhet Dette gjør krysskodere ideelle for det andre trinnet: - Fanger opp semantiske relasjoner for bedre nøyaktighet - men mye tregere og ressurskrevende for store samlinger Hva om vi kan kombinere det beste fra begge verdener! 3️⃣ ColBERT ColBERT samler kraften til krysskodere og skalerbarheten til bikodere. - Kode spørringer og dokumenter separat - Opprett interaksjonsmatrise med likhetspoeng mellom alle spørringsdokumenttokenpar - Ta maksimal poengsum for hvert spørringstoken på tvers av dokumenttokener - Sum maks poengsum for endelig samsvarende poengsum _____ Det er en innpakning! Hvis du syntes det var innsiktsfullt, kan du dele det med nettverket ditt. Finn meg → @akshay_pachaar ✔️ For mer innsikt og opplæringer om LLM-er, AI-agenter og maskinlæring!
46,67K