Træn og betjen modeller i Ollama til sikker og effektiv intern brug

  • Ollama giver dig mulighed for at drive og betjene LLM'er lokalt med fuldstændig privatliv, lave omkostninger og absolut kontrol over data og infrastruktur.
  • Kombinationen af ​​open source-modeller, GGUF-kvantisering og finjustering med LoRA gør det muligt at tilpasse kraftfulde LLM'er til rimelig hardware.
  • Det er muligt at implementere brugerdefinerede modeller i Ollama og eksponere dem via API'er eller grænseflader som Open WebUI og n8n til interne flows.
  • Med god hardwareplanlægning, sikkerhed og orkestrering kan der bygges en robust og skalerbar intern AI-platform.

Lokale AI-modeller med Ollama

Fremkomsten af ​​generativ kunstig intelligens Det har fuldstændig ændret den måde, virksomheder og udviklere arbejder med software, data og automatisering på. Nye modeller og værktøjer dukker op hver uge, men samtidig er vi fortsat stærkt afhængige af et par store cloudplatforme, der kontrollerer prissætning, privatliv og funktioner. I denne sammenhæng er ideen om Kør og træn modeller lokaltmed løsninger som f.eks. Ollama der giver dig mulighed for at arbejde med LLM'er på din egen infrastruktur uden at eksponere data til tredjeparter.

I modsætning til den mere centraliserede tilgang hos store udbydere, et økosystem af open source-modeller og -værktøjer som alle kan downloade, tilpasse og implementere på deres computere. Ollama har etableret sig som en nøglespiller i denne bevægelse: den forenkler implementeringen af ​​lokale LLM'er i høj grad, bygger bro til webgrænseflader som Open WebUI eller n8n og tillader servering af modeller via API på en måde, der minder meget om OpenAI, men med Total privatliv, kontrollerede omkostninger og utrolig fleksibilitet at tilpasse og finjustere hver model.

Hvorfor træne og betjene modeller i Ollama til intern brug?

Når vi bruger en chatbot på en hjemmeside eller en cloud-API, Hver anmodning indebærer omkostninger, latenstid og potentielle privatlivsrisici.For en individuel bruger er det måske ikke dramatisk, men i en virksomhed, der behandler kontrakter, lægejournaler eller økonomisk dokumentation, er det i det mindste en delikat sag at sende alt dette til en ekstern leverandør.

Ved at træne (eller finjustere) og betjene modeller i Ollama inden for ens eget netværk eller team, Hele datalivscyklussen forbliver under din kontrolPrompts, dokumenter du uploader til modellen, genererede svar, metadata, historik – intet forlader dine maskiner. Dette er et perfekt valg for organisationer med strenge fortrolighedskrav, overholdelse af lovgivningen eller blot en modvilje mod at stole på tredjeparter til noget så strategisk som AI.

Derudover Omkostningerne pr. brug er ikke længere en hovedpineI stedet for at betale for hver million tokens til et kommercielt API, investerer du i hardware (eller en dedikeret server/VPS med en GPU), og fra da af er inferens stort set gratis. For automatiseringsintensive arbejdsgange, såsom integrationer med n8n eller interne helpdesk-systemer, er omkostningsforskellen enorm.

Et andet nøglepunkt er Fleksibilitet til at vælge og tilpasse modellerMed Ollama kan du kombinere små, meget hurtige modeller (Phi, TinyLlama, Orca Mini) til simple opgaver med større, mere kraftfulde modeller (Llama 3, Mistral, Gemma, Qwen, DeepSeek osv.) til kompleks ræsonnement eller kodegenerering. Og hvis du har brug for noget endnu mere specifikt, kan du altid finjustere det med teknikker som LoRa og servere den finjusterede model direkte fra Ollama.

Træn og betjen modeller i Ollama til sikker og effektiv intern brug

Nøglebegreber: LLM'er, transformere og kvantisering til lokal brug

Før vi dykker dybere ned i Ollama, er det værd at præcisere, uden for meget tæt teori, Hvad ligger der bag moderne LLM'er og hvorfor koncepter som kvantisering er så vigtige, når du vil køre dem på din egen hardware.

