Kleine vier-bits computers zijn nu alles wat je nodig hebt om AI te trainen

neurale net knabbelen

Acht bits vormen een byte, dus vier bits worden een nibble genoemd. Computeringenieurs hebben een grappig gevoel voor humor. mevrouw Tech | Welkom Collectie





Diep leren is een inefficiënte energievreter . Het vereist enorme hoeveelheden gegevens en overvloedige computerbronnen, waardoor het elektriciteitsverbruik explodeert. In de afgelopen jaren heeft de algemene onderzoekstrend het probleem verergerd. Modellen van gigantische proporties - meerdere dagen getraind op miljarden datapunten - zijn in zwang en zullen waarschijnlijk niet snel verdwijnen.

Sommige onderzoekers haasten zich om nieuwe richtingen te vinden, zoals algoritmen die kunnen trainen op minder gegevens , of hardware die kan voer die algoritmen sneller uit . Nu stellen IBM-onderzoekers een andere voor. Hun idee zou het aantal bits verminderen, of een s en 0 s, nodig om de gegevens weer te geven - van 16 bits, de huidige industriestandaard, tot slechts vier.

De het werk , die deze week wordt gepresenteerd op NeurIPS, de grootste jaarlijkse AI-onderzoeksconferentie, zou de snelheid kunnen verhogen en de energiekosten die nodig zijn om deep learning te trainen met meer dan zeven keer kunnen verlagen. Het zou ook het trainen van krachtige AI-modellen op smartphones en andere kleine apparaten mogelijk maken, wat de privacy zou verbeteren door te helpen persoonlijke gegevens op een lokaal apparaat te bewaren. En het zou het proces toegankelijker maken voor onderzoekers buiten grote, hulpbronnenrijke technologiebedrijven.



Hoe bits werken

Je hebt waarschijnlijk al eerder gehoord dat computers dingen opslaan in een s en 0 s. Deze fundamentele informatie-eenheden staan ​​bekend als: beetjes . Als een bit aan staat, komt dit overeen met a een ; als het uit is, verandert het in een 0 . Met andere woorden, elk bit kan slechts twee stukjes informatie bevatten.

Maar als je ze eenmaal aan elkaar rijgt, groeit de hoeveelheid informatie die je kunt coderen exponentieel. Twee bits kunnen vier stukjes informatie vertegenwoordigen omdat er 2^2 combinaties zijn: 00 , 01 , 10 , en elf . Vier bits kunnen 2^4 of 16 stukjes informatie vertegenwoordigen. Acht bits kunnen 2^8 of 256 vertegenwoordigen. En zo verder.

De juiste combinatie van bits kan soorten gegevens vertegenwoordigen, zoals cijfers, letters en kleuren, of soorten bewerkingen zoals optellen, aftrekken en vergelijken. De meeste laptops zijn tegenwoordig 32- of 64-bits computers. Dat betekent niet dat de computer slechts 2^32 of 2^64 stukjes informatie in totaal kan coderen. (Dat zou een erg slappe computer zijn.) Het betekent dat het zoveel bits van complexiteit kan gebruiken om elk stukje data of individuele bewerking te coderen.



4-bits diep leren

Dus wat betekent 4-bit training? Om te beginnen hebben we een 4-bit computer, en dus 4 bits complexiteit. Een manier om hier over na te denken: elk afzonderlijk getal dat we tijdens het trainingsproces gebruiken, moet een van de 16 hele getallen tussen -8 en 7 zijn, omdat dit de enige getallen zijn die onze computer kan weergeven. Dat geldt voor de datapunten die we in het neurale netwerk invoeren, de getallen die we gebruiken om het neurale netwerk weer te geven en de tussenliggende getallen die we tijdens de training moeten opslaan.

Dus hoe doen we dit? Laten we eerst eens nadenken over de trainingsgegevens. Stel je voor dat het een hele hoop zwart-witbeelden is. Stap één: we moeten die afbeeldingen omzetten in getallen, zodat de computer ze kan begrijpen. We doen dit door elke pixel weer te geven in termen van zijn grijswaarden: 0 voor zwart, 1 voor wit en de decimalen ertussen voor de grijstinten. Onze afbeelding is nu een lijst met getallen variërend van 0 tot 1. Maar in 4-bits land hebben we een bereik van -8 tot 7 nodig. De truc hier is om onze lijst met getallen lineair te schalen, zodat 0 -8 wordt en 1 wordt 7 en de decimalen worden toegewezen aan de gehele getallen in het midden. Dus:

U kunt uw lijst met getallen schalen van 0 tot 1 om uit te rekken tussen -8 en 7, en vervolgens eventuele decimalen afronden op een geheel getal.



Dit proces is niet perfect. Als je bijvoorbeeld met het getal 0.3 zou beginnen, zou je eindigen met het geschaalde getal -3.5. Maar onze vier bits kunnen alleen hele getallen vertegenwoordigen, dus je moet -3,5 naar -4 afronden. Uiteindelijk verlies je enkele van de grijstinten, of zogenaamde precisie , op jouw afbeelding. Hoe dat eruit ziet, zie je in de afbeelding hieronder.

Hoe lager het aantal bits, hoe minder detail de foto heeft. Dit heet een verlies van precisie .

Deze truc is niet te armoedig voor de trainingsgegevens. Maar als we het opnieuw toepassen op het neurale netwerk zelf, wordt het een beetje ingewikkelder.



Een neuraal netwerk.

