Wetenschap
Anshumali Shrivastava van Rice University leidde een team dat demonstreerde hoe deep learning-technologie kan worden geïmplementeerd zonder gespecialiseerde versnellingshardware zoals grafische verwerkingseenheden. Krediet:Jeff Fitlow/Rice University
Computerwetenschappers van Rice University hebben een groot obstakel in de snelgroeiende kunstmatige-intelligentie-industrie overwonnen door te laten zien dat het mogelijk is om deep learning-technologie te versnellen zonder gespecialiseerde versnellingshardware zoals grafische verwerkingseenheden (GPU's).
Computerwetenschappers uit Rice, ondersteund door medewerkers van Intel, zullen hun resultaten vandaag presenteren in het Austin Convention Center als onderdeel van de machine learning systems-conferentie MLSys.
Veel bedrijven investeren fors in GPU's en andere gespecialiseerde hardware om deep learning te implementeren, een krachtige vorm van kunstmatige intelligentie die achter digitale assistenten zoals Alexa en Siri zit, gezichtsherkenning, productaanbevelingssystemen en andere technologieën. Bijvoorbeeld, Nvidia, de maker van de gouden standaard Tesla V100 Tensor Core GPU's, rapporteerde onlangs een stijging van 41% van de omzet in het vierde kwartaal in vergelijking met het voorgaande jaar.
Rice-onderzoekers creëerden een kostenbesparend alternatief voor GPU, een algoritme genaamd "sublinear deep learning engine" (SLIDE) dat gebruikmaakt van centrale verwerkingseenheden (CPU's) voor algemene doeleinden zonder gespecialiseerde versnellingshardware.
"Onze tests tonen aan dat SLIDE de eerste slimme algoritmische implementatie van deep learning op CPU is die beter presteert dan GPU-hardwareversnelling op industrieschaal aanbevelingsdatasets met grote volledig verbonden architecturen, " zei Anshumali Shrivastava, een assistent-professor aan de Brown School of Engineering van Rice die SLIDE uitvond met afgestudeerde studenten Beidi Chen en Tharun Medini.
SLIDE heeft geen GPU's nodig omdat het een fundamenteel andere benadering van deep learning vereist. De standaard "back-propagation"-trainingstechniek voor diepe neurale netwerken vereist matrixvermenigvuldiging, een ideale workload voor GPU's. Met SLIDE, Shrivastava, Chen en Medini maakten van neurale netwerktraining een zoekprobleem dat in plaats daarvan kon worden opgelost met hashtabellen.
Dit vermindert de rekenkundige overhead voor SLIDE radicaal in vergelijking met back-propagation-training. Bijvoorbeeld, een eersteklas GPU-platform zoals dat van Amazon, Google en anderen bieden voor cloudgebaseerde deep learning-services acht Tesla V100's en kosten ongeveer $ 100, 000, zei Shrivastava.
We hebben er een in het lab, en in onze testcase hebben we een werklast genomen die perfect is voor V100, een met meer dan 100 miljoen parameters in grote, volledig verbonden netwerken die in GPU-geheugen passen, " zei hij. "We hebben het getraind met het beste (software)pakket dat er is, TensorFlow van Google, en het duurde 3 1/2 uur om te trainen.
"We hebben toen laten zien dat ons nieuwe algoritme de training in een uur kan doen, niet op GPU's maar op een 44-core Xeon-klasse CPU, ' zei Shrivastava.
Deep learning-netwerken werden geïnspireerd door biologie, en hun centrale kenmerk, kunstmatige neuronen, zijn kleine stukjes computercode die kunnen leren een specifieke taak uit te voeren. Een deep learning-netwerk kan miljoenen of zelfs miljarden kunstmatige neuronen bevatten, en door samen te werken kunnen ze leren om op menselijk niveau, beslissingen van experts door simpelweg grote hoeveelheden gegevens te bestuderen. Bijvoorbeeld, als een diep neuraal netwerk wordt getraind om objecten op foto's te identificeren, het zal verschillende neuronen gebruiken om een foto van een kat te herkennen dan om een schoolbus te herkennen.
"Je hoeft niet alle neuronen in elk geval te trainen, " zei Medini. "We dachten, 'Als we alleen de neuronen willen uitkiezen die relevant zijn, dan is het een zoekprobleem.' Dus, algoritmisch, het idee was om plaatsgevoelige hashing te gebruiken om weg te komen van matrixvermenigvuldiging."
Hashing is een methode voor het indexeren van gegevens die in de jaren negentig is uitgevonden voor zoeken op internet. Het gebruikt numerieke methoden om grote hoeveelheden informatie te coderen, zoals hele webpagina's of hoofdstukken van een boek, als een reeks cijfers die een hash wordt genoemd. Hashtabellen zijn lijsten met hashes die heel snel kunnen worden doorzocht.
"Het zou geen zin hebben gehad om ons algoritme op TensorFlow of PyTorch te implementeren, omdat het eerste wat ze willen doen, is wat je ook doet, omzetten in een matrixvermenigvuldigingsprobleem, ' zei Chen. 'Dat is precies waar we van af wilden. Dus hebben we onze eigen C++-code helemaal opnieuw geschreven."
Shrivastava zei dat het grootste voordeel van SLIDE ten opzichte van back-propagatie is dat het data parallel is.
"Met data parallel bedoel ik dat als ik twee data-instanties heb waarop ik wil trainen, laten we zeggen dat de ene een afbeelding is van een kat en de andere van een bus, ze zullen waarschijnlijk verschillende neuronen activeren, en SLIDE kan updaten, of train zelfstandig op deze twee, " zei hij. "Dit is een veel beter gebruik van parallellisme voor CPU's.
"De keerzijde, vergeleken met GPU, is dat we een groot geheugen nodig hebben, ' zei hij. 'Er is een cachehiërarchie in het hoofdgeheugen, en als je er niet voorzichtig mee bent, kun je een probleem tegenkomen dat cache thrashing wordt genoemd, waar je veel cachemissen krijgt."
Shrivastava zei dat de eerste experimenten van zijn groep met SLIDE een aanzienlijke hoeveelheid caches opleverden, maar hun trainingstijden waren nog steeds vergelijkbaar met of sneller dan GPU-trainingstijden. Dus hij, Chen en Medini publiceerden de eerste resultaten op arXiv in maart 2019 en uploadden hun code naar GitHub. Een paar weken later, Intel heeft contact met hen opgenomen.
"Onze medewerkers van Intel herkenden het cachingprobleem, "zei hij. "Ze vertelden ons dat ze met ons konden samenwerken om het nog sneller te laten trainen, en ze hadden gelijk. Onze resultaten verbeterden met ongeveer 50% met hun hulp."
Shrivastava zei dat SLIDE zijn potentieel nog niet heeft bereikt.
"We hebben net de oppervlakte bekrast, " zei hij. "Er is veel dat we nog kunnen doen om te optimaliseren. We hebben geen vectorisatie gebruikt, bijvoorbeeld, of ingebouwde versnellers in de CPU, zoals Intel Deep Learning Boost. Er zijn nog veel andere trucs die we kunnen gebruiken om dit nog sneller te maken."
Shrivastava zei dat SLIDE belangrijk is omdat het laat zien dat er andere manieren zijn om deep learning te implementeren.
"De hele boodschap is, 'Laten we ons niet laten hinderen door vermenigvuldigingsmatrix en GPU-geheugen, '", zei Chen. "Onze aanpak is misschien wel de eerste algoritmische benadering om GPU te verslaan, maar ik hoop dat het niet de laatste is. Het veld heeft nieuwe ideeën nodig, en dat is een groot deel van waar MLSys over gaat."
Wetenschap © https://nl.scienceaq.com