Store sprogmodeller er store neurale netværk trænet med selvovervåget maskinlæring på enorme mængder tekst og andre data. Deres mission er at forudsige det næstmest sandsynlige ord (token) givet de foregående, og derfra generere tekst, kode, resuméer, oversættelser eller analyser.

De fleste nuværende LLM'er er baseret på TransformerarkitekturDenne proces konverterer inputord til numeriske vektorer (indlejringer) og beregner ved hjælp af opmærksomhedsmekanismer, hvilke dele af konteksten der er mest relevante for at producere hvert outputord. På et meget overordnet niveau er der to grundlæggende blokke: en encoder, der "forstår" inputtet, og en dekoder, der genererer svaret, selvom mange chatmodeller i praksis kun er dekodere.

For at generere tekst behandler modellen tokens parallelt og beregner sandsynligheder for det næste ord og vælg en af ​​dem (ved hjælp af samplingsteknikker som temperatur, top_p eller top_k). Ordet tilføjes til konteksten, og cyklussen gentages, indtil svaret er komplet. Ændring af disse parametre påvirker direkte, om modellen er mere kreativ eller mere konservativ.

Det største praktiske problem med disse modeller er, at de i deres "rene" version bruger 16- eller 32-bit flydende kommavægte, hvilket resulterer i gigantiske filer og et enormt RAM- og VRAM-forbrug. Det er her, kvantisering, hvilket reducerer præcisionen af ​​vægtene (for eksempel til 4 eller 8 heltalsbits) for at reducere modellens størrelse og gøre den mere håndterbar på normal hardware.

Hardwarekrav til træning og visning af modeller med Ollama

Et tilbagevendende spørgsmål, når man overvejer at køre modeller lokalt, er, hvilke hardwarekrav der er nødvendige. Det korte svar er, at Du behøver ikke en supercomputer, men du kan heller ikke køre med en 15 år gammel pc. og vente på mirakler.

  • Hukommelse. For fornuftig brug af Ollama anbefales det mindst 16 GB RAMMed 8 GB kan du bruge små modeller (1B, 3B, 7B kvantiseret), vel vidende at der kan være hakken.
  • CPUIdeelt set bør du have moderne processorer med avancerede instruktionssæt (AVX2, AVX-512) og mindst 4 kerner, hvor 8 eller flere anbefales.
  • GPU. Det er ikke strengt obligatorisk, men hvis du ønsker hurtige svar Det gør en brutal forskelEn NVIDIA GPU med CUDA, en AMD GPU med ROCm eller en integreret Apple GPU (Metal) kan accelerere inferens 5-10 gange sammenlignet med en ren CPU.
  • OpbevaringOllama-software er letvægts, men modellerne er det ikke. Reserver mindst 50 GB Hvis du planlægger at downloade flere 7B- og 13B-modeller; hvis du skal spille med 70B-dyr eller flere kvantiserede varianter, er det ikke ualmindeligt at ende med tiere eller hundreder af gigabyte.
  • Sistema operativoOllama fungerer uden problemer i Linux, macOS og Windows (sidstnævnte er ofte afhængig af WSL eller Docker).

potlama

Ollama-installation og grundlæggende konfiguration til interne miljøer

En af de store fordele ved Ollama er, at Installationen udføres med én kommando i de fleste systemer og efterlader en tjeneste klar til brug både fra terminalen og fra eksterne applikationer via API.

I Linux er den mest almindelige metode at køre følgende kommando i en terminal:

curl -fsSL https://ollama.com/install.sh | sh

På Windows og macOS downloader du installationsprogrammet fra den officielle Ollama-hjemmeside, kører det, og systemet starter automatisk tjenesten i baggrunden. Du kan kontrollere, at alt fungerer korrekt med en simpel kommando. ollama –version på konsollen.

Som standard starter Ollama en lokal server i 127.0.0.1:11434 og gemmer de downloadede skabeloner i en bestemt sti afhængigt af systemet. I Linux ender de normalt med en typisk installation i /usr/share/ollama/.ollama/modelsDenne mappe er kritisk, fordi alle skabelonerne vil blive gemt der, og det er vigtigt at holde styr på den i forbindelse med pladsadministration, sikkerhedskopier og migreringer.

