Guider/Ollama använder för mycket minne

Använder Ollama för mycket minne på en Mac? Så ser du vad som är inläst och läser ur det

Atta 🐬

Grundare, Vitals

Publicerad

Kort svar

Ollama behåller en modell i minnet i fem minuter efter dess senaste svar, så att nästa fråga besvaras snabbt. Det är därför den fortfarande håller flera gigabyte när du har slutat använda den. Kör ollama ps för att se vilka modeller som är inlästa och när var och en läses ur, och ollama stop följt av en modells namn för att läsa ur den nu. Hur mycket minne en modell tar beror på dess storlek och på kontextlängden du kör den med. Vitals, en systemövervakare för Mac, visar Ollamas minne, grafikkretsens belastning och datorns minnestryck i menyraden.

Så ser du och frigör Ollamas minne

  1. 01 Kör ollama ps i Terminal. Varje rad är en modell i minnet, med dess storlek, om den körs på grafikkretsen och hur lång tid det är kvar tills den läses ur.
  2. 02 Läs ur en nu med ollama stop följt av dess namn, till exempel ollama stop llama3.2. Minnet kommer tillbaka inom en sekund eller två.
  3. 03 Öppna Aktivitetskontroll, klicka på Minne och titta på Minnestryck längst ned. Grönt betyder att modellen får plats. Gult eller rött medan en modell är inläst betyder att den är för stor för det som annars är öppet.
  4. 04 Om du vill att modeller ska läsas ur tidigare ställer du in hur länge de behålls. Kör launchctl setenv OLLAMA_KEEP_ALIVE 1m i Terminal, avsluta sedan Ollama från dess symbol i menyraden och öppna den igen.
  5. 05 Om datorn har ont om minne varje gång en modell är inläst använder du en mindre modell eller en mindre version av samma modell. ollama list visar dem du har och deras storlekar.

Ett keep-alive-värde på 0 läser ur en modell så snart den har svarat; -1 håller den inläst tills du stoppar den. Appar som pratar med Ollama kan ange ett eget värde med varje förfrågan, vilket är varför en modell ibland ligger kvar längre än din inställning.

Att köra en modell på din egen Mac betyder att hålla hela modellen i minnet på en gång. En Mac med Apple silicon delar en enda minnespool mellan processorn och grafikkretsen, så en modell som på andra datorer skulle kräva ett separat grafikkort får plats här, men den tas ur samma minne som dina appar använder. En modell på 8 GB på en Mac med 16 GB lämnar 8 GB åt allt annat. Ollama läcker inte när den håller så mycket; den håller modellen. Tabellen visar vad som avgör siffran.

Vad som avgör Ollamas minne

Det du serVarförVad du gör
Flera GB hålls kvar efter att du har slutat chatta Modellen ligger kvar inläst i fem minuter ollama stop, eller ett kortare keep-alive-värde
Mer minne än modellens filstorlek Kontexten du kör den med behöver också minne Använd en kortare kontextlängd
Två modeller i minnet samtidigt En andra modell efterfrågades innan den första hade lästs ur ollama ps, och stoppa sedan den du inte använder
Minnestrycket gult eller rött, datorn långsam Modellen är för stor för det minne som är ledigt En mindre modell, eller stäng andra appar
Långsamma svar och en upptagen processor En del av modellen fick inte plats på grafikkretsen ollama ps visar fördelningen; använd en mindre modell

Varför Ollama håller modeller inlästa

Att läsa in en modell betyder att läsa flera gigabyte från skivan till minnet, vilket tar från sekunder till en minut. Att göra det för varje fråga skulle göra varje svar långsamt, så Ollama behåller modellen i fem minuter efter senaste användningen och läser ur den därefter. Varje ny fråga nollställer klockan. Om en app på din Mac frågar modellen något med några minuters mellanrum, till exempel en redigerares automatiska komplettering, läses modellen aldrig ur.

Inställningen heter keep-alive. OLLAMA_KEEP_ALIVE ändrar förvalet för allt; värdet 0 ger tillbaka minnet direkt, till priset av ett långsamt första svar varje gång.

Hur mycket minne en modell behöver

