Hopp til hovedinnhold

Søndag 8. november

Doomformer kompilerer nevrale nett til DOOM-kart der 1 355 voodoo-dukker gjenkjenner sifre

fredag 30. oktober · KI-generert · Kilde: GitHub

Innholdet er KI-generert og kan inneholde feil. Sjekk originalkilden.

Installer Doomformer for å se et kvantisert nevralt nett regne i DOOM, og bruk testoppsettet som mal for å sjekke dine egne heltallsmodeller mot en referanse.

Når et DOOM-kart har flere startpunkter for spiller 1, lager motoren kopier av spilleren som kalles voodoo-dukker. Doomformer, et MIT-lisensiert prosjekt på GitHub, bruker dem som regneenheter: verktøyet kompilerer heltalls-nevrale nett til ZDoom-kart, der dukkene gjør hver multiplikasjon, aktivering og sammenligning, mens lysnivå og gulvhøyder i sektorene holder summene. Kartene kjøres i ViZDoom 1.3.2 med Freedoom-grafikk.

MNIST-demoen er nettet 784-64-45-10-10, regnet ut av 1 355 dukker i ett kart. Python leser tilbake alle 248 eksponerte verdier og sammenligner dem med en NumPy-implementasjon av samme heltallsnett, med toleranse 0. Heltallsnettet treffer 97,16 % på alle 10 000 testsifre, mot 97,58 % for flyttallsmodellen det ble kvantisert fra.

«EXACT betyr at DOOM er lik heltallsnettet. Det sier ingenting om hvorvidt sifferet er riktig» — README for Doomformer

Prisen er fart. Et lite MLP går omtrent 23 000 ganger tregere enn NumPy i motortid, og ett håndtegnet siffer tar 163 sekunder spilletid med det opprinnelige skjemaet og 8 sekunder med --opt 3. Hvert spill trenger én kjerne og rundt 1,3 GB RAM. MLP.from_torch konverterer egne MLP-er og CNN-er fra PyTorch, men transformere må være trent med prosjektets egen oppskrift.

Hva bør du gjøre?

  1. Installer med pip install git+https://github.com/mottopanikeiku/doomformer (Python 3.11+, Linux eller macOS) og kjør doomformer hello, som tar rundt 2 sekunder.
  2. Kjør doomformer draw --digit 7 for å se marinesoldaten gå et sjutall som kartet leser på 15 sekunder.
  3. Se på tests/test_tamper.py og fuzz-kommandoen hvis du kvantiserer egne modeller: å sammenligne hver eneste mellomverdi mot en referanse fanger feil som en nøyaktighetsmåling skjuler.

Pulsen · norske KI-nyheter for deg som bygger. Sakene er KI-generert fra originalkilden, som alltid lenkes.