ArtikelLokal AI

Chunkning i lokal RAG: när villkoret faller bort

En regel kan hittas utan sitt undantag. Följ samma syntetiska text genom extraktion, segmentering, hämtning och svar innan du ändrar chunkningen.

Publicerad · Senast granskad

En skärmaskin delar ett ljust ark vid en orange markering, omgiven av gröna ljuslinjer.
En segmentgräns kan skilja regeln från undantaget. Kontrollera vilka meningar som finns i underlaget.

En källa kan se övertygande ut och ändå sakna det avgörande villkoret. Tänk dig att din lokala AI hittar meningen ”Projekt Lärk får boka rum Eken på fredagar” men inte fortsättningen ”Undantag: under november krävs godkännande av samordnaren”. Ett svar som bara upprepar regeln blir fel för november. Börja därför med att leta efter båda meningarna i underlaget.

Här undersöker du chunkning i lokal RAG med Open WebUI och lokala modeller. Målet är att skilja ett segmenteringsproblem från fel vid inläsning, hämtning eller svarsskrivning. Det körda exemplet längre ner illustrerar en segmentgräns med vanlig textdelning. Det är ingen uppmätt förbättring av Open WebUI.

Följ villkoret genom fyra led

Spara först originalfilen och markera regeln och undantaget. Ge testdokumentet ett tydligt namn, exempelvis lark-villkor-v1.txt, och använd inga riktiga interna regler. Då kan du avgöra om en äldre fil eller en snarlik regel råkar ha kommit med i jämförelsen.

LedDet du granskarOm undantaget saknas
OriginalBåda meningarna och deras ordning.Rätta testdokumentet före provet.
Extraherad textAtt samma meningar finns efter inläsningen.Undersök extraktionen.
Segment och synligt hämtat underlagVar meningarna hamnar och vilka som visas för frågan.Skilj delning från urval.
SvarAtt novembervillkoret faktiskt används.Granska svaret även om underlaget var komplett.

Open WebUI rekommenderar att du granskar extraherat innehåll när dokumentinformation saknas. Om undantaget föll bort där hjälper inte ett större överlapp på den ofullständiga texten. Skanna särskilt tabeller, sidbrytningar och små noter i ditt eget material; i provet använder du en textfil för att hålla den frågan enkel.

Skilj också lagrade bitar från dem som valdes för en fråga. Att du hittar undantaget i ett segment bevisar inte att sökningen tog med segmentet. Och en källhänvisning med rätt filnamn visar inte ensam att båda meningarna fanns i underlaget till svaret. Spara den synliga texten. Om din installation inte låter dig granska ett led, skriv ej bedömbart för just det ledet.

Chunkstorlek och överlapp har en enhet

I Open WebUI väljer Text Splitter hur storleken räknas: tecken eller tokens. Överlapp är text som delas mellan intilliggande bitar. Skriv därför exempelvis ”teckendelning, storlek 600, överlapp 80” i protokollet. Ett naket ”600” räcker inte för att återskapa försöket.

Tokenvärden går inte att ersätta med samma antal tecken. Anteckna även vilken splitter och eventuell tokenizer du använder. Har du aktiverat delning efter Markdown-rubriker eller sammanslagning av små segment ska de inställningarna stå kvar under jämförelsen. Annars har du ändrat fler saker än överlappet.

Det finns ingen generell storlek att rekommendera utifrån det här provet. En större bit kan hålla ihop regeln och undantaget men också ta med fler ovidkommande stycken. Mer överlapp kan upprepa den viktiga övergången, men det avgör inte vilka bitar sökningen väljer. Välj en ändring för ett konstaterat fel, inte för att ett större tal ser säkrare ut.

Den lokala chattmodellens kontext sätter också en gräns. Open WebUI räknar hämtad text tillsammans med systemprompt och samtalshistorik. Som ren budgetillustration blir fyra bitar på högst 700 tokens tillsammans högst 2 800 tokens före övrig prompttext. Det är ingen uppgift om hur mycket din modell faktiskt tar emot. Behåll kontextinställningen och antalet hämtade bitar under första jämförelsen.

Ett konstruerat villkor på segmentgränsen

För att visa mekaniken körde vi ett litet JavaScript-prov med fasta teckenfönster. Samma text och fönsterstorlek används före och efter; bara överlappet ändras. Gränsen är medvetet lagd direkt efter regeln. Storlekarna är valda för denna korta illustration och ska inte kopieras som Open WebUI-inställningar.

Regel: Projekt Lärk får boka rum Eken på fredagar.
Undantag: under november krävs godkännande av samordnaren.

