Het mogelijk maken van veilige en alomtegenwoordige kunstmatige intelligentie (AI) is een topprioriteit voor de Arm-architectuur. Het potentieel voor AI en machine learning (ML) is duidelijk, met bijna dagelijks nieuwe use-cases en voordelen – maar daarnaast zijn de computationele vereisten voor AI exponentieel gegroeid en vereisen nieuwe hardware- en software-innovatie om geheugen, rekenefficiëntie en bandbreedte in evenwicht te blijven houden. De training van Neural Networks (NN's) is van cruciaal belang voor de voortdurende vooruitgang van AI-mogelijkheden, en vandaag markeert een spannende stap in deze evolutie met Arm, Intel en NVIDIA die gezamenlijk een whitepaper publiceren over een nieuwe 8-bit floating point-specificatie, 'FP8' .
FP8 is een uitwisselingsformaat waarmee software-ecosystemen gemakkelijk NN-modellen kunnen delen, en de samenwerking tussen Arm, Intel en NVIDIA om deze ene standaard te ondersteunen is aanzienlijk. Het betekent dat modellen die op het ene platform zijn ontwikkeld, op andere platforms kunnen worden uitgevoerd zonder de overhead van het moeten converteren van de enorme hoeveelheden modelgegevens tussen formaten, terwijl het taakverlies tot een minimum wordt beperkt. FP8 minimaliseert afwijkingen van bestaande IEEE floating formaten, waardoor ontwikkelaars bestaande implementaties kunnen benutten, de acceptatie op verschillende platforms kunnen versnellen en hun productiviteit kunnen verbeteren.
Het gebruik van drijvende-kommaformaten met verminderde precisie biedt een aantal voordelen. Tot een paar jaar geleden werd de training van neurale netwerken voornamelijk berekend met IEEE-standaard 32-bits drijvende-kommagetallen. Grotere netwerken met steeds meer lagen bleken steeds succesvoller te zijn bij NN-taken, maar in bepaalde toepassingen ging dit succes gepaard met een uiteindelijk onbeheersbare toename van de geheugenvoetafdruk, het stroomverbruik en de computerbronnen. Het werd noodzakelijk om de grootte van de data-elementen (activeringen, gewichten, gradiënten) te verminderen van 32 bits, en dus begon de industrie 16-bits formaten te gebruiken, zoals Bfloat16 en IEEE FP16. Naarmate het aantal diverse toepassingen die grotere nauwkeurigheid vereisen, groeit, worden neurale netwerken opnieuw geconfronteerd met uitdagingen op het gebied van geheugenvoetafdruk, stroomverbruik en computerbronnen. Als gevolg hiervan is er tegenwoordig een toenemende vraag naar een nieuwe en eenvoudige 8-bit floating-point representatie (naast Bfloat en IEEE FP32) om een nog grotere NN-efficiëntie mogelijk te maken.
Aanzienlijke experimenten hebben aangetoond dat FP8 vergelijkbare modelprestaties vertoont als het gebruik van 16- en 32-bits precisie voor op transformatoren gebaseerde AI-modellen, evenals op modellen voor computervisie en Generative Adversarial Networks (GAN's). Hoewel FP8 een enigszins beperkt dynamisch bereik heeft omdat het slechts een klein aantal exponentbits heeft, kan dit worden gecompenseerd door softwarematige, per-tensorschaalfactoren die het representeerbare bereik aanpassen zodat het beter overeenkomt met de waarden (gewichten, activeringen , verlopen, enz.) worden verwerkt in plaats van alleen te vertrouwen op het FP8-formaat. Bovendien kan een model worden getraind en ingezet onder het identieke formaat van KP8, terwijl vaste-puntformaten, met name int8, zorgvuldig afgeleide schattingen vereisen op basis van statistieken tijdens de implementatiefase om de nauwkeurigheid te behouden, om nog maar te zwijgen van de kalibratie en conversie overhead.
Hier bij Arm zijn we van plan om in 2023 FP8-ondersteuning toe te voegen aan de Armv9 ISA als onderdeel van Armv9.5-A en onderzoeken we de beste manier om deze ondersteuning te integreren in al onze ML-platforms. We geloven stellig in de voordelen van de industrie die samenvloeit rond één 8-bits floating point-formaat, waardoor ontwikkelaars zich kunnen concentreren op innovatie en differentiatie waar het er echt toe doet. We zijn verheugd om te zien hoe FP8 de ontwikkeling van AI in de toekomst bevordert.
Lees meer over FP8 in dit nieuwe technische document.
Neil Burgess
Senior Principal Design Engineer, Arm
Sangwon Ha
Staff Software Engineer, Arm