Kunstig intelligens

Har I styr på, hvor meget strøm jeres AI-model egentlig bruger?

AI er på vej ind i stort set alle områder, men AI-modellerne kan koste mere strøm end mange virksomheder er klar over. Og hvis man skal have et klart billede af, hvor meget strøm de enkelte modeller anvender, er det ikke ligegyldigt, hvilket softwareværktøj man bruger til at måle forbruget. Nye test viser nemlig, at nogle værktøjer kan overestimere strømforbruget med op til fem gange.

Det er et udbredt problem, at store sprogmodeller bruger meget strøm til træning og inferens – den fase, hvor den færdigtrænede model anvendes på nye data for at producere en forudsigelse i realtid. Det samme gælder mange af de mindre maskinlærings- eller AI-modeller, som anvendes bredt i industrien – f.eks. til klassificering, dataanalyse osv.

I nogle tilfælde kører modellerne på systemer, hvor der ikke er adgang til energinettet, eller på enheder, hvor en grøn tilgang (dvs. lavt energiforbrug) har høj prioritet. Det kan f.eks. være IoT-enheder eller lignende, der drives af et batteri eller solenergi.

Hvor meget strøm bruger AI-modellerne egentlig?
Netop det har vores AI-specialist Freja Thoresen fra Alexandra Instituttets AI Lab undersøgt. Resultatet er ret tydeligt: Det viser, at nogle af de tilgængelige værktøjer, der findes, overestimerer strømforbruget – i nogle tilfælde op til fem gange det faktiske strømforbrug.

Men først lige lidt baggrund. For at finde ud af hvor meget strøm en maskinlærings- eller AI-model bruger, findes der forskellige værktøjer, som kan køre på en computer eller Raspberry Pi.

Figur: Raspberry Pi tilsluttet strømforsyning

Disse værktøjer måler dog ikke nødvendigvis det faktiske energiforbrug, men giver blot et estimat. Her har Freja Thoresen testet tre forskellige værktøjer: CodeCarbon, Zeus og PyJoules – og har målt, hvor meget strøm en AI-model faktisk bruger ved hjælp af en strømforsyning.

“For at undersøge hvor gode estimaterne er, eksperimenterede vi med at køre en Raspberry Pi på en strømforsyning. Ved at tilslutte Raspberry Pi’en direkte til strømforsyningen kan man med sikkerhed aflæse, hvor meget strøm der bliver brugt,” forklarer Freja Thoresen.

Det var gennem de her forsøg, at hun fandt ud af, at Zeus og PyJoules ikke var kompatible med Raspberry Pi, og at CodeCarbon overestimerer det faktiske strømforbrug med fem gange den egentlige værdi.

Figuren viser strøm målt af strømforsyning. Det grønne område viser tidspunktet, hvor der bliver kørt inferens (anvendelse af modellen på nye data) på en Raspberry Pi.

Overordnet kan man konkludere, at hvis man vil have et overblik over det samlede strømforbrug, kan man bruge CodeCarbon som en øvre grænse.

Hvis man derimod er mere interesseret i, hvor meget selve modellen bruger, kan man bruge PyJoules.

“Man kan sige, at hvis man har brug for at kende strømforbruget i en maskinlæringsmodel, er det en god idé at måle med en strømforsyning frem for kun at bruge Python-værktøjer. Det kan f.eks. være aktuelt, hvis man vil køre sine computerenheder på solenergi eller i situationer, hvor man ikke har adgang til ubegrænset energi. Grundlæggende er det en metode til at finde ud af, hvor ‘grøn’ ens model er – altså hvor meget energi det egentlig koster at køre den.”

Dokumentationen for, hvordan eksperimenterne er blevet udført, kan ses her.

Fakta
Det kan være vigtigt at kende strømforbruget på nogle af de maskinlærings- og AI-modeller, som bliver brugt bredt i industrien. Det gælder især, hvis modellerne ikke har direkte adgang til energinettet og kører på batteri eller solenergi.

For at finde ud af, hvor meget strøm modellerne egentlig bruger, så findes der en række værktøjer, som kan køre på en computer eller Raspberry Pi. Men de her modeller viser nødvendigvis ikke det faktiske energiforbrug.

Det ses i tabellen herunder, der viser estimeret energiforbrug, målt med tre forskellige værktøjer på en computer, af at køre en AI-model (ResNet18[1]).

Det ses, at de tre estimater for værktøjerne er vidt forskellige.

CodeCarbon forsøger at beregne energiforbruget for hele systemet, hvorimod Zeus og PyJoules fokuserer mere på strømforbruget fra GPU’en og CPU’en.

Værktøj

Energi (Wh)

Effekt (W)

PyJoules

0.15

CPU package: 19.4
Core-only CPU: 8.9
GPU: 5.2e-3

Zeus

0.07

CPU + GPU: 8.0

CodeCarbon

0.5

CPU: 43.4
GPU: 3.75
RAM: 20

Værktøj

Energi (Wh)

Effekt (W)

PyJoules

0.15

CPU package: 19.4
Core-only CPU: 8.9
GPU: 5.2e-3

Zeus

0.07

CPU + GPU: 8.0

CodeCarbon

0.5

CPU: 43.4
GPU: 3.75
RAM: 20

[1] He, Kaiming, et al. “Deep residual learning for image recognition.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

Del dette:

Formular indsendt!