Som regel är minnet storleken på modellens fil plus utrymme för konversationen. En modell med 8 miljarder parametrar med den vanliga komprimeringen är ungefär 5 GB; en med 30 miljarder är ungefär 20 GB. Storleken på skivan som ollama list visar är en bra första uppskattning.

Kontextlängden är den del som folk missar. Den anger hur mycket text modellen kan hålla i huvudet på en gång, och minne för den reserveras när modellen läses in, vare sig du fyller den eller inte. En lång kontext på en liten modell kan använda mer än själva modellen. Om ollama ps visar en storlek långt över filens är kontexten förklaringen.

Får modellen plats på din Mac?

Det ärliga testet är minnestrycket med modellen inläst och dina vanliga appar öppna. Grönt: den får plats. Gult: macOS komprimerar minne för att göra plats, och det går lite långsammare. Rött: den växlar till skivan, och både modellen och datorn blir långsamma. En modell som delvis körs på processorn för att den inte fick plats på grafikkretsen är också mycket långsammare; ollama ps visar hur den delades upp.

En mindre version av samma modell kostar oftast lite i kvalitet och mycket mindre i minne. På en Mac med 16 GB lämnar modeller upp till ungefär 8 GB utrymme att arbeta. Se enhetligt minne för hur datorn delar på det.

LM Studio och andra appar

Samma sak gäller varje app som kör modeller lokalt. LM Studio håller en modell inläst tills du matar ut den eller dess overksamma tid löper ut, och visar de inlästa modellerna överst i sitt fönster. Redigerare och chattappar som kör en modell åt dig gör samma sak i bakgrunden. Minnet är modellen, vilken app som än håller den.

Vad Vitals tillför

Vitals visar vad en inläst modell kostar datorn, där du kan se det medan du arbetar.

  • Ollamas minne som en rad, med hjälpprocesserna inräknade
  • Minnestryck och ledigt minne i menyraden, så att du direkt ser om en modell får plats
  • Grafikkretsens belastning i menyraden och på en egen flik, med apparna som använder den
  • En notis när en app växer i minne hela tiden
  • Vilken app som använde mest energi, timme för timme: att köra en modell hör till det tyngsta en Mac gör på batteri

Bra att veta

  • Vitals visar minnet som Ollama håller, inte vilken modell som är inläst. Det visar ollama ps.
  • Vitals läser inte ur modeller. Det gör ollama stop.
Köp Vitals för $9 $9 under lanseringen, $29 efter den. Pengarna tillbaka inom 14 dagar.

Frågor som folk ställer

Varför använder Ollama så mycket minne?

Den håller en modell i minnet. Modeller ligger kvar inlästa i fem minuter efter sitt senaste svar. Kör ollama ps för att se vad som är inläst, och ollama stop med modellens namn för att läsa ur den.

Hur läser jag ur en modell i Ollama?

Kör ollama stop följt av modellens namn. Om du vill att modeller ska läsas ur av sig själva tidigare ställer du in OLLAMA_KEEP_ALIVE på en kortare tid.

Hur ändrar jag hur länge Ollama håller en modell inläst på en Mac?

Kör launchctl setenv OLLAMA_KEEP_ALIVE 1m i Terminal, med den tid du vill ha, och avsluta sedan Ollama och öppna den igen. Använd 0 för att läsa ur direkt, eller -1 för att hålla modeller inlästa.

Hur mycket minne behöver jag för att köra en modell med Ollama?

Ungefär storleken på modellens fil plus utrymme för kontexten. På en Mac med 16 GB lämnar modeller upp till ungefär 8 GB utrymme åt dina andra appar.

Varför använder Ollama mer minne än modellens storlek?

Minne för kontextlängden reserveras när modellen läses in. En lång kontext kan lägga till flera gigabyte. Kör modellen med en kortare kontext om du inte behöver den.

Använder Ollama minne när jag inte använder den?

Bara i fem minuter efter det senaste svaret, om inte en app fortsätter att fråga den något eller keep-alive-tiden har gjorts längre. Därefter läses modellen ur och Ollama använder mycket lite.

Finns det en app som visar om en lokal modell får plats i minnet på min Mac?

Vitals visar minnestryck, ledigt minne och grafikkretsens belastning i menyraden, så att du kan se vad en inläst modell kostar medan du arbetar.

I ordlistan

Fler guider