For at tilpasse Ollama til mere avanceret intern brug (for eksempel servering af modeller til andet netværksudstyr eller Docker-containere) bruges følgende miljøvariabler som tjenesten læser ved opstart. Nogle af de vigtigste er:

  • OLLAMA_HOST: grænseflade og port, som API'en lytter på (for eksempel 0.0.0.0:11434 for at acceptere eksterne forbindelser).
  • OVNMODELLER: brugerdefineret sti, hvor modellerne er gemt.
  • OLLAMA_ORIGINSCORS-kontrol til at tillade eller begrænse oprindelser, der kalder API'en.
  • OLLAMA_KEEP_ALIVE: den tid, en model forbliver indlæst i hukommelsen efter den sidste anmodning.
  • OLLAMA_DEBUGAktivér fejlfindingstilstand for at se flere detaljer i logfilerne.

I Linux-distributioner, der bruger systemd, er den typiske fremgangsmåde at redigere servicekonfigurationen med sudo systemctl rediger rocama.serviceTilføj linjerne under [Service] med de ønskede variabler (Environment="OLLAMA_HOST=0.0.0.0:11434", osv.), gem, og kør derefter sudo systemctl daemon-reload y sudo systemctl genstart ollama.

Modelhåndtering i Ollama: download, kørsel og administration

Når tjenesten er oppe at køre, er den grundlæggende arbejdsgang med Ollama meget ligetil: Download modeller, kør dem, forespørg dem via API, og slet eller klon dem om nødvendigt at personliggøre dem.

Download skabeloner

For at downloade en model fra Ollama-registreringsdatabasen bruges følgende kommando: ollama-trækfor eksempel:

ollama pull llama3.2:1b

Hvis du kun indtaster navnet uden tagget, vil den variant, der er markeret som, blive downloadet. senestehvilket normalt er en afbalanceret kombination af størrelse og præcision. På Ollamas hjemmeside kan du filtrere modeller efter tema (chat, kode, vision, tænkning osv.), og inden for hver enkelt vil du se flere vigtige tags:

  • størrelse (1B, 3B, 7B, 13B, 32B, 70B…): antal modelparametre, som påvirker både kvaliteten og de ressourcer, den har brug for.
  • Kvantisering (q2_K, q4_K_M, q8_0, fp16…): angiver komprimeringsskemaet; jo mindre bit og jo mere aggressiv kvantiseringen er, desto mindre hukommelse kræves der, og noget præcision går tabt.
  • Funktionel variant: instruere, chatte, kode, syn osv., hvilket markerer den type opgave, den er indstillet til.

Log ind

For at starte en interaktiv session med en model skal du bruge ollama løbemodelHvis modellen ikke blev downloadet, downloader den den først, og derefter vises en prompt i terminalen, hvor du kan skrive dine spørgsmål. I denne tilstand er der specielle kommandoer som f.eks. /Hjælp, /sæt parameter, /vise (for at se skabelon, parametre, licens), / Gemme y /indlæs af sessioner, eller /farvel at gå ud.

Ollama tillader også Send prompten som et direkte argument uden at gå ind i interaktiv tilstand, hvilket er meget praktisk til scripts eller hurtige integrationer, for eksempel:

ollama run llama3.2:1b "Opsummer denne fil: $(cat README.md)"

Tjek installerede modeller

For at se hvilke modeller du har installeret på maskinen, kan du bruge ollama listesom viser navn, ID, størrelse og ændringsdato. Hvis du har brug for detaljerede oplysninger om en model (metadata, fuld skabelon, standardparametre), er kommandoen ollama show model_name.

Når du ikke længere har brug for en skabelon eller har brug for at frigøre diskplads, kan du slette den med ollama rm modelnavnOg hvis du vil oprette din egen variant ud fra en anden (for eksempel for at ændre systemprompter, skabeloner eller parametre), skal du Ollama cp, som kopierer modelmanifestet uden fysisk at duplikere vægtfilen, hvilket sparer en masse plads.

Det er også meget nyttigt til interne miljøer. Ollama psDette viser, hvilke modeller der er indlæst i hukommelsen, hvor meget plads de optager, og om de kører på CPU'en eller GPU'en. Derfra kan du overvåge, hvad der er aktivt på et givet tidspunkt, og stoppe det med... ollama stop modelnavn når du ikke har brug for det.

