Kapitel 3: Tekniska grundbegrepp

Innan du börjar bygga behöver du förstå nyckelbegrepp som kvantisering, offloading och OpenAI API-kompatibilitet. Vi förklarar dem enkelt och praktiskt. Kvantisering låter dig köra stora modeller på mindre hårdvara, medan API-kompatibilitet gör det enkelt att byta mellan olika AI-leverantörer.

Nu när du vet vilken hårdvara du behöver är det dags att förstå några viktiga tekniska koncept. Oroa dig inte – vi kommer inte att drunkna dig i teknisk jargong. Tänk på det här kapitlet som en ordlista för begrepp du kommer att stöta på när du arbetar med lokal AI.

Kvantisering – att göra AI-modeller mindre

Vi nämnde kvantisering i förra kapitlet, men låt oss förklara det ordentligt eftersom det är så viktigt för lokal AI.

Föreställ dig att du fotograferar med din telefon. Du kan välja mellan olika kvalitetsinställningar – högsta kvalitet ger dig vackra bilder men tar mycket plats, medan lägre kvalitet ger mindre filer som fortfarande ser bra ut på skärmen.

Kvantisering fungerar på samma sätt för AI-modeller. Vi kan "komprimera" en modell så den tar mindre plats i grafikminnet utan att förlora särskilt mycket av dess intelligens.

De vanligaste kvantiseringsnivåerna:

FP16 (Full kvalitet)

  • Originalstorlek, perfekt kvalitet
  • Mycket långsam på vanlig hårdvara
  • Används mest för träning av nya modeller

Q8 (8-bitars kvantisering)

  • Hälften så stor som originalet
  • Nästan ingen märkbar kvalitetsförlust
  • Bra balans för kraftfull hårdvara

Q4 (4-bitars kvantisering)

  • En fjärdedel så stor som originalet
  • Fortfarande utmärkt kvalitet
  • Det här är vår rekommendation för de flesta

Q2 (2-bitars kvantisering)

  • En åttondel så stor som originalet
  • Märkbar kvalitetsförlust
  • Endast för situationer med extremt begränsad hårdvara

Praktisk effekt av kvantisering

Låt oss ta ett konkret exempel med en populär 32 miljarders modell:

  • FP16: 64 GB (för stort för vanlig hårdvara)
  • Q8: 32 GB (kräver professionella grafikkort)
  • Q4: 16 GB (passar RTX 4090 perfekt)
  • Q2: 8 GB (passar mindre grafikkort, men lägre kvalitet)

Q4-kvantisering är ofta den perfekta medelvägen – du får 95% av modellens prestanda med bara 25% av minneskravet.

Offloading – när modellen inte får plats

Ibland har du en modell som nästan får plats i ditt grafikminne, men inte riktigt. Här kommer "offloading" till räddning.

Tänk på det som att ha en stor bok som inte får plats på ditt skrivbord. Du kan ha de viktigaste kapitlen framme och resten i en hylla intill. När du behöver något från hyllan tar det lite längre tid att hitta, men det fungerar.

Med AI-modeller betyder offloading att delar av modellen lagras i vanligt RAM-minne istället för i grafikminnet. Det fungerar, men blir långsammare eftersom grafikkorten måste vänta på data från det långsammare RAM-minnet.

När offloading händer:

  • Din modell är för stor för grafikminnet
  • Du har en lång konversation som fyller upp minnet
  • Du kör flera modeller samtidigt

Tecken på att offloading pågår:

  • AI-svaren kommer mycket långsammare
  • Din dator blir trögare
  • Fläktarna börjar gå på högvarv

Tips för att undvika offloading:

  • Välj en mindre modell eller högre kvantisering
  • Korta ner långa konversationer
  • Stäng andra program som använder grafikminnet

OpenAI API-kompatibilitet – en brygga mellan världarna

Det här är ett av de smartaste koncepten i modern AI-utveckling. OpenAI skapade en standard för hur man kommunicerar med AI-modeller – som ett gemensamt språk som alla kan förstå.

Tänk på det som att alla biltillverkare bestämde sig för att använda samma typ av bränsletank. Oavsett om du kör en Volvo eller en BMW kan du tanka på samma mackar med samma pump.

Med OpenAI API-kompatibilitet kan du:

  • Skriva kod som fungerar med både lokala och molnbaserade modeller
  • Byta från ChatGPT till en lokal modell utan att ändra din kod
  • Använda samma verktyg och bibliotek oavsett vilken AI du kör
  • Testa olika modeller enkelt

Praktiskt exempel: Om du har en chatbot som använder OpenAI:s API kan du ändra bara två rader kod för att den ska använda din lokala AI istället:

Tidigare (OpenAI):
URL: https://api.openai.com/v1/chat/completions
API-nyckel: din-openai-nyckel

Lokalt (Ollama):  
URL: http://localhost:11434/v1/chat/completions
API-nyckel: behövs inte (allt är lokalt)

Samma kod, samma funktioner, men nu körs allt på din egen dator.

