Gå til hovedindhold

Big Sleep Data: LUMI supercomputeren træner neurale netværk til gavn for søvnforskning

2 kandidatstuderende ved Aarhus Universitet i Danmark har bidraget til international forskning ved at udvikle værktøjer til træning af neurale netværk på LUMI.
Af
06/09/2023 14:09
Billede
LUMI Søvnforskning
Foto: Kaare Mikkelsen

Andreas Larsen Engholm og Jesper Strøm griner lidt, da det bliver sagt højt under interviewet, at de som studerende allerede har bidraget til bedre forskning. Det er ikke desto mindre sandt, for de back-end værktøjer, som de 2 unge mænd har udviklet for at kunne træne udvalgte søvnscoringsmodeller på LUMI-supercomputeren, kommer til at ligge frit tilgængelige på GitHub i en rimelig, letfordøjelig form.

Værktøjerne vil gøre det nemmere for andre forskere i fremtiden at indlæse flere søvndata. Flere data giver bedre søvnscoringsmodeller og mere præcise fortolkninger af søvndata, fordi de neurale netværk bliver dygtigere og dygtigere til automatisk at aflæse søvnstadier korrekt.

Machine Learning med big data indenfor søvn-scoring/søvnforskning

Det var faktisk Jespers og Andreas speciale-vejleder, adjunkt og søvnforsker Kaare Mikkelsen (Aarhus Universitet, Danmark), der foreslog Jesper og Andreas at lave Machine Learning indenfor søvnscoring på nogle af favorit-modellerne for at se, hvor godt det kunne blive med big data i forhold til at komme tæt på, hvad trænede søvn-specialister kan – altså mennesker. Det er sådan, at indenfor søvnscoring eksisterer en ”gold-standard”, nemlig at der sidder en søvnekspert og kigger hele natten igennem på computeren. Ud fra en manual bestemmer søvneksperten, for hvert 30 sek., hvilket søvnstadie personen befinder sig i.

Det er en opgave, der skriger på automatisering. Kan man lave en analyse-model, der reproducerer, hvad en søvnekspert ville have svaret? Det er ikke i sig selv en opgave, der er ligetil, fordi der er forskelle i kultur, måleapparater mv. Hvordan får man noget fornuftigt ud af det alligevel, og hvornår ender man der, hvor vores Machine Learning-model er en bedre standard end mennesker, der kigger? Det var udgangspunktet.

LUMI kommer ind i billedet

  1. Hvornår: april til juni 2023
  2. Tildeling: 5000 Terabyte timer, 3500 GPU-timer på LUMI via DeiC’s ”Sandkasse”
  3. Løsning: Software designet til at køre på parallelle GPU-noder samt temp-lagring af data op til 50 TB
  4. Studerende: Andreas Larsen Engholm, M.Sc. Computer Engineering, AU
  5. Studerende: Jesper Strøm, M.Sc. Computer Engineering, AU
  6. Vejleder: Kaare Mikkelsen, adjunkt, Biomedicinsk Teknologi, Institut for Elektro- og Computerteknologi, AU

Kaare Mikkelsen var blevet opmærksom på LUMI’s superkræfter via sin prodekan, Brian Vinther, AU, og med Jesper og Andreas’ kompetencer indenfor computerteknologi var det oplagt, at de kunne få stor glæde af at arbejde på LUMI i deres opgave. De skulle simpelthen træne neurale netværk i at søvnscore på baggrund af 20.000 PSG (Polysomnography) søvn-data, for at se hvilken betydning det har at arbejde med så meget data. Kan modellerne komme tæt på andre forskningsprojekters resultater, hvor der er anvendt søvn-specialister? Det handler altså om, hvor godt man kan få trænet de neurale netværk.

Arbejdet begynder: Normalisering af 21 data-sæt tager tid

Projektet startede på AU’s eget data-anlæg, som de 2 studerende kendte i forvejen. Men allerede i klargøringsfasen, hvor kun 1/5 af datasættet var uploadet, kom der en fejlmeddelelse om, at data fyldte for meget. Det satte fart i processen med at komme i gang på LUMI. Andreas og Jesper fik en introduktion til, hvordan man benytter SLURM [LUMI benytter kø-systemet SLURM Workload Manager, red] og de skulle bygge deres Container [softwareredskab til beregninger, red].

”Vi loadede al data direkte ned fra internettet til LUMI via nogle scripts, vi selv udarbejdede. Så skulle vi i gang med pre-processering, dvs. behandling af data, så alle vores 21 forskellige datasæt lå i det format, vi gerne ville have, altså det format, som søvnscoringsmodellen oprindeligt var designet til. De 21 datasæt kom fra forskellige steder i verden og lå i forskellige mappestrukturer og filformater. Dertil kom, at de 2 søvnscoringsmodeller, vi skulle sammenligne, forventede input på forskelligt format”, fortæller de 2 studerende.

En stor del af arbejdet i dette projekt har været at programmere back-enden til at kunne loade 20.000 nætters data (som var summen af de 21 datasæt) på en fornuftig måde. Jesper og Andreas har skullet gennemtænke systematikken og tilgangen til det. Hvordan gør vi det her på en måde, så det er videnskabeligt forsvarligt? Det er vigtigt, så andre kan gå ind og se, præcis hvordan de gjorde, så det kan udvides, hvis der i fremtiden kommer andre 20.000 nætter et sted fra. Det store arbejde, der er lavet her, kan gøre, at andre kommer meget hurtigt up to speed, og kan gøre det på langt mindre end de 4 mdr., det har taget Andreas og Jesper.

