Masteroppgaveforskning v1.0 Spesifikasjon Aktiv utvikling

CorpusAI CO2-utslippsmodell

En hurtig, matematisk forankret språkmodell med 3 milliarder parametere for tolkning av nordiske ikke-kvotepliktige klimagassutslippsdata. Bygget gjennom Knowledge Distillation fra en 32B-lærermodell, forankret i verifisert offentlig statistikk for å garantere faktamessig nøyaktighet.

Program M.Sc. Innovasjon og teknologiledelse
Spesialisering Systems Engineering
Modellparametere 3B (destillert fra 32B)
Inferensmål AMD EPYC CPU (Ollama)
SEKSJON 01

Overordnet sammendrag

CorpusAI CO2-utslippsmodellen er et anvendt forskningsprosjekt som utforsker skjæringspunktet mellom destillasjon av store språkmodeller, domenespesifikk forankring og utrulling på edge-maskinvare for miljødataanalyse. Prosjektet adresserer et kritisk gap i det nordiske klimarapporteringsøkosystemet: behovet for raske, nøyaktige og tolkbare AI-systemer som kan prosessere ikke-kvotepliktige utslippsdata (Non-ETS) fra nasjonale statistikkbyråer.

Kjerneinnovasjonen er en tretrinns metodikk:

Trinn 1 Knowledge Distillation
Trinn 2 Ankerforankring
Trinn 3 Edge-utrulling

Knowledge Distillation (32B → 3B) komprimerer resonnement­evnene til en stor lærermodell inn i en kompakt elevmodell optimalisert for CPU-inferens. Ankerdata fra verifiserte offentlige kilder (SSB, Miljødirektoratet, Naturvårdsverket) injiseres under trening for å eliminere hallusinasjoner og sikre at alle utdata er sporbare til «Ground Truth»-statistikk. Den resulterende modellen kjører på standard AMD EPYC-maskinvare via Ollama, og oppnår responstider på under ett sekund uten GPU-krav.

Denne spesifikasjonen dokumenterer den fullstendige systems engineering-livssyklusen: fra dataforberedelse og modelltrening gjennom kvalitetsporter og produksjonsutrulling. Den fungerer som det tekniske fundamentet for avhandlingskomponenten som adresserer forskningsspørsmålet: «Hvordan kan Knowledge Distillation og dataforankringsteknikker muliggjøre nøyaktig, hallusinasjonsfri LLM-inferens for miljørapportering på ressursbegrenset maskinvare?»

SEKSJON 02

Arkitektur­oversikt

Systemarkitekturen følger et trinnvis destillasjonspipeline-mønster, der hver komponent er frakoblet og uavhengig verifiserbar — et sentralt systems engineering-prinsipp som muliggjør inkrementell validering. Arkitekturen består av fire primære delsystemer:

Diagram av CorpusAI-systemarkitekturen
L
Læreren
Qwen 2.5-Coder-32B

Lærermodellen med 32 milliarder parametere kjører på Hippo/Viper GPU-klusteret (RTX 5090). Den prosesserer ankerdata og genererer Chain-of-Thought (CoT) resonnementpar som danner treningskorpuset for elevmodellen. Lærerens rolle er å demonstrere hvordan man tenker om utslippsdata — ikke bare hva svaret er.

E
Eleven
Qwen 2.5-Coder-3B-Instruct

Elevmodellen med 3 milliarder parametere er utrullingsmålet. Trent via LoRA-finjustering på lærerens destillerte utdata og forankret i verifisert statistikk, oppnår den nær lærernivå nøyaktighet med 10× raskere inferenshastighet. Kvantisert til Q8_0 GGUF for ren CPU-utrulling på S4-serveren (AMD EPYC).

A
Ankeret
MariaDB · nordic_emissions_raw

Ankerlaget er systemets «Ground Truth»-garanti. Råutslippsdata fra SSB (Statistisk sentralbyrå), Miljødirektoratet og Naturvårdsverket lagres i en normalisert MariaDB-tabell og transformeres til faktaark på naturlig språk under trening. Dette sikrer null hallusinasjoner på faktaspørsmål.

R
RAG-laget
Qdrant + MariaDB Hybridsøk

