Googles distribuerede databehandling til dummies træner ResNet-50 på under en halv time

  • Sep 06, 2023

Googles nye "TF-replicator"-teknologi er beregnet til at være dødvande simpel distribueret computer for AI-forskere. En vigtig fordel ved teknologien kan være, at det tager dramatisk mindre tid at nå benchmark-resultater på standardopgaver som ImageNet.

Er det bedre at være så præcis som muligt inden for maskinlæring, uanset hvor lang tid det tager, eller temmelig forbandet præcis på meget kort tid?

For DeepMind-forskerne Peter Buchlovsky og kolleger var valget at gå efter hastighed i læring frem for teoretisk nøjagtighed.

I denne uge afslørede forskerne en ny smule teknologi, kaldet "TF-replikator", sagde forskerne, at de var i stand til at nå toppens nøjagtighed benchmark-resultater på den velkendte ImageNet-konkurrence på under en halv time ved hjælp af 32 af Googles Tensor Processing Unit-chips, der opererer i parallel. Debuten af ​​Replicator kommer som Google i denne uge forhåndsvist 2.0-versionen af ​​TensorFlow.

Resultaterne fra brugen af ​​TF-replicator, hævder forfatterne, nærmede sig de bedste resultater fra nogle andre projekter, der brugte mange flere GPU'er, inklusive tidligere arbejde, der beskæftigede 1.024 af Nvidias "Tesla P100" GPU'er.

Implikationen af ​​TF-Replicator-projektet er, at en sådan episk konstruktion af GPU'er nu kan opnås med et par linjer Python-kode, der ikke er specielt tunet til nogen bestemt hardware konfiguration.

google-tf-replicator-patterns-2019.png

TF-Replicator kan lave flere "arbejdere", der enten deler en beregningsgraf, som til venstre, eller har separate beregningsgrafer for sig selv, som til højre.

DeepMind

Tricket er dybest set at lave Parallel Distributed Computing for Dummies, hvis du vil. Et sæt nye funktioner er blevet føjet til Googles TensorFlow-ramme, som DeepMind hævder, "trivialiserer processen med at bygge distribuerede maskinlæringssystemer" ved at lade forskere "naturligvis definere deres model og køre loop i henhold til enkeltmaskine indstilling."

Også: Google lancerer TensorFlow 2.0 Alpha

Systemet er mere fleksibelt end en tidligere TensorFlow-tilgang, kaldet en "estimator", som pålagde begrænsninger for måden, modellerne bygges på. Selvom dette system var prædisponeret til produktionsmiljøer, er Googles tilgang til R&D-laboratoriet til at lave nye slags netværk, så det er designet til at være mere fleksibelt.

Det er også meningen, at det skal være meget enklere at programmere end tidligere forsøg på parallelisme, såsom "Mesh-TensorFlow," introduceret sidste år af Googles Brain-enhed som et separat sprog for at specificere distribueret databehandling.

Forskningen, "TF-Replicator: Distributed Machine Learning For Researchers," er lagt ud på arXiv pre-print server, og der er også et blogindlæg af DeepMind.

Arbejdsantagelsen i papiret er, at de ønsker at nå frem til avancerede resultater hurtigt frem for at prøve at skubbe grænsen med hensyn til nøjagtighed. Som forfatterne påpeger, "I stedet for at forsøge at forbedre klassificeringsnøjagtigheden har mange nyere artikler fokuseret på at reducere den tid, det tager at opnå en ydeevnetærskel (typisk ~75 % Top-1-nøjagtighed)" ved hjælp af ImageNet-benchmarks, og i de fleste tilfælde træning af det almindelige "ResNet-50"-neurale netværk.

Også: Google siger, at 'eksponentiel' vækst af kunstig intelligens ændrer karakteren af ​​computere

Dette hastværk med at nå gode resultater er kendt som "svag skalering", hvor netværket trænes "i færre trin med meget store batches", og grupperer dataene i sæt af flere tusinde eksempler.

Derfor er behovet for at parallelisere modeller for at kunne arbejde på disse batches samtidigt på tværs af flere kerner og flere GPU'er eller TPU'er.

