Kunstig intelligens

Lokal LLM på Raspberry Pi eller Jetson: hva fungerer i praksis?

Raspberry Pi-lignende kort og edge AI-maskin som kjører lokal språkmodell

En lokal LLM kjører språkmodellen på din egen Raspberry Pi, Jetson, arbeidsstasjon eller server i stedet for å sende hver forespørsel til en ekstern tjeneste. Det gir kontroll over dataene og gjør deg uavhengig av nettforbindelsen, men modellfil, minne, kontekst, hastighet og lisens bestemmer hva som faktisk er praktisk.

Kort forklartRaspberry Pi 5 er et godt lærings- og integrasjonsnivå for små, kvantiserte modeller og én bruker. Jetson gir GPU-akselerasjon og raskere minne til edge- og multimodale arbeidsflyter. En arbeidsstasjon eller server er naturlig når flere brukere, lengre kontekst eller større modeller betyr mer enn lavt strømforbruk. Last ned én modell med kjent lisens, mål tokens per sekund og minnebruk på den virkelige oppgaven, og skaler derfra.

Hva skjer når en LLM svarer?

Teksten deles i tokens, små tekstbiter som ofte er kortere enn et ord. Modellen bruker tokenene i konteksten til å beregne sannsynligheten for neste token, velger ett etter innstillingene og gjentar prosessen. Modellvektene ligger i minnet under hele inferensen, mens kontekst og mellomresultater bruker ekstra plass. Derfor beskriver ikke modellfilens størrelse hele minnebehovet.

En lokal modell har ikke automatisk tilgang til egne dokumenter, ferske nettsider eller sannheten. Skal den svare ut fra en samling manualer, må programmet først søke fram relevante avsnitt og legge dem i konteksten. Metoden kalles RAG (retrieval-augmented generation). Kildene bør vises sammen med svaret, og viktige påstander må fortsatt kontrolleres.

Parametere, kvantisering og kontekst

Parameterantallet sier noe om modellens størrelse, men ikke alene om kvalitet, lisens eller hvor godt den passer oppgaven. To modeller med omtrent like mange parametere kan ha ulik arkitektur, ulikt ordforråd og ulik trening. Sammenlign dem på et fast sett med egne spørsmål, ikke på en tilfeldig demo.

Kvantisering lagrer vektene med lavere presisjon, for eksempel 4 bit i stedet for 16 bit. Det reduserer filstørrelse, minnebruk og regnearbeid, men kan også gi kvalitetstap. llama.cpp bruker filformatet GGUF og tilbyr flere kvantiseringsnivåer; riktig valg må måles på modellen og maskinvaren du bruker.

Tabellen viser omtrentlig størrelse på selve vektene. Regnestykket er antall parametere ganget med antall bit og delt på åtte. Vanlige 4-bits formater bruker litt mer enn 4 bit per vekt i snitt, derfor intervallene.

Modellstørrelse16 bit8 bit4 bit
1 milliard parametereca. 2 GBca. 1 GBca. 0,5 til 0,7 GB
3 milliarder parametereca. 6 GBca. 3 GBca. 1,5 til 2 GB
7 til 8 milliarder parametereca. 14 til 16 GBca. 7 til 8,5 GBca. 4 til 5 GB

Kontekst, kjøremiljø og operativsystem kommer i tillegg. Kontekstlengden er hvor mye teksthistorikk modellen kan bruke i ett kall. Lengre kontekst øker minnebruk og behandlingstid, og den garanterer ikke at modellen bruker alle detaljer riktig. Send heller et lite, relevant utdrag enn en hel dokumentsamling uten søk og rangering.

På en Raspberry Pi 5 med 8 GB er modeller med 1 til 3 milliarder parametere og 4-bits kvantisering et realistisk utgangspunkt. En modell med 7 til 8 milliarder parametere kan lastes, men svarer tregt. Jetson Orin Nano 8 GB deler minnet mellom prosessor, GPU og operativsystem, så omtrent de samme størrelsene gjelder der, men med GPU-akselerasjon.

Hvorfor minnet styrer hastigheten

For hvert nytt token må modellen lese gjennom omtrent alle vektene i minnet. Genereringshastigheten begrenses derfor ofte mer av minnebåndbredden, altså hvor raskt minnet kan leses, enn av antall prosessorkjerner. En modell på 4 GB i et system som leser 16 GB per sekund kan i beste fall gi rundt fire tokens per sekund, og i praksis færre.