”Det store arbejde med at normalisere alle data i forhold til vores modeller, var faktisk det, der tog længst tid, og det er den ”pre-processerings-tragt”, der nu kan tilgås af andre forskere og studerende, så det bliver meget lettere at indlæse datasæt nr. 22. Vi lagde stor vægt på at finde en holdbar, skalerbar løsning, der kunne anvendes fremadrettet af andre”, fortæller Jesper Strøm.

Billede
LUMI søvnforskning
Foto: Kaare Mikkelsen

 

Klar forbedring af søvn-score modeller ved at bruge meget data

Andreas og Jesper har påvist en klar forbedring af søvn-score modellerne ved at bruge rigtig meget data. De er kommet tæt på de resultater, som de efterprøver, men er stadigvæk en smule fra. De har også fundet ud af, at der er forskel på de 2 modeller til trods for den samme metode. Det ser faktisk ud til, at den ene model er lidt bedre end den anden.

Uden LUMI havde det ikke været muligt at træne modellerne på den måde, de har gjort det. Så havde fremgangsmåden været, at de havde trænet på 1 af de store data-sæt, som måske fylder 500 GB (i stedet for flere datasæt). Så havde de fundet ud af, hvilken model, der er bedst til at score på lige det datasæt. På den måde ville de ikke have fået bredden med og hele den her generalisering. Repræsentativiteten bliver bedre med flere data-sæt. De prøvede at se på forskellen i resultater, når de kørte på den fulde datamængde versus at køre på 10% af datamængden, og der var en klar forbedring ved at bruge meget data.

”Hvis vi ikke havde haft LUMI, havde vi været nødt til at gå med de 10%, og så havde vi ikke haft nær så gode resultater”, fortæller Andreas Larsen Engholm.

God LUMI-support og stor læring

Projektet fik regnetid i DeiC’s ”Sandkasse” i en periode over de 4 måneder, som der var afsat til speciale-opgaven.

”Gennem hele projektet har vi haft stor hjælp fra DeiC, som så har haft kontakt bagud til LUMI. Vi har fået tildelt ekstra regnetid i DeiC’s ”Sandkasse” af ret mange omgange, fordi vi hele tiden fandt ud af, at vi skulle bruge mere. Meget af tiden gik jo med at lære at bruge LUMI, især hvordan man ikke skal skrive job scripts”, griner Jesper Strøm.

Til fremtidige projekter er det planen at anvende en kombination af vores lokale maskine her på AU og LUMI.

”Når vi bare skal sidde og checke, hvordan koden skal designes, så vil vi nok fortsætte med at gøre det lokalt og ikke bruge eksterne ressourcer. Nu har vi lært en del, også om processen, og vores egen system admin her på AU har også lært at understøtte set-up’et”, fortæller Andreas Larsen Engholm.

Det er også planen at finde en nemmere måde at overføre data fra AU til LUMI i fremtidige projekter. På AU er der planlagt data-infrastruktur, så det bliver nemmere at arbejde med. Det har været det mest bøvlede i forbindelse med et data-tungt projekt.

”Vi har været mere data-tunge end compute-tunge i det her projekt”, indskyder Andreas Larsen Engholm.

Uden LUMI havde vi nok droppet projektet

Projektet har anvendt 3500 GPU-timer i alt. Hvis 1 GPU skulle have gjort det, ville det have svaret til 145 døgn. Det kunne ikke have ladet sig gøre, for det er længere end hele speciale-forløbet, som varer 4 måneder.

”I realiteten havde vi nok bare droppet projektet, hvis vi ikke havde haft adgang til LUMI. Vi skulle have flyttet data frem og tilbage, fordi der ikke var plads til det hele, det var blevet meget besværligt”, fortæller Jesper Strøm.

LUMI har et stort potentiale, og det var ikke så farligt, som de to unge mænd måske først havde troet. "Vi skulle nok have været lidt mere forsigtige med vores SLURM-scripts, for vi kunne ikke helt vurdere, hvor mange GPU-timer, det kostede. Der er et regnestykke, der ikke altid var lige simpelt at gennemskue. Så var det heldigt, at der var stor fleksibilitet i Sandkassen, og DeiC var hurtige til at tildele os ekstra ressourcer."

"Det kan godt være, at der er en lidt hård læringskurve i starten, men jeg synes, at man bare skal prøve at springe ud i det", lyder rådet fra Andreas. "Det kan virke lidt overvældende i starten, men så snart man får afprøvet det og får kørt nogle ting, så finder man ud af, at det egentlig er nogle ret simple principper, man skal kende."

Ressourcer

1. LUMI supercomputer https://www.lumi-supercomputer.eu     

2. Søg om regne-ressourcer på LUMI: https://www.deic.dk/da/Supercomputere/Sog-om-HPC-regnekraft       

3. HPC/LUMI Sandkasse https://www.deic.dk/da/Supercomputere/vejledninger-og-guides/Adgang-til-HPC-Sandkasse      

4. SLURM Learning https://www.deic.dk/en/news/2022-11-21/virtual-slurm-learning-environment-ready

5. Cotainr til LUMI https://www.deic.dk/da/news/2023-1-4/cotainr-vaerktoej-skal-goere-LUMI-brug-lettere

6. GitHub værktøjer udviklet til pre-processing af søvn-data på LUMI https://github.com/Andreas251/CSDP