Ved inferenstidspunktet utfører et Retrieval-Augmented Generation (RAG)-lag hybridsøk på tvers av Qdrant-vektorembeddinger og MariaDB-strukturerte data. Hentede tekstbiter og ankerdatafakta injiseres i promptkonteksten, slik at 3B-eleven kan gi siterte, verifiserbare svar.

SEKSJON 03

Dataforberedelse og syntese

Fase 1 av pipelinen fokuserer på å konvertere strukturerte utslippsdata til treningsklare formater. Dette er en totrinns prosess: Ankerdataekstraksjon og Lærerresonnementgenerering.

A
3A. Ankerdataekstraksjon
Strukturert → Faktaark på naturlig språk

Rårader fra nordic_emissions_raw-tabellen ekstraheres og transformeres til lesbare ankerstrenger. Denne transformasjonen er deterministisk — hvert faktaark tilsvarer 1:1 en databaserad, noe som sikrer full sporbarhet.

Kildeformat (MariaDB-rad):

-- Eksempelrad fra nordic_emissions_raw id: 501, country: 'NO', category: 'Transport', year: 2024, co2_tonnes: 1200000, location: 'Oslo'

Ankerstreng (utdata):

"I 2024 slapp veitransportsektoren i Oslo, Norge, ut 1,2 millioner tonn CO2-ekvivalente klimagasser." // Anker-ID: 501 | Kilde: SSB Tabell 08940 // Konfidensgrad: VERIFISERT | Sist oppdatert: 2025-03-01

Hver ankerstreng bærer metadata som kobler tilbake til kilderadens ID og den opprinnelige statistikktabellen. Dette muliggjør etterkontroll: enhver modellutdata kan spores tilbake gjennom anker­strengen til den eksakte databaseraden og offentlige publikasjonen den stammer fra.

B
3B. Lærerresonnement (Destillasjonsfeed)
32B genererer Chain-of-Thought treningspar

32B-lærermodellen prosesserer hver ankerstreng og genererer strukturerte Chain-of-Thought (CoT) treningspar. Disse parene lærer elevmodellen hvordan man resonnerer om utslippsdata — ikke bare å memorere fakta.

Inndataprompt til læreren:

"Bruk de oppgitte ankerdataene til å forklare implikasjonene av disse utslippene i forhold til Norges 2030-klimamål." // Ankerkontekst: [Ankerstreng for rad 501]

Utdata (JSONL-treningspar):

{ "instruction": "Forklar Oslos 2024-transportutslipp i forhold til Norges Klimamålet 2030-mål.", "response": "<think> Oslos veitransport slapp ut 1,2M tonn CO2-ekv i 2024. Norges Klimamålet: 55% reduksjon fra 1990-nivåer innen 2030. 1990-utgangspunkt for transport: ~16M tonn nasjonalt. 55% reduksjonsmål: ~7,2M tonn innen 2030. Oslo utgjør ~7,5% av nasjonale transportutslipp. Nåværende utvikling tilsier at Oslo trenger 38% reduksjon i de gjenværende 6 årene for å nå sin proporsjonale andel. </think> Oslos veitransportsektor slapp ut 1,2 millioner tonn CO2-ekvivalenter i 2024. Under Norges Klimamålet-rammeverk (55% reduksjon fra 1990-nivåer innen 2030), representerer dette...", "anchor_id": 501, "pair_type": "reasoning" }

<think>-blokken er kritisk: den eksponerer lærerens matematiske resonnement (prosentberegninger, grunnlinjesammenligninger, referanser til regulatoriske rammeverk) slik at elevmodellen lærer å replisere denne analytiske prosessen, ikke bare den endelige teksten.

SEKSJON 04

Trenings­konfigurasjon

Treningsfasen («Raffineringskjøringen») bruker Unsloth på Hippo GPU-serveren for å maksimere gjennomstrømningen på RTX 5090. Datasettet er nøye balansert for å produsere en modell som er både nøyaktig og robust.

4A
Datasettsammensetning
Balansert JSONL-treningskorpus

Treningsdatasettet er strukturert som et balansert JSONL-korpus med tre distinkte partyper, der hver tjener en spesifikk pedagogisk funksjon:

Ankerdirektpar 30%
Resonnementpar (CoT) 50%
Robusthets- / negativpar 20%
Partype Andel Eksempel S → S Formål
Ankerdirekte 30% «Hva var Oslos 2024-transportutslipp?» → «1,2M tonn» Eksakt faktahenting fra Ground Truth-data
Resonnement (CoT) 50% «Sammenlign avfallsutslipp i Oslo og Stockholm» → <think>-blokk + resultat Flertrinns matematisk og analytisk resonnering
Negativ / robusthet 20% «Hva er utslippene for Mars?» → «Datasettet inneholder ikke planetariske data utenfor Norden» Grensehåndheving; lærer modellen å avvise spørsmål utenfor domenet
4B
Hyperparametere (Hippo / Unsloth)
LoRA-konfigurasjon for RTX 5090

Bruker Unsloth på Hippo-serveren for å maksimere treningsgjennomstrømning på RTX 5090 (32GB VRAM). LoRA-konfigurasjonen prioriterer høy-tetthets adaptervekter for å bevare matematisk resonneringspresisjon under destillasjon.

ParameterVerdiBegrunnelse
LoRA Rank (r) 64 Høy tetthet nødvendig for bevaring av matematisk logikk over destillasjonsgrensen
LoRA Alpha (α) 128 Alpha/Rank-forhold på 2,0 balanserer adapterinnflytelse mot basismodellkunnskap
Målmoduler q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj Full attention + MLP-målretting sikrer modifisering av resonnementsbaner
Læringsrate 1 × 10-4 Cosinusplan med oppvarming; forhindrer katastrofal glemming av basisevner
Kontekstlengde 4 096 tokens Tilstrekkelig for CoT-blokker + ankerkontekst; større vinduer forringer treningshastigheten
Batchstørrelse 4 (gradientakkumulering: 8) Effektiv batchstørrelse 32; passer innenfor 32GB VRAM-budsjett med Unsloth-optimaliseringer
Epoker 3 Domenespesifikke data drar nytte av flere gjennomganger; overfitting overvåkes via evalueringstap
Vektregularisering 0,01 Lett regularisering for å forhindre overfitting på små spesialiserte datasett
Kvantisering (trening) 4-bit (NF4) QLoRA-tilnærming: basismodell i 4-bit, adaptere i float16 for presisjon
SEKSJON 05

Evaluering og kvalitetsporter

Modellen må bestå tre «Blue Note»-kvalitetsporter før utrulling. Disse portene er utformet som sekvensielle verifikasjonstrinn — inspirert av systems engineering V&V-metodikk (Verifikasjon og Validering) — der hver port tester et progressivt høyere nivå av systemkapabilitet.

Port 01 — Verifikasjon
Matematikktesten
En skriptbasert automatisert kontroll av 100 spørsmål der modellen må hente ut den eksakte numeriske verdien fra ankerdataene. Ingen avrunding, ingen tilnærming, ingen omformulering — modellen må reprodusere Ground Truth-tallet presist.

Denne porten validerer faktamessig nøyaktighet: det mest grunnleggende kravet for et utslippsrapporteringssystem. Ett eneste hallusinert tall i en klimarapport kan undergrave politiske beslutninger.
Terskel: >99% nøyaktighet
Port 02 — Validering
Logikktesten
Evaluerer <think>-blokken for korrekte matematiske operasjoner. Når modellen hevder en «Total», er det faktisk summen av de refererte «Sektorene»? Når den beregner en prosentendring, er regnestykket korrekt?

Denne porten validerer resonnementintegritet: sikrer at den destillerte modellen ikke har lært å produsere plausibelt-klingende men matematisk ukorrekte Chain-of-Thought-sekvenser.
Terskel: >95% logisk konsistens
Port 03 — Akseptanse
«Vibe»-testen
En menneskelig evaluering som sikrer at modellen bruker profesjonell norsk/engelsk terminologi egnet for myndigheter og akademiske målgrupper. Ingen «AI-babling», ingen smigrende innledninger («Godt spørsmål!»), ingen overdreven forsiktighet utover det som er vitenskapelig berettiget.

Denne porten validerer domenetilpasning: modellen må lese som en rapport fra en klimaanalytiker, ikke en chatbot. Terminologien må samsvare med SSBs og Miljødirektoratets standarder.
Terskel: Godkjenning av ekspertpanel

KVALITETSPORTENES TILORDNING TIL SYSTEMS ENGINEERING V-MODELLEN

CorpusAI V-modell for verifikasjon og validering
SEKSJON 06

Utrullings­pipeline

