Нейронні мережі, на основі яких будуються сучасні системи глибинного машинного самонавчання і штучного інтелекту, в більшості випадків використовують стандартний 32-розрядний формат чисел з плаваючою комою IEEE FP32. Це забезпечує високу точність обчислень і кінцевого результату, але вимагає використання великих обсягів пам’яті і високопродуктивних процесорів, які споживають значну кількість енергії. У системах ж з високими вимогами до швидкодії і з обмеженими обчислювальними ресурсами використовуються 8-розрядні цілі числа зі знаком INT8. Це дозволяє отримати високу продуктивність систем штучного інтелекту, принісши в жертву точність обчислень і кінцевого результату.
Для вирішення проблеми, пов’язаної з компромісом між продуктивністю систем штучного інтелекту і розрядністю використовуваних чисел, фахівці Google Brain свого часу розробили спеціальний формат чисел з плаваючою комою, оптимізований для глибинного самонавчання і дозволяє отримувати результат з мінімально можливими втратами точності. Цей формат, BF16 (BFloat16, Brain Float 16) вже знайшов широке застосування в спеціальних апаратних прискорювачах, розроблених компаніями Google, Intel, ARM і ін.
У чому ж різниця між форматами FP32 і BF16? Число з плаваючою комою в стандартному форматі FP32 складається з 1 знакового біта, що визначає знак числа (+ або -), після нього слід 8-бітна експонента (ступінь числа), після якої йде 23-бітна мантиса (саме число). І в сумі набираються повні 32 розряду.
Для формату BF16 фахівці Google Brain запропонували усікти мантиссу до 7 біт. Такий вибір був зроблений далеко не випадково, проведені експерименти показали, що якість роботи нейронних мереж набагато чутливіше до розміру експоненти, ніж мантиси. І варіант BF16 є самим прийнятним компромісом.Таким чином, число в BF16 складається з одного знакового біта, 8-бітної експоненти і 7-бітної мантиси, що в сумі становить повні 16 біт. Для проведення тензорних операцій з числами в форматі BF16 потрібні набагато менші обчислювальні потужності, обсяги пам’яті та енергетичні витрати. Нагадаємо нашим читачам, що тензор — це тривимірна матриця чисел, а множення тензорів — це ключова операція, на якій стоять усі обчислення в системах штучного інтелекту.
Можна поставити запитання, а чому б не використовувати в системах штучного інтелекту стандартний усічений формат чисел з плаваючою комою IEEE FP16? Адже цей формат досить успішно використовується в багатьох додатках, пов’язаних з комп’ютерною графікою і комп’ютерними іграми. Число у форматі FP16 виглядає наступним чином — один знаковий біт, 5-бітна експонента і 10-бітна мантиса, що в сумі становить повні 16 біт.
Відразу можна відзначити, що усічена експонента визначає набагато менший динамічний діапазон чисел, ніж діапазон формату BF16, який майже дорівнює діапазону FP32. По-друге, для перетворення числа FP32 в формат FP16 потрібно досить складна процедура, ніж найпростіша операція по усіканню розрядності мантиси, необхідна для перетворення FP32 в BF16. І, по-третє, усічена мантиса формату BF16 дозволяє зробити шину блоків апаратних умножителей менше, ніж необхідно для формату FP16. В результаті цього самі блоки умножителей для формату BF16 у вісім разів менше за займаною на кристалі чіпа площі, ніж умножители для FP32, і в два рази менше, ніж умножители для FP16.І на закінчення слід зауважити, що формат BF16 є не єдиним форматом, розробленим для систем штучного інтелекту. У 2017 році компанія Nervana запропонувала формат під назвою Flexpoint, який повинен був об’єднати всі переваги цілих чисел з числами з плаваючою комою. По суті, цей формат є модифікацією чисел з фіксованою комою, які складаються з двох цілих чисел. Перше число являє собою цілу частину числа до коми, друге — дробову частину числа (після коми). Фахівці компанії Nervana доповнили формат числа з фіксованою комою ще і експонентою, однак, для прискорення операцій експонента була одна для всіх чисел, з яких складається тензор. При такому підході множення тензорів могло бути вироблено за допомогою математики на основі дуже швидких цілочисельних операцій.
Але тут же виникла і проблема, пов’язана з вузьким динамічним діапазоном чисел, що мають одну і ту ж саму експоненту. Ця проблема унеможливила «зліт» формату Flexpoint і навіть в перших прискорювачах компанії Nervana вже використовувався формат BF16. Джерело
… [Trackback]
[…] Read More Information here to that Topic: portaltele.com.ua/news/events/shtuchnij-intelekt-otrimav-vlasnu-sistemu-chislennya.html […]
… [Trackback]
[…] Here you can find 84582 additional Info on that Topic: portaltele.com.ua/news/events/shtuchnij-intelekt-otrimav-vlasnu-sistemu-chislennya.html […]