Miljövariabler – systemets inställningar

Miljövariabler är som inställningar för dina program, men istället för att klicka i menyer skriver du dem i textfiler. Det låter krångligt, men det ger dig mycket mer kontroll.

Tänk på det som skillnaden mellan att använda en mikrovågsugn med förprogrammerade knappar versus en där du kan ställa in exakt tid, effekt och funktioner själv.

Viktiga miljövariabler för lokal AI:

OLLAMA_FLASH_ATTENTION=1

  • Gör AI-beräkningar mer effektiva
  • Som att sätta på turboläge
  • Rekommenderas starkt

OLLAMA_KV_CACHE_TYPE=q8_0

  • Komprimerar konversationsminnet
  • Gör att längre samtal fungerar bättre
  • Som att ha bättre organisation i huvudet

OLLAMA_NUM_PARALLEL=1

  • Begränsar hur många modeller som körs samtidigt
  • Förhindrar att din dator blir överbelastad
  • Som att bara ha ett program öppet åt gången

OLLAMA_MAX_LOADED_MODELS=1

  • Håller bara en modell i minnet åt gången
  • Sparar grafikminne
  • Som att bara ha en bok öppen på skrivbordet

Den viktigaste inställningen är kontext-längden. Som standard begränsar många system dig till väldigt korta konversationer (2000 ord), men du kan öka det till 8000 eller 32000 ord för längre, mer meningsfulla samtal.

Docker och containers – mjukvara i lådor

Docker är ett sätt att packa mjukvara i "containers" (behållare). Tänk på det som färdiglagad mat i portionsförpackningar – allt du behöver finns med, och det fungerar likadant oavsett var du värmer det.

Fördelar med containers:

  • Allt fungerar exakt likadant på alla datorer
  • Enklare att installera komplexa system
  • Säkrare eftersom program är isolerade från varandra
  • Lättare att uppdatera och underhålla

Praktiskt exempel: Istället för att installera en databas, en webbserver och AI-mjukvara separat (och riskera att de krockar), kör du tre containers som redan är konfigurerade att fungera tillsammans.

När vi senare bygger din AI-infrastruktur använder vi Docker för att:

  • Köra AI-modeller (Ollama)
  • Hantera databaser (Supabase)
  • Skapa användargränssnitt (Open WebUI)
  • Bygga automatiseringsflöden (n8n)

Nätverk mellan containers

När du kör flera containers måste de kunna "prata" med varandra. Det här fungerar lite annorlunda än vanligt nätverk.

Viktig regel: När containers pratar med varandra använder de inte "localhost" (som betyder "denna dator"). Istället använder de varje containers namn.

Exempel:

  • Om du har en container som heter "ollama" och en som heter "database"
  • Databas-containern når AI-containern på adressen ollama:11434
  • Inte localhost:11434 som du kanske förväntar dig

Det här är en vanlig källa till förvirring, så kom ihåg regeln: container-namn, inte localhost.

Portar – dörrar till dina tjänster

Varje program på din dator "lyssnar" på en specifik port – som olika dörrar till olika rum i ett hus. Web-sidor använder vanligtvis port 80 eller 443, e-post använder port 25, och så vidare.

För din AI-infrastruktur kommer du att använda flera portar:

  • 5678: n8n (automatisering)
  • 8080: Open WebUI (chat-gränssnitt)
  • 8000: Supabase (databas-gränssnitt)
  • 11434: Ollama (AI-modeller)

När du vill komma åt en tjänst skriver du localhost:port-nummer i din webbläsare, till exempel localhost:8080 för att chatta med din AI.

Säkerhet och autentisering

När du kör tjänster lokalt behöver du inte oroa dig så mycket för säkerhet – det är ju din egen dator. Men när du senare flyttar till molnet blir säkerhet kritiskt.

Grundläggande säkerhetsbegrepp:

API-nycklar: Som lösenord för program. Låter olika tjänster bevisa att de får kommunicera med varandra.

HTTPS: Krypterad kommunikation. Som att skicka brev i förseglade kuvert istället för öppna vykort.

Reverse proxy: En säkerhetsvakt som kontrollerar vem som får komma in till dina tjänster.

Brandväggar: Stänger alla "dörrar" (portar) utom de du specifikt vill ha öppna.

Att komma ihåg

Dessa begrepp kan kännas överväldigande först, men du behöver inte förstå allt på en gång. Det viktigaste är att:

  1. Q4-kvantisering är oftast det bästa valet för lokal AI
  2. Offloading gör saker långsammare – undvik om möjligt
  3. OpenAI API-kompatibilitet låter dig byta mellan olika AI-leverantörer enkelt
  4. Containers gör installation och underhåll mycket enklare
  5. Container-namn, inte localhost, när tjänster pratar med varandra

I nästa kapitel tar vi dessa koncept från teori till praktik och börjar bygga din första lokala AI-miljö. Du kommer att se hur alla pusselbitarna passar ihop.

Innehållsförteckning