Fase 4 transformerer de trente LoRA-adapterne til et produksjonsklart inferenssystem. Pipelinen er designet for deterministisk reproduserbarhet: hvert trinn er skriptet, versjonskontrollert og produserer bitidentiske utdata fra identiske inndataverdier.

Trinn 1 LoRA Merge
Trinn 2 GGUF-konvertering
Trinn 3 Q8_0-kvantisering
Trinn 4 Ollama-utrulling
Sammenslåing og kvantisering

LoRA-adaptere slås sammen med basis Qwen 2.5-Coder-3B-modellen ved hjelp av Unsloths merge-verktøy. Den sammenslåtte modellen konverteres deretter til GGUF-format og kvantiseres til Q8_0 (8-bits kvantisering). Q8_0 er valgt fremfor Q4_K_M for denne brukssaken fordi matematisk presisjon er avgjørende — den marginale hastighetsgevinsten ved 4-bits kvantisering rettferdiggjør ikke risikoen for numeriske avrundingsartefakter i utslippsberegninger.

RAG-forsterket inferens

Den utrullede modellen kjører via Ollama på Server 4 (AMD EPYC, 64 kjerner). Ved spørringstidspunktet sikrer en totrinns promptrutingsprosess nøyaktighet:

Trinn 1: Hybridsøk henter relevante tekstbiter fra Qdrant (semantisk likhet) og MariaDB (strukturert spørring) basert på brukerens spørsmål.

Trinn 2: 3B-modellen tolker de hentede tekstbitene sammen med injiserte ankerdatafakta for å produsere et endelig, sitert svar. Hver påstand er sporbar til en kilderad.

Inferensarkitektur (produksjon)
Diagram av CorpusAI-grensesnittarkitekturen i produksjon
SEKSJON 07

Kritiske ytelses­flaskehalser

To kritiske flaskehalser er identifisert under innledende prototyping. Begge krever avbøtende tiltak før utrulling for å sikre produksjonspålitelighet.

Flaskehals 1: Tegnsettartefakter

Nordiske tegn (å, ø, æ, ä, ö) i kildedata kan produsere HTML-entitetsartefakter (&#xE5;, &#xF8;) ved skraping fra nettbaserte statistikkgrensesnitt. Hvis disse artefaktene vedvarer i treningsdataene, kan 3B-modellen lære å reprodusere dem i utdata — og generere svar som «Milj&#xF8;direktoratet» i stedet for «Miljødirektoratet».

Avbøtende tiltak: «Hex Scrub»-forbehandlingsskriptet må kjøres på alle kildedata før læreren genererer treningspar. Dette skriptet normaliserer alle HTML-entiteter til deres UTF-8-ekvivalenter og validerer tegnsettskonsistens på tvers av hele nordic_emissions_raw-tabellen.

Flaskehals 2: KV Cache-oppblåsing (CPU-inferens)

På S4-serveren (AMD EPYC, ren CPU-inferens) vokser Key-Value-cachen lineært med kontekstlengden. Ved full 4 096 tokens treningskontekst forringes inferenslatensen betydelig ettersom KV-cachen bruker tilgjengelig RAM-båndbredde. EPYCs minnesubsystem, selv om det har rikelig kapasitet, kan ikke matche GPU HBM-båndbredde for tilfeldige tilgangsmønstre typiske for transformer-attention.

Avbøtende tiltak: Produksjonsinferenskontekst er begrenset til 2 000 tokens. RAG-laget forfiltrerer hentede tekstbiter for å holde seg innenfor dette budsjettet. Denne begrensningen er akseptabel fordi 3B-modellens primære funksjon er tolkning av forhåndshentede data, ikke åpen generering. 2K-kontekstvinduet har god plass til: systemprompt (~200 tokens) + hentede tekstbiter (~800 tokens) + ankerfakta (~400 tokens) + genereringsrom (~600 tokens).

SEKSJON 08

Systems Engineering-kontekst

Dette prosjektet er utviklet innenfor rammen av en Master of Science i Innovasjon og teknologiledelse med spesialisering i Systems Engineering. Spesifikasjonen er bevisst tilordnet etablerte SE-metodikker:

Kravhåndtering

De tre kvalitetsportene (seksjon 5) implementerer direkte INCOSEs SE Handbook-verifiseringskategorier: Inspeksjon (Matematikktesten — automatisert numerisk verifisering), Analyse (Logikktesten — matematisk konsistenskontroll) og Demonstrasjon (Vibe-testen — ekspertpanelevaluering). Hver port har eksplisitte bestått/ikke-bestått-kriterier, som sikrer kravenes sporbarhet fra interessentbehov til testresultater.

V-modellintegrasjon

Prosjektets livssyklus følger V-modellmønsteret: venstre side (dekomponering) tilordner domenekrav → systemdesign → komponentspesifikasjoner, mens høyre side (integrasjon) tilordner enhetsverifisering (Port 01) via systemvalidering (Port 02) til akseptansetesting (Port 03). Denne strukturen er dokumentert i seksjon 5s V-modelldiagram.

Grensesnitthåndtering

Arkitekturens fire delsystemer (Lærer, Anker, Raffineri, RAG) kommuniserer gjennom veldefinerte grensesnitt: JSONL for treningsdatautveksling, SQL for ankerspørringer, GGUF for modellserialisering og REST-APIer for inferens. Hvert grensesnitt har en definert datakontrakt, noe som muliggjør uavhengig utvikling og testing av delsystemer.

Innovasjonsledelsesperspektiv

Fra et innovasjonsperspektiv representerer CorpusAI en prosessinnovasjon innen miljørapportering: anvendelse av Knowledge Distillation for å skape domenekspert-AI-systemer som kan operere på standard maskinvare. Den kommersielle levedyktighetstesen er at organisasjoner (kommuner, miljøetater) kan rulle ut spesialiserte AI-modeller uten skyavhengighet eller GPU-infrastrukturkostnader — en betydelig barrierereduksjon for nordisk offentlig sektors adopsjon.

Forskningsmetodisk tilpasning
SE-konseptCorpusAI-implementeringAvhandlingskapittel
Interessentanalyse Nordiske klimaetater (SSB, Miljødirektoratet), kommunale planleggere, policyforskning Kapittel 2
Kravdekomponering Nøyaktighet (>99%), hastighet (<1s), domeneavgrenset, CPU-utrullbar, hallusinasjonsfri Kapittel 3
Arkitekturdesign Lærer-Elev-Anker-RAG fire-delsystems dekomponering (seksjon 2 i denne spesifikasjonen) Kapittel 4
Verifikasjon og validering Tretrinns kvalitetsportrammeverk: Matematikk, Logikk, Vibe (seksjon 5 i denne spesifikasjonen) Kapittel 5
Konfigurasjonsstyring Git-kontrollerte treningskonfigurasjoner, versjonerte GGUF-artefakter, reproduserbare pipelineskript Kapittel 6
Risikostyring Tegnsettartefakter, KV-cache-oppblåsing, domenegrenselekkasje (seksjon 7 i denne spesifikasjonen) Kapittel 7
SEKSJON 09

Neste steg

1
Kjør skraperen
Datainnsamling

Sørg for at nordic_emissions_raw-tabellen har minst 5 000 ferske rader fra SSB, Miljødirektoratet og Naturvårdsverket. Kjør Hex Scrub-tegnsettsnormaliseringen på alle innhentede data.

2
Generer feeden
Treningsdatasyntese

Bruk 32B Coder på Viper for å bygge de første 2 000 spørsmål-og-svar-parene etter 30/50/20-datasettsammensetningen. Valider JSONL-format og anker-ID-integritet før trening.

3
Tren og evaluer
Raffineringskjøring

Utfør LoRA-trening på Hippo via Unsloth. Kjør alle tre Blue Note-kvalitetsportene. Iterer på datasettsammensetningen hvis Port 01 eller 02 feiler.

4
Rull ut til S4
Produksjonslansering

Slå sammen adaptere, kvantiser til Q8_0 GGUF, rull ut via Ollama på S4. Konfigurer RAG-laget med Qdrant + MariaDB hybridsøk. Produksjonskontekstgrense: 2 000 tokens.

CorpusAI CO2-utslippsmodell v1.0

Et GilliganTech-forskningsprosjekt — Blue Note Logic Inc. × Gilligan Tech ENK

Master of Science · Innovasjon og teknologiledelse · Systems Engineering

👤 Dave Gilligan Creator & Architect
🎵 Blue Note Logic Inc. Infrastructure & Tech
🇳🇴 Gilligan Tech ENK Local Operations, Norway