Ollama

Anbefalede gratis modeller og udvælgelseskriterier

Det smukke ved at bruge Ollama er, at du kan arbejde med en enorm samling af åbne modeller af høj kvalitetMange af dem er udgivet under frie licenser, der tillader deres brug, ændring og videredistribution uden for mange begrænsninger.

For at en model kan betragtes som fuldstændig fri, kræves det normalt, at deres vægte kan downloades uden begrænsningerat kildekoden er tilgængelig, at den bruger gratis softwarelicenser (MIT, Apache 2.0, GPL…), og at den ikke pålægger alt for restriktive brugsbegrænsninger. Nogle meget interessante eksempler inden for Ollama-økosystemet er:

  • DeepSeek-R1Med vægte under MIT-licens tillader det kommerciel brug og udledning af nye modeller (inklusive destillation) uden problemer.
  • Phi-4Microsoft-model af 14B-parametre, trænet med syntetiske data og offentlige kilder, også under MIT, meget praktisk til generelle opgaver.
  • Mistral 7BDen distribueres under Apache 2.0 med instruktions- og færdiggørelsesvarianter, er hurtig og meget velafbalanceret med hensyn til kvalitet/ydeevne.
  • Qwen2.5: familie med størrelser fra 0.5B til 72B, de fleste under Apache 2.0 undtagen nogle størrelser licenseret under Qwen.

Når du overvejer, hvilken model du skal bruge eller forbedre til din virksomhed, er størrelse og licenser ikke de eneste faktorer, der betyder noget: du bør også se på den specifikke opgaveTil generel chat og virksomhedsassistenter fungerer Llama 3, Mistral, Gemma eller Qwen normalt rigtig godt; til kodegenerering skiller varianter som [indsæt variant her] sig ud. CodeLlama eller DeepSeek-CoderTil analyse eller opsummering af tekster har modeller mærket som [typer af modeller] en tendens til at klare sig bedre. instruereOg hvis du har brug for at arbejde med billeder (multimodal), skal du bruge specifikke modeller som Llava, Moondream eller Bakllava.

Fra da af er det beviserne, der tæller: mål på dit eget datasæt og dine egne use cases hvordan hver model præsterer, hvad angår responstid og outputkvalitet, så du kan vælge den, der bedst passer til dine behov.

Træning og finjustering af modeller til intern brug

Det er fint at vise modeller, som de kommer fra Ollama-registret, til at starte med, men så snart du ønsker, at AI skal tale dit forretningssprog, styre dine processer eller antage en bestemt tone, finjustering kommer i spilDet handler ikke om at træne en LLM fra bunden (det er en helt anden boldgade), men om at finjustere en basismodel med dine egne data.

Den mest almindelige måde at gøre dette billigt på er at bruge LoRA (Lavrangstilpasning)Dette tilføjer lette ekstra lag oven på den originale model. Disse lag lærer de "forskelle", du ønsker at introducere, uden at påvirke basisvægtene, hvilket reducerer træningsomkostningerne betydeligt og giver dig mulighed for at anvende ændringer uden at miste den overordnede forståelse af modellen.

Biblioteker som f.eks. AxolotlDette forenkler udarbejdelsen af ​​datasæt og finjusteringen af ​​modeller som Mistral-7B. Ideen er at udarbejde et sæt eksempler i det passende format (normalt JSONL med rolle- og indholdsfelter, der følger system-/bruger-/assistentskemaet), der repræsenterer de ideelle samtaler eller svar til din use case.

I konfigurationsfilen (for eksempel config.yaml) definerer du ting som:

  • adapter: Lora for at angive, at du vil bruge LoRA.
  • base_model: mistralai/Mistral-7B-v0.1 eller en anden kompatibel model.
  • indlæs_i_8bit: sand for at spare hukommelse under træning.
  • datasæt med stien til datasættet og tilknytningen af ​​rolle-/indholdskolonnen.