Före: 123 tecken per fönster, 0 teckens överlapp.
Efter: 123 tecken per fönster, 102 teckens överlapp.
Kontroll: finns båda fullständiga meningarna i samma bit?

Före ändringen hamnar regeln sist i första biten och undantaget först i nästa. Ingen bit innehåller båda meningarna. Efter ändringen finns en bit med båda. Det visar att en segmentgräns kan skilja meningarna åt och att överlapp i just denna konstruktion kan hålla ihop dem.

Provet använder slice med fasta teckengränser. Open WebUI kördes inte för illustrationen, och dess splitters återskapas inte här. Vi körde varken embeddings, sökning eller en svarande modell. Resultatet säger därför ingenting om träffordning, svarskvalitet eller ett lämpligt överlapp för dina dokument.

Bygg om rätt underlag innan du jämför

För ett eget Open WebUI-prov använder du en separat testinstans eller en fungerande kopia och samma lokala chattmodell och embeddingmodell i båda omgångarna. Ollama rekommenderar samma embeddingmodell för indexering och frågor. Ett modellbyte skulle göra det svårt att koppla skillnaden till chunkningen. Modellbyte behandlas separat i artikeln om att byta embeddingmodell lokalt.

Enligt Open WebUI behåller befintliga kunskapsbasdokument sin gamla chunkning tills de indexeras om. Reindex delar den redan extraherade texten med aktuella inställningar och bygger även om per-fil-index för filer i kunskapsbasen. Fristående chattfiler omfattas inte: ladda upp dem igen för ändrad chunkning. Behöver originalet extraheras på nytt krävs också återuppladdning.

Det betyder att du ska anteckna lagringsvägen före ändringen. Testa först kunskapsbasen om det är den du använder i vardagen. Har du även en fristående chattfil, kör den som ett separat prov efter återuppladdning. Återanvänd inte ett gammalt chattunderlag och kalla det ”efter”.

  1. Spara frågor, synligt källunderlag och svar med den gamla chunkningen.
  2. Ändra bara överlappet, om det är övergången du vill undersöka.
  3. Indexera om testkunskapsbasen eller ladda upp den fristående testfilen igen. Vänta tills bearbetningen är klar.
  4. Ställ samma frågor i nya samtal med samma modell, prompt, kontext, antal träffar, sökläge och eventuell omrankning.
  5. Jämför meningarna i underlaget före och efter, därefter svaren.

Ställ en fråga som behöver undantaget

Fråga först: ”Får Projekt Lärk boka Eken en fredag i november utan godkännande? Svara enligt dokumentet och ange det textstycke som stöder svaret.” Facitet är nej: godkännande krävs. Som kontroll frågar du även om en fredag i oktober. Där ger testdokumentet inget novemberkrav. Båda frågorna behövs för att upptäcka om modellen bara upprepar undantaget oavsett månad.

Bedöm underlag och svar var för sig. För november markerar du underlaget komplett först när både regel och undantag går att inspektera i det synliga materialet. Markera sedan svaret korrekt bara om det säger att godkännande krävs. Ett korrekt svar utan inspekterbart underlag får ”svar korrekt, underlag ej bedömbart”; det får inte räknas som en verifierad förbättring av hämtningen.

Spara en rad per fråga med inställningar, dokumentversion, regel synlig, undantag synligt och svar korrekt. Om undantaget blir synligt först efter omchunkningen har du ett spår att följa. För fler frågor med förutbestämda källstycken finns metoden med dokumentfacit; dess sökprov är separat från denna segmenteringsillustration.

FAQ

Vilken chunkstorlek är bäst för lokal RAG?

Den här illustrationen ger inget generellt optimalt värde. Ange enheten och jämför samma frågor, underlag och modeller när du ändrar en inställning.

Räcker det att ändra överlapp i Open WebUI?

Befintliga kunskapsbasdokument behöver indexeras om för att få den nya chunkningen. Fristående chattfiler behöver laddas upp igen.

Visar ett korrekt svar att chunkningen fungerar?

Ett korrekt svar räcker inte för att bedöma hämtningen. Du behöver också kunna granska om regeln och undantaget finns i det synliga underlaget.

Kan omindexering återställa text som saknas efter extraktion?

Omindexering använder redan extraherad text. Behöver originalfilen läsas in på nytt krävs återuppladdning.


Källor och metod

Källorna kontrollerades 8 november 2026. Den deterministiska teckensegmenteringen kördes lokalt med ett syntetiskt dokument. Inget Open WebUI-prov med modeller eller hämtning genomfördes. Instruktionen för eget prov gäller embeddingbaserad dokumenthämtning i lokal Open WebUI, inte agenters andra verktyg eller externa söktjänster.