Hur poängsätter en korsad kodare fråge–textavsnittspar i AI-sökning på hemmaservrar?

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

En cross-encoder poängsätter sökresultat för lokal AI genom att läsa varje fråga och kandidatpassage tillsammans, så att deras tokeninteraktioner kan avgöra relevansen.

Detta är snävare än generell omrankning. En hemserver behöver fortfarande en snabb förstastegsretriever för att söka igenom tusentals anteckningar, PDF-filer, OCR-segment, manualer och metadataregister. Cross-encodern används först efter att detta steg har tagit fram en hanterbar kortlista. Dess utmärkande mekanism är gemensam kodning: ord från frågan och passagen delar samma modellinmatning, vilket gör att poängsättningsmodellen kan bedöma samband som separat kodade vektorer kan sudda ut.

Snabb hämtning och cross-encoding löser olika delar av sökvägen

Dense bi-encoders förbereder dokumentinbäddningar i förväg, så att en ny fråga kan bäddas in en gång och jämföras effektivt med ett stort index. Det gör dem lämpliga för att hitta kandidater i det första steget.

separata meningsinbäddningar gör storskalig likhetssökning i det första steget praktisk, eftersom dokumentrepresentationer kan beräknas innan frågan kommer och återanvändas för många förfrågningar.

En cross-encoder avstår från denna återanvändbara dokumentrepresentation. För varje kandidat måste frågan och passagen bearbetas tillsammans på nytt, vilket blir för kostsamt om en hel privat samling ska genomsökas för varje fråga.

De två stegen bildar därför en tratt: billig hämtning skyddar återkallningen över hela korpusen, och därefter används beräkningskraft för dyr parvis poängsättning endast där ett bättre relevansbeslut kan ändra den slutliga ordningen.

Fråge- och passtokens matas in i en gemensam sekvens

Cross-encodern tar emot frågan och en kandidatpassage som en enda parad inmatning, vanligtvis åtskilda av modellspecifika specialtokens. Attention kan då koppla samman termer från båda delarna av paret.

Ett CrossEncoder-par placerar frågan och en kandidatpassage i en gemensam modellinmatning, så att tokeninteraktioner mellan de två texterna kan ske innan en relevanspoäng skapas.

Den gemensamma bearbetningsvägen kan upptäcka att ”förnyelsedatum” i en fråga besvaras av ”försäkringen upphör att gälla den” i passagen, eller att ett exakt modellnummer förekommer i en mening vars omgivande sats motsäger det efterfrågade villkoret.

Eftersom modellen ser hela paret spelar passagelängden roll. Långa segment förbrukar fler tokens, ökar beräkningskostnaden och kan späda ut den lokala interaktionen runt den mening som faktiskt besvarar frågan.

Resultatet är en ny relevanspoäng, inte en ny dokumentvektor

Efter att ha bearbetat ett fråge- och passagepar genererar cross-encodern en poäng som visar hur väl passagen uppfyller frågan enligt modellens inlärda relevansfunktion.

CrossEncoder-relevanspoäng beräknas för de angivna fråge- och passageparen och kan därefter ersätta förstastegets ordning för dessa kandidater.

Dessa poäng är frågespecifika. De lagras normalt inte som återanvändbara inbäddningar, eftersom en ändrad fråga ändrar paret och därmed beräkningen.

Det är därför en cross-encoder kan ändra ordningen kraftigt mellan två kandidater vars likhet med täta vektorer nästan var lika: den löser ett annat poängsättningsproblem i det andra steget.

-15% OFF
Single board computer zimaboard2

Kandidatdjupet sätter gränsen för återkallningen innan den gemensamma poängsättningen börjar

En cross-encoder kan flytta upp en bra passage från plats 30 till plats 1, men bara om plats 30 ingick i kortlistan som den fick ta emot. Bevis utanför detta fönster är osynliga för det andra steget.

Som en rangordningsmodell i andra steget arbetar en cross-encoder med kandidater som en annan retriever redan har hittat, i stället för att söka direkt i hela den privata korpusen.

En djupare kandidatlista ökar chansen att rätt privat passage överlever det första steget, men den mångdubblar också arbetet med parvis inferens. En hemserver med begränsade CPU- eller GPU-resurser måste därför välja en kandidatbudget som skyddar återkallningen utan att göra interaktiv sökning långsam.

Gemensam poängsättning hjälper med fina skillnader som likhet ensam kan missa

Sökningar i privata dokument innehåller ofta exakta begränsningar: ett årtal, ett modelländelse, en familjemedlem, en mapp, en revision, en negation, ett undantag eller en efterfrågad åtgärd. Två passager kan vara ämnesmässigt lika, medan bara den ena uppfyller dessa detaljer.

semantisk sökning på en AI-NAS tillhandahåller betydelsebaserade kandidater från privatfiler med olika formuleringar; cross-encoding gör en snävare bedömning av vilken kandidat som bäst uppfyller den exakta frågan.

Exempelvis kan både en gammal och en aktuell försäkring nära matcha ”självrisk vid vattenskada”. Gemensam poängsättning kan använda omgivande datum och formuleringar, även om versionsmetadata fortfarande bör avgöra vilken revision som är giltig för ett svar om aktuella förhållanden.

Denna skillnad håller artikelns avgränsning tydlig: cross-encoding förklarar hur ett par poängsätts, medan den bredare sökprocessen fortfarande ansvarar för kandidatskapande, aktualitet, behörigheter och källhänvisningarnas ursprung.

Lokal cross-encoding byter integritet mot ytterligare beräkningskostnad, inte mot perfekt återkallning

Om poängsättaren körs lokalt hålls den privata frågan och kandidattexten kvar i hemmets sökväg, men varje extra kandidat skapar ytterligare ett inferenspar.

gränsen för fråge- och dokumentpoängsättning är tydlig: modellen tar emot en fråga plus angivna dokument och returnerar relevanspoäng, så bevis som saknas i den angivna mängden kan inte återställas.

Mät kandidatåterkallningen före cross-encodern, rangordningskvaliteten efter den och den totala svarstiden för hela förfrågan. Om rätt passage saknas före omrankningen bör du förbättra extrahering, hämtning, filter eller kandidatdjup i stället för att skylla på parpoängsättaren.

En cross-encoder är mest användbar när en snabb retriever redan hittar rätt område och det återstående problemet är att avgöra vilken närliggande kandidat som faktiskt besvarar hushållets fråga.

Teknik- och AI-hubb

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.