Jetson Orin Nano har flere ganger høyere minnebåndbredde enn Raspberry Pi 5, og det er en viktig grunn til at den svarer raskere med samme modell. Behandlingen av selve spørsmålet, prompten, er derimot mer regnetung. Der gir GPU eller NPU størst gevinst, særlig når du sender lange dokumentutdrag. Mål derfor begge deler hver for seg.

Raspberry Pi, Jetson eller server?

NivåPasser tilFordelVanlig flaskehals
Raspberry Pi 5 på CPULære API, liten modell, én bruker og enkel dokumentassistentLav terskel, Linux, GPIO og kompakt driftMinnekapasitet og genereringshastighet
Raspberry Pi 5 med AI HAT+ 2Utvalgte språk- og bilde-språkmodellerEffektiv akselerasjon med eget minne på kortetBare modeller som er kompilert for Hailo-10H
NVIDIA JetsonLokal LLM sammen med kamera, tale eller robotikkGPU-økosystem, raskere minne og edge-integrasjonDelt minne, kjøling og programvareversjoner
Arbeidsstasjon eller edge-serverStørre modell, flere brukere og lengre kontekstMer RAM og grafikkminne, lagring og samtidighetKostnad, effekt, drift og tilgangskontroll
Ekstern APIRask tilgang til stor modell uten lokal driftLite lokalt vedlikeholdDatabehandling, kostnad, nettverk og leverandøravhengighet

Merk at AI HAT+ med Hailo-8 eller Hailo-8L er laget for bildemodeller, ikke språkmodeller. Et bestemt antall milliarder parametere gir heller ingen universell RAM-regel: i tillegg til de kvantiserte vektene kommer kjøremiljø, operativsystem, buffer, kontekst og eventuelle bilde- eller lydkodere. Sett derfor et øvre minnebudsjett og følg den faktiske minnebruken gjennom hele samtalen.

Første lokale test med llama.cpp

llama.cpp er en åpen C/C++-motor som kjører GGUF-modeller på mange typer prosessorer og grafikkort. Prosjektets dokumentasjon beskriver hvordan kompatible modeller hentes eller konverteres, og hvordan kvantisering reduserer vektpresisjonen. Bruk en modell med tydelig lisens og kontrollert kilde. Verktøyet llama-bench måler hastigheten, mens llama-cli lar deg prøve modellen direkte:

# Mål hastigheten: prompt-behandling (pp) og generering (tg) i tokens/s
llama-bench -m ./model.gguf -p 512 -n 128

# Kort test: bruk modellnavn og fil fra en kilde du har kontrollert
llama-cli -m ./model.gguf \
  -c 2048 \
  -p "Svar kort og oppgi når kilden mangler." \
  -n 128

Kommandoene er et mønster, ikke en anbefaling av en bestemt modell. Mål oppstartstid, tid til første token, genereringshastighet, maksimal minnebruk og temperatur. Lag ti til tjue representative spørsmål og registrer om svaret er korrekt, støttet av kilden og stabilt ved gjentakelse. Trenger du et API, starter llama-server en lokal tjeneste med samme modellfil.

Ollama som lokal modellserver

Ollama tilbyr en lokal tjeneste og et HTTP-API for støttede plattformer. Modeller hentes med ollama pull og prøves med ollama run. Den offisielle Linux-dokumentasjonen har en ARM64-pakke og egne pakker for JetPack-versjoner, men maskinvarestøtten må kontrolleres mot den aktuelle utgaven. En enkel Python-klient kan sende en avgrenset melding til den lokale serveren:

import requests

payload = {
    "model": "din-lokale-modell",
    "messages": [
        {"role": "user", "content": "Oppsummer denne lokale serviceloggen i tre punkter."}
    ],
    "stream": False,
}

response = requests.post("http://127.0.0.1:11434/api/chat", json=payload, timeout=120)
response.raise_for_status()
print(response.json()["message"]["content"])

Eksemplet bruker pakken requests, som finnes som python3-requests i Raspberry Pi OS. Ollama lytter som standard bare på maskinen selv (127.0.0.1, port 11434) og har ingen innebygd innlogging. La det være slik under første test.

Ikke åpne modellserveren mot nettverket uten beskyttelse: Skal tjenesten nås fra andre maskiner, legg en proxy med autentisering og TLS foran, begrens tilgangen i brannmuren og bestem hva som logges. En åpen modellserver kan lekke dokumenter og bli brukt av andre til å belaste maskinen.

