Minnessmappade modellfiler kan minska dubbel användning av RAM eftersom processer refererar till samma rena filbackade sidor via operativsystemets sidcache.
Att läsa in två lokala modellprocesser kräver inte alltid två kompletta kopior av viktfilen i det fysiska minnet. Med minnesmappning får varje process virtuella adresser som är kopplade till filförskjutningar, och sidor läses in vid behov. Operativsystemet kan tillgodose identiska rena sidor från en enda cachad fysisk kopia, samtidigt som varje process privata körtidstillstånd hålls åtskilda.
Minnesmappning kopplar virtuella adresser till filförskjutningar
En mappad fil visas i processens adressutrymme utan att programmet behöver läsa in hela filen i en separat heapbuffert. Åtkomst till en saknad sida utlöser ett sidfel; kärnan läser in eller hittar motsvarande filbackade sida och uppdaterar processens sidtabell.
Linux-handboken för minnesmappning dokumenterar mappningarna MAP_SHARED och MAP_PRIVATE samt sambandet mellan mappade uppdateringar och det underliggande objektet. Skrivskyddade modellvikter förblir vanligtvis rena filbackade data, vilket gör dem möjliga att återanvända via sidcachen. Denna åtskillnad är fortfarande viktig under realistiska förhållanden i hemmet.
Sidväxling vid behov kan förkorta uppstarten och begränsa mängden resident minne när bara en del av modellen används. Den kan också flytta kostnaden till den första åtkomsten, så fel på kalla sidor och lagringsfördröjning kan uppstå under inferens i stället för under en uttrycklig inläsningsfas.
Sidcachen kan betjäna flera processer samtidigt
Två processer kan mappa samma modell-inode och filförskjutningar till olika virtuella adressutrymmen. När båda läser samma rena sida kan kärnan mappa samma cachade fysiska sida till båda sidtabellerna. De virtuella mappningarna är separata, men de underliggande residenta data kan delas.
Linux-dokumentationen för data om sidmappning förklarar hur användarutrymmet kan granska sidmappningar och information om sidramar, med förbehåll för åtkomstbegränsningar. Dessa gränssnitt hjälper till att visa om till synes separata virtuella regioner hänvisar till delade fysiska sidor. Mellanläget bör förbli synligt vid senare felsökning och granskning.
Därför kan en summering av RSS per process överskatta den totala fysiska minnesanvändningen: en delad sida visas som resident i varje process. Proportionell mängd minne (PSS) fördelar delade sidor mellan mappningarna och är vanligtvis mer användbart när man uppskattar det sammanlagda minnesavtrycket från modellprocesserna.
Privata tillstånd och smutsiga sidor multipliceras fortfarande
KV-cacher, aktiveringar, allokerarens minnesarenor, tokeniseringsbuffertar och begärandetillstånd skapas per arbetare eller per session. Skrivning via en privat mappning utlöser copy-on-write och skapar en anonym sida som inte längre kan dela den rena filbackade kopian. Olika filversioner förhindrar också återanvändning.
Linux-handboken för smaps klassificerar privata, delade, rena, smutsiga och smaps-handboken för varje mappning. Dessa kategorier förklarar varför två arbetare som delar vikter ändå kan visa en betydande ytterligare minnesanvändning när samtidigheten och kontextlängden ökar.
Gränsen är att mappning minskar dubbla rena vikter, inte den totala inferensminnesanvändningen. Nätverksmonterade modellfiler kan också ge instabil sidfelsfördröjning, och komprimerade eller transformerade inläsare kan allokera en andra uppackad representation som omintetgör den förväntade delningen.
Jämför en arbetare med två mappade arbetare
Börja med en kall cache, starta en modellprocess, kör en fast prompt och registrera uppstartstid, sidfel, RSS, PSS och privat smutsigt minne. Starta en andra identisk arbetare och upprepa utan att ändra modellfilen eller flaggorna för inläsaren.
Sätt resultatet i relation till komprimeringsavvägningarna i komprimeringsavvägningarna: mindre filer underlättar lagring, medan nyttan av mappning beror på den minnesrepresentation som faktiskt används. Granska varje modellmappning i smaps i stället för att förlita dig på totalsiffran för en enda process.
Godkänn om den andra arbetaren lägger till betydligt mindre viktminne än den första samtidigt som samma resultat produceras med acceptabel kall fördröjning. Om PSS nästan fördubblas bör du kontrollera filidentitet, skrivbara mappningar, dekomprimering och dolda kopior innan du antar att mmap är ineffektivt.
Teknik- och AI-hubb
Mer att läsa

Vilka faktorer avgör citeringsnoggrannheten för RAG i en hemkunskapsbas?
Lär dig varför en relevant källa fortfarande kan vara en felaktig hänvisning, vilka steg i pipelinen som styr stöd och täckning samt hur du...

Vilka funktioner möjliggör tillförlitlig JSON-utdata från en lokal LLM?
Se vilka funktioner som framtvingar JSON-syntax, vilka som skyddar semantisk korrekthet och hur du testar en lokal modell med olika scheman, promptar och felscenarier.

Lokal AI-dataproveniens: Varför varje svar behöver en spårbar källväg
Lär dig hur källsökvägar gör lokala AI-svar granskningsbara, varför enbart hänvisningar är ofullständiga och hur du kan testa härkomst genom uppdateringar och borttagningar.