Forfatterne satte sig for at bygge et distribueret computersystem, der kunne håndtere opgaver lige fra klassificering til at lave falske billeder via generative adversarial networks (GAN'er) til forstærkning af læring, mens man når tærsklen for kompetent præstation hurtigere.

Forfatterne skriver, at en forsker ikke behøver at vide noget om distribueret computing. Forskeren specificerer deres neurale net som en "replika", en ting, der er designet til at køre på en enkelt computer. Denne replika kan automatisk multipliceres til separate instanser, der kører parallelt på flere computere, forudsat at forfatteren inkluderer to Python fungerer efter deres TensorFlow-kode, kaldet "input_fn" og "step_fn." Den første kalder et datasæt for at udfylde hvert "trin" i en neural netværk. Det gør det muligt at parallelisere arbejdet med data på tværs af forskellige maskiner. Den anden funktion specificerer den beregning, der skal udføres, og kan bruges til at parallelisere de neurale netværksoperationer på tværs af mange maskiner.

hvordan TF-replikator bygger beregningsgrafen på flere maskiner og efterlader "pladsholder"-funktionerne i grafen, hvor kommunikation skal udfyldes senere, her repræsenteret med prikker linjer.

DeepMind.

Forfatterne bemærker, at de var nødt til at overvinde nogle interessante begrænsninger. For eksempel kan kommunikation mellem computerknudepunkter være vigtig for ting som at samle alle de gradient-nedstigningsberegninger, der sker på tværs af flere maskiner.

Det kan være udfordrende for ingeniøren. Hvis en enkelt "graf" af et neuralt netværk er fordelt på tværs af mange computere, det, der er kendt som "in-graph replikering", så der kan opstå problemer, fordi dele af beregningsgrafen muligvis endnu ikke er konstrueret, hvilket frustrerer afhængigheder mellem computere. "En replikas step_fn kan kalde en primitiv midt grafkonstruktion," skriver de med henvisning til kommunikationsprimitiverne. "Dette kræver, at man refererer til data, der kommer fra en anden kopi, som i sig selv endnu ikke er bygget."

Deres løsning er at sætte "pladsholder"-kode i beregningsgrafen for hver maskine, som "kan genskrives, når alle replika-undergrafer er færdiggjort."

Resultater af forskellige konfigurationer af TF-replikator til ImageNet-opgaverne på forskellige konfigurationer af hardware.

DeepMind

Skal læses

  • "AI er meget, meget dumt," siger Googles AI-leder (CNET)
  • Sådan får du alle Google Assistants nye stemmer lige nu (CNET)
  • Unified Google AI division et klart signal om AI's fremtid (TechRepublic)
  • Top 5: Ting at vide om AI (TechRepublic)

Forfatterne beskriver resultater på tværs af forskellige benchmark-tests. I tilfældet med ResNet-50 ImageNet-opgaven, "er vi i stand til at matche den offentliggjorte 75,3% Top-1-nøjagtighed på mindre end 30 minutters træning," skriver de, tilføjer, at "disse resultater opnås ved hjælp af standard TF-replicator-implementeringen uden nogen systemoptimering specifik for ImageNet klassifikation."

På en GAN-opgave, der producerer billeder: "Vi udnytter TF-replikator til at træne på meget større batches, end der kan passe på en enkelt GPU, og finder ud af, at dette fører til betydelige gevinster i prøvekvaliteten."

Inden for forstærkningslæring trænede de en simuleret "agent" af bevægelige led til at navigere i forskellige opgaver. "En enkelt TPUv2-enhed (8 kerner på tværs af 4 chips) giver konkurrencedygtig ydeevne sammenlignet med 8 NVLink-forbundne Tesla V100 GPU'er," skriver de.

Der er nogle interessante implikationer for fremtidig design af neurale netværk fra denne form for distribueret databehandling. For eksempel, i tilfælde af forstærkningslæring, snarere end at konstruere højere niveau repræsentationer af robottens led og deres "hastigheder," skriver de, "skalerbarheden af ​​TF-replicator giver os mulighed for hurtigt at løse disse opgaver rent fra pixel observationer."

"Massiv skalerbarhed," skriver forfatterne, med hundreder og tusinder af lag i et neuralt netværk, bliver mere og mere vigtigt i dyb læring. TF-replicator er Googles svar på spørgsmålet om, hvordan forskere hurtigere kan udvikle og gentage disse store netværk, der starter fra deres bærbare computer og spreder sig til distribuerede systemer med det mindste besvær.

Det bedste fra MWC 2019: Fed teknologi, du kan købe eller forudbestille i år

Tidligere og relateret dækning:

Hvad er AI? Alt hvad du behøver at vide

En executive guide til kunstig intelligens, fra maskinlæring og generel kunstig intelligens til neurale netværk.

Hvad er deep learning? Alt hvad du behøver at vide

Nedenstående om dyb læring: fra hvordan det relaterer sig til det bredere område af maskinlæring til hvordan man kommer i gang med det.

Hvad er machine learning? Alt hvad du behøver at vide

Denne guide forklarer, hvad machine learning er, hvordan det er relateret til kunstig intelligens, hvordan det virker, og hvorfor det betyder noget.

Hvad er cloud computing? Alt hvad du behøver at vide om

En introduktion til cloud computing lige fra det grundlæggende op til IaaS og PaaS, hybrid, offentlig og privat cloud.

Relaterede historier:

  • Googles AI surfer på "gamescape" for at erobre spilteori
  • Sådan ser AI ud (som skitseret af AI) 
  • Googles DeepMind-teams med førende 3D-spiludviklerplatform
  • DeepMinds AI opdager tidlige tegn på øjensygdom