Med hensyn til hardware, finjustering af en model af denne størrelse Det kræver normalt en ordentlig GPUHvis du ikke har en A100 eller lignende derhjemme, giver løsninger som RunPod, Colab, Kaggle eller cloudbaserede GPU-virtuelle maskiner dig mulighed for at leje processorkraft pr. time. For blot et par euro kan du træne flere LoRa-varianter, hvis datasættet ikke er enormt.

Fra den raffinerede model til GGUF og implementering i Ollama

Med den sammensmeltede Hugging Face-formatmodel i din besiddelse er det næste skridt til at servere den i Ollama konverter det til GGUF-formatsom er den, der bruges af llama.cpp og dermed Ollama, til at udføre effektiv inferens på forbruger-CPU'er og GPU'er.

Scriptet bruges til konverteringen convert_hf_to_gguf.pyangiver mappen for den fusionerede model, kvantiseringstypen (f.eks. q8_0) og outputnavnet på GGUF-filen. Noget i retning af dette:

python3 convert_hf_to_gguf.py fusioneret/ –outfile model_q8_0.gguf –outtype q8_0

Denne resulterende, kvantiserede og kompakte fil er, hvad du skal kopiere til mappen Ollama models. Hvis du bruger Ollama i en Docker-container med en GPU, er den nemmeste måde at gøre det. saml et volumen mellem dit system og containeren, så GGUF-filen er tilgængelig i /root/.ollama/models eller den sti, du har konfigureret.

Docker-orkestrering udføres normalt med en havnearbeider-compose.yml Start Ollama-containeren, eksponér port 11434, monter models-mappen, og deklarer om nødvendigt GPU-brug. Fra da af opfører containeren sig præcis som en native installation: den reagerer på HTTP API-anmodninger og indlæser modeller fra den delte sti.

For at Ollama kan "se" din brugerdefinerede model, skal du oprette en Modelfil (meget lig en Dockerfile), hvor du definerer, hvilken GGUF-fil der skal bruges, hvilke standardparametre den skal have, og hvilken prompt-skabelon der skal anvendes. En simpel Modelfile kunne være:

FRA model_q8_0.gguf
PARAMETER temperatur 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40
PARAMETER num_ctx 4096

Når modelfilen er oprettet i den relevante mappe, registrerer du modellen i Ollama med ollama opret modelnavn -f sti/ModelfilFra det øjeblik kan du bruge den som enhver anden, både i terminalen (ollama run model_name) og via API eller fra grafiske grænseflader som Open WebUI.

Sikker servering af modeller: Lokal API, Open WebUI, n8n og mere

Når modellen er trænet, kvantificeret og registreret i Ollama, begynder den sjove del: stil det til tjeneste for dine interne applikationerOllama eksponerer en HTTP API på port 11434 med slutpunkter til tekstgenerering og andre funktioner og tilbyder også en kompatibilitetstilstand med OpenAI API'en, hvilket gør det nemmere at integrere lokale modeller i apps, der oprindeligt kommunikerede med skyen.

Hvis du ønsker en grafisk brugerflade i ChatGPT-stil til dit team, er Open WebUI en meget populær mulighed. Den er nem at implementere med Docker, idet den peger på Ollama-backend'en ved hjælp af server-URL'en (f.eks. http://localhost:11434 eller http://host.docker.internal:11434 hvis den er inde i en anden container), og tillader brugerne vælg modellen, administrer historik, konfigurer parametre og chat uden at røre terminalen.

For mere avanceret automatisering kommer n8n i spil som en floworkestrator. Takket være Ollamas native node kan du kald af lokale modeller i arbejdsgange der læser e-mails, behandler PDF'er, konsulterer eksterne API'er eller opdaterer databaser, alt imens følsomme data holdes inden for din infrastruktur.

Nøglen til at forbinde n8n med Ollama er at konfigurere variablen korrekt. OLLAMA_HOST På AI-serveren (f.eks. 0.0.0.0:11434) og i n8n-legitimationsoplysningerne skal du pege på den korrekte adresse (localhost, hvis de deler en vært, eller host.docker.internal, hvis n8n er i Docker). Derfra skal du blot vælge modellen på hver node og bygge prompterne ud fra de oplysninger, der flyder gennem arbejdsgangen.


Tilføj som foretrukken kilde