Raspberry Pi som læringsnivå

En Raspberry Pi 5 kan lære deg hele kjeden: modellfil på rask lagring, kjøremiljø, lokalt API og en liten nettklient. Aktiv kjøling og stabil strøm er viktig ved langvarig last. NVMe kan korte ned tiden det tar å laste modellen sammenlignet med et tregt minnekort, men øker ikke selve tokenhastigheten når minnet eller beregningen er flaskehalsen.

Velg en liten, kvantisert modell, kort kontekst og én bruker. En praktisk første oppgave er å oppsummere korte, lokale notater eller sortere en tekst i et begrenset sett kategorier. Ikke start med agentverktøy som kan skrive filer eller styre GPIO. Først når svarene er målbare og avvisning fungerer, kan modellen foreslå en handling som vanlig kode kontrollerer.

Når Jetson eller server gir mening

Jetson er interessant når språket skal kombineres med bilde, tale eller robotikk. NVIDIA Jetson AI Lab samler dokumenterte eksempler på lokale språkmodeller, bilde-språkmodeller, tale og maskinsyn. Det er et bedre utgangspunkt enn en tilfeldig installasjonsoppskrift, fordi eksemplene er knyttet til bestemte JetPack- og containerkrav.

MRSMARTs Jetson Orin Nano-baserte 8 GB-maskin og J3010 edge AI-server representerer ulike driftsnivåer. I Seeeds navnesystem er J3010 bygget på Jetson Orin Nano 4 GB. Den passer når robust kabinett, tilkoblinger og kontinuerlig drift er viktigst, mens 8 GB-maskinen gir mer plass til selve språkmodellen. Velg ikke bare etter TOPS eller minne: mål kjøremiljø, antall samtidige forespørsler, kontekst, lagring, kjøling og effektprofil. En dedikert server med mer minne gir mer kapasitet, men også ansvar for oppdatering, overvåkning og gjenoppretting.

Tre nyttige første prosjekter

  1. Lokal dokumentassistent: Indekser godkjente manualer, hent noen relevante avsnitt og krev kildehenvisning i svaret. Hvis ingen kilde passer, skal systemet si det.
  2. Sortering av servicenotater: La modellen foreslå én av et lite antall feilkategorier ut fra en teknikers notat. Faste regler og et menneske godkjenner resultatet.
  3. Kamera med språklig oppsummering: En bildemodell lager strukturerte objekter og tall; språkmodellen formulerer en forklaring. Se guiden AI-kamera med Raspberry Pi eller Jetson for kravene til selve bildekjeden.

Evaluer før du kobler på verktøy

Lag et lite testsett med fasit og med spørsmål der svaret ikke finnes. Registrer korrekthet, kildebruk, tid til første token, total tid og minne. Test også prompt-injeksjon i dokumenter: tekst i et hentet dokument skal ikke kunne overstyre systemets tilgangsregler.

Hvis modellen senere får tilgang til filer, nettverk eller aktuatorer, bruk en eksplisitt liste over tillatte verktøy og kontroller argumentene mot et fast skjema. Hold lese- og skriveverktøy adskilt. En modell kan foreslå å slå på en utgang, men vanlig kode må kontrollere grenseverdi, fersk sensorverdi og autorisasjon. Sikkerhet og personvern forklares bredere i innføringen i kunstig intelligens og edge AI.

Kilder og videre lesing

Modellformat og kvantisering er kontrollert mot llama.cpp sin modelldokumentasjon og prosjektets kvantiseringsguide. Lokal ARM64- og JetPack-støtte er kontrollert mot Ollamas offisielle Linux-dokumentasjon. Jetson-nivået bygger på NVIDIA Jetson AI Lab og produsentens Jetson-dokumentasjon. Modellkrav og lisenser endres, så les gjeldende dokumentasjon før du laster ned en modell.

Oppsummering

En lokal LLM gir kontroll over kjøring og dataflyt, men krever at du selv tar ansvar for modellvalg, minnebudsjett, tilgang og evaluering. Raspberry Pi passer til små modeller og læring. Jetson kobler språk til edge AI og kamera, mens serveren skalerer samtidighet og modellstørrelse. Begynn med én oppgave, kort kontekst og en modell med kjent lisens, og mål kvalitet og ressurser før du gir systemet flere verktøy.

Alle guider

Produkter omtalt i denne guiden

Produktene som brukes og sammenlignes i guiden, med pris og lagerstatus.