Introduktion#

Välkommen till LNU Pinakes MLOps-projektets dokumentation! Detta är en interaktiv kodvisning med kommentarer och förklaringar.

Innehåll här#

Projektöversikt#

ML Weather är ett maskininlärningsprojekt för att förutspå temperaturen utanför min lägenhet. Projektet utgör en fullt fungerande High Performance Computing (HPC) demonstration, driftas via Kubernetes inuti Docker och har såväl Slurm-noder i form av master (för att fördela maskinlärningsjobb) och två workers som noder samt en Postgresql databas. FastAPI utgör drivande backend som också har ansvar att generera all frontend på lnu.pinakes.se genom att svara med html och javascript direkt som svar på API anrop. Systemet tränar två olika maskinlärningsmodeller á 4 tidshorisonter vardera med hjälp av SLURM och serverar prediktioner via REST API. Det körs på en virutell maskin i Azure som den delar med en handfull ytterligare projekt genom att Traefik körs som reverse proxy och dirigerar trafiken till de Docker containers som besökare vill nå. För den nyfikne finns också en OpenAPI-dokumentation som interaktivt kör direkta anrop mot API:erna.

Systemet har varit live sedan 14 juni och har samlat över 750 000 datapunkter. Var femte minut hämtas data från Norges metereologiska institut. Systemet tränar själv om maskinlärningsmodellerna tre gånger per timme - och besökare kan via knappen “Starta manuell träning” också starta en träning och se dess status direkt.

Projektet är givetvis fullständigt oanvändbart jämfört med att snabbt besöka klart.se. Det kompletta systemet togs fram av mig på under 12 kalenderdagar inför en intervju som forskningsingenjör på LNU. Jobbet skulle inneburit att jag då skulle haft rollen från andra sidan, jämfört med det AI-pilotprojekt som jag körde med stöd från LNU angående textgenerering utifrån skolstatistik som Tillväxtverket finansierade.

ML Weather-projektet utgör därutöver den allra första första gången jag alls använt Kubernetes, och även första gången med mer omfattande maskinlärning än vad jag läste på Linnéuniversitetet hösten 2024 (multipla modeller och tidshorisonter, multi-worker miljö med Slurm, automatiskt omträning och inhämtning etc.). Jag lär mig snabbt och är helt enkelt en fena på felsökning - med ett mål satt och en deadline så går det mesta.

Projektet har putsats till inför september och har framförallt fått mer utförliga docstrings och kan därför auto-generera de mycket användbarbara sidorna i avsnittet “Auto-genererad dokumentation från Python docstrings”, samt nytt system för denna dokumentationen (Sphinx i stället för Mkdocs).

Systemdiagram#

Länk till mermaid-diagram på mermaid.live (kod genererad av Gemini 2.5 Pro; ej uppdaterad för Sphinx i stället för Mkdocs)

Andra publika projekt#

ML Weather-projektet är inte helt open source i bemärkelsen att allt finns på Github; det är presentabelt nog för det syfte det numera har.

Utmärkt presentabelt är däremot ett annat projekt jag har, som visar en komplett datapipeline med LLM funktioner. Projektet går på ett par minuter från rå skoldata till beskrivande skoltexter på din dator med hjälp av ett interaktivt och guidande program - och du får därtill en enkelt webbplats för att presentera texterna: skoltexter-by-ai. Demon är i praktiken en light-variant av vad som annars tillhandahålls på skoldata.se och togs initialt fram inför en kort presentation för ett 40-tal branschkollegor vid nätverksträffen VT25 för Data & analys Linné, efter att mina ‘10-15 min’ utökades till en dryg timmes tech-demo och diskussion då de två andra presentatörerna hastigt insjuknat samma dag. Önskemål från samtalen om att ta fram en publik variant är grunden till vad som finns på Github nu - se ursprunglig commit för exakt utgåva av vad som delades inom nätverket.

Innehåll på webbplatsen#