We zien neurale netwerken vaak getekend als iets met knooppunten en verbindingen, zoals de afbeelding hierboven. Maar voor een computer veranderen deze ook in een reeks getallen. Elke knoop heeft een zogenaamde activering waarde, die gewoonlijk varieert van 0 tot 1, en elke verbinding heeft een gewicht , die meestal varieert van -1 tot 1.

We zouden deze op dezelfde manier kunnen schalen als met onze pixels, maar activeringen en gewichten veranderen ook met elke trainingsronde. Soms variëren de activeringen bijvoorbeeld van 0,2 tot 0,9 in de ene ronde en van 0,1 tot 0,7 in een andere. Dus de IBM-groep bedacht in 2018 een nieuwe truc: om die reeksen te herschalen om zich in elke ronde uit te strekken tussen -8 en 7 (zoals hieronder weergegeven), waarmee effectief wordt voorkomen dat te veel precisie wordt verloren.

De IBM-onderzoekers herschalen de activeringen en gewichten in het neurale netwerk voor elke trainingsronde, om te voorkomen dat ze te veel precisie verliezen.

Maar dan hebben we nog een laatste stuk: hoe de tussenliggende waarden die tijdens de training opduiken in vier bits weer te geven. Wat een uitdaging is, is dat deze waarden verschillende ordes van grootte kunnen overspannen, in tegenstelling tot de getallen die we hanteerden voor onze afbeeldingen, gewichten en activeringen. Ze kunnen klein zijn, zoals 0,001, of enorm, zoals 1000. Als u dit lineair probeert te schalen naar tussen -8 en 7, verliest u alle granulariteit aan het kleine uiteinde van de schaal.

Lineair geschaalde getallen die verschillende ordes van grootte omspannen, verliezen alle granulariteit aan het kleine uiteinde van de schaal. Zoals je hier kunt zien, worden alle getallen kleiner dan 100 geschaald naar -8 of -7. Het gebrek aan precisie zou de uiteindelijke prestaties van het AI-model schaden.

Na twee jaar onderzoek hebben de onderzoekers eindelijk de puzzel gekraakt: door een bestaand idee van anderen te lenen, schalen ze deze tussenliggende getallen logaritmisch . Om te zien wat ik bedoel, hieronder is een logaritmische schaal die je misschien herkent, met een zogenaamde basis van 10, die slechts vier bits complexiteit gebruikt. (De onderzoekers gebruiken in plaats daarvan een basis van 4, omdat vallen en opstaan ​​​​aantoonde dat dit het beste werkte.) Je kunt zien hoe je zowel kleine als grote getallen kunt coderen binnen de bitbeperkingen.

Een logaritmische schaal met grondtal 10.

Met al deze stukjes op hun plaats, laat dit nieuwste artikel zien hoe ze samenkomen. De IBM-onderzoekers voeren verschillende experimenten uit waarbij ze 4-bits training simuleren voor een verscheidenheid aan diepgaande leermodellen in computervisie, spraak en natuurlijke taalverwerking. De resultaten laten een beperkt verlies aan nauwkeurigheid zien in de algehele prestaties van de modellen in vergelijking met 16-bits deep learning. Het proces is ook meer dan zeven keer sneller en zeven keer energiezuiniger.

Toekomstwerk

Er zijn nog een aantal stappen voordat 4-bit deep learning een echte praktijk wordt. Alleen het papier simuleert de resultaten van dit soort trainingen. Om het in de echte wereld te doen, zou nieuwe 4-bits hardware nodig zijn. In 2019 lanceerde IBM Research een AI Hardware Center om het proces van ontwikkeling en productie van dergelijke apparatuur te versnellen. Kailash Gopalakrishnan, een IBM-collega en senior manager die toezicht hield op dit werk, zegt dat hij verwacht over drie tot vier jaar 4-bits hardware klaar te hebben voor diepgaande training.

Kleine AI-modellen kunnen autocorrectie en spraakassistenten op je telefoon een boost geven

Boris Murmann, een professor aan Stanford die niet bij het onderzoek betrokken was, noemt de resultaten opwindend. Deze vooruitgang opent de deur voor training in omgevingen met beperkte middelen, zegt hij. Het zou niet per se nieuwe toepassingen mogelijk maken, maar het zou bestaande wel sneller maken en de batterij met een ruime marge minder leegmaken. Apple en Google hebben bijvoorbeeld steeds vaker geprobeerd het proces van het trainen van hun AI-modellen, zoals spraak-naar-tekst en autocorrectiesystemen, te verplaatsen vanuit de cloud en naar gebruikerstelefoons . Dit beschermt de privacy van gebruikers door hun gegevens op hun eigen telefoon te bewaren en tegelijkertijd de AI-mogelijkheden van het apparaat te verbeteren.

Maar Murmann merkt ook op dat er meer moet gebeuren om de degelijkheid van het onderzoek te verifiëren. In 2016, zijn groep een paper gepubliceerd die 5-bit training demonstreerde. Maar de aanpak hield geen stand door de jaren heen. Onze simpele aanpak viel uit elkaar omdat neurale netwerken een stuk gevoeliger werden, zegt hij. Het is dus niet duidelijk of een techniek als deze ook de tand des tijds zou overleven.

Desalniettemin zal de krant andere mensen motiveren om hier heel goed naar te kijken en nieuwe ideeën aan te wakkeren, zegt hij. Dit is een zeer welkome vooruitgang.

zich verstoppen