Одна відповідь: чому Nvidia робить графічні процесори більшими, коли вони не потрібні іграм?

Нещодавно я кілька разів обговорював це питання, в тому числі з досить сучасними інженерами, які працюють в ІТ. Це правда, що останні пропозиції Nvidia як в ігровому, так і в професійному діапазоні досить приголомшливі з точки зору енергоспоживання, розміру, вартості, загальної кількості відеопам’яті тощо... але насправді існує дуже реальна потреба в цьому. спільнотою ML, можливо, більше, ніж очікує більшість людей.

Ось приклад проекту, над яким я працюю сьогодні. Ось консольний вихід моделі, яку я зараз треную:

----------------------------

I1015 20:04:51.426224 139830830814976 supervisor.py:1050] Підсумок запису на кроці 107041. INFO:tensorflow:global step 107050: loss=1,0418 (0,453 сек/крок)

I1015 20:04:55.421283 139841985250112 learning.py:506] глобальний крок 107050: втрата = 1,0418 (0,453 с/крок) INFO:tensorflow:глобальний крок 107060: втрата = 0,9265 (0,461 с/крок)

I1015 20:04:59.865883 139841985250112 learning.py:506] глобальний крок 107060: втрата = 0,9265 (0,461 с/крок) INFO:tensorflow:глобальний крок 107070: втрата = 0,7003 (0,446 с/крок)

I1015 20:05:04.328712 139841985250112 learning.py:506] глобальний крок 107070: втрата = 0,7003 (0,446 с/крок) INFO:tensorflow:глобальний крок 107080: втрата = 0,9612 (0,434 с/крок)

I1015 20:05:08.808678 139841985250112 learning.py:506] глобальний крок 107080: втрата=0,9612 (0,434 с/крок) INFO:tensorflow:глобальний крок 107090: втрата=1,7290 (0,444 с/крок)

I1015 20:05:13.288547 139841985250112 learning.py:506] глобальний крок 107090: втрата = 1,7290 (0,444 с/крок)

----------------------------

Перевірте останній рядок: із розміром пакету 42 кадри (максимум, який я можу вмістити на своєму графічному процесорі з 24 ГБ пам’яті), я випадково отримую випадковий пакет, де загальна втрата більш ніж удвічі перевищує ковзне середнє за останній 100 лотів!

У цьому немає нічого принципово поганого, але це загальмує збіжність моделі протягом кількох ітерацій і, ймовірно, не допоможе досягти ідеального кінцевого стану моделі за кількість ітерацій I заплановано.

Частково це пов’язано з тим, що я маю фундаментально незбалансований набір даних і потребую застосувати доволі велике перебалансування ваги на мітку у функції втрат, щоб це врахувати... але це найкраще відображення реальності в моєму випадку я працюю!

--> Ідеальним рішенням ЗАРАЗ було б використовувати більший розмір партії, щоб мінімізувати можливість отримання цих великих викидів у навчальному наборі.

Щоб отримати найкращі результати в короткостроковій перспективі, я хочу навчити цю систему (використовуючи цю маленьку магістраль) з пакетами по 420 кадрів замість 42, для чого знадобиться 240 ГБ пам’яті... отже, наприклад, 3 графічних процесора Nvidia A100 !

--> Зрештою, наступним кроком є ​​створення версії з магістральною системою, яка має у 5 разів більше параметрів, і на тому самому наборі даних, але масштабована до 2-кратної лінійної роздільної здатності. Ймовірно, для цього потрібно близько 500 ГБ відеопам’яті для достатньо великих пакетів щоб отримати хорошу конвергенцію в усіх класах! І майте на увазі, що це відносно невелика модель, яку можна розгорнути на Intel Movidius TPU розміром з планшет і працювати в режимі реального часу безпосередньо всередині крихітного датчика. Для висновків не в реальному часі є люди, які працюють над моделями з у 1000 разів більшою кількістю параметрів!

Тож якщо комусь цікаво, чому NVIDIA продовжує створювати все більш потужні графічні процесори, і кому може знадобитися стільки потужності... ось ваша відповідь: проектуванням/розробкою цих графічних процесорів тепер на 90% керують люди, які потребують такого роду рішень для операцій машинного навчання, а ігровий ринок становить 10% від фактичної «потреби» в такому виді потужності, за 10 років це співвідношення було б протилежним.

Одна відповідь: чому Nvidia робить графічні процесори більшими, коли вони не потрібні іграм?
Нещодавно я кілька разів обговорював це питання, в тому числі з досить сучасними інженерами, які працюють в ІТ. Це правда, що останні пропозиції Nvidia як в ігровому, так і в професійному діапазоні досить приголомшливі з точки зору енергоспоживання, розміру, вартості, загальної кількості відеопам’яті тощо... але насправді існує дуже реальна потреба в цьому. спільнотою ML, можливо, більше, ніж очікує більшість людей.

Ось приклад проекту, над яким я працюю сьогодні. Ось консольний вихід моделі, яку я зараз треную:

----------------------------

I1015 20:04:51.426224 139830830814976 supervisor.py:1050] Підсумок запису на кроці 107041. INFO:tensorflow:global step 107050: loss=1,0418 (0,453 сек/крок)

I1015 20:04:55.421283 139841985250112 learning.py:506] глобальний крок 107050: втрата = 1,0418 (0,453 с/крок) INFO:tensorflow:глобальний крок 107060: втрата = 0,9265 (0,461 с/крок)

I1015 20:04:59.865883 139841985250112 learning.py:506] глобальний крок 107060: втрата = 0,9265 (0,461 с/крок) INFO:tensorflow:глобальний крок 107070: втрата = 0,7003 (0,446 с/крок)

I1015 20:05:04.328712 139841985250112 learning.py:506] глобальний крок 107070: втрата = 0,7003 (0,446 с/крок) INFO:tensorflow:глобальний крок 107080: втрата = 0,9612 (0,434 с/крок)

I1015 20:05:08.808678 139841985250112 learning.py:506] глобальний крок 107080: втрата=0,9612 (0,434 с/крок) INFO:tensorflow:глобальний крок 107090: втрата=1,7290 (0,444 с/крок)

I1015 20:05:13.288547 139841985250112 learning.py:506] глобальний крок 107090: втрата = 1,7290 (0,444 с/крок)

----------------------------

Перевірте останній рядок: із розміром пакету 42 кадри (максимум, який я можу вмістити на своєму графічному процесорі з 24 ГБ пам’яті), я випадково отримую випадковий пакет, де загальна втрата більш ніж удвічі перевищує ковзне середнє за останній 100 лотів!

У цьому немає нічого принципово поганого, але це загальмує збіжність моделі протягом кількох ітерацій і, ймовірно, не допоможе досягти ідеального кінцевого стану моделі за кількість ітерацій I заплановано.

Частково це пов’язано з тим, що я маю фундаментально незбалансований набір даних і потребую застосувати доволі велике перебалансування ваги на мітку у функції втрат, щоб це врахувати... але це найкраще відображення реальності в моєму випадку я працюю!

--> Ідеальним рішенням ЗАРАЗ було б використовувати більший розмір партії, щоб мінімізувати можливість отримання цих великих викидів у навчальному наборі.

Щоб отримати найкращі результати в короткостроковій перспективі, я хочу навчити цю систему (використовуючи цю маленьку магістраль) з пакетами по 420 кадрів замість 42, для чого знадобиться 240 ГБ пам’яті... отже, наприклад, 3 графічних процесора Nvidia A100 !

--> Зрештою, наступним кроком є ​​створення версії з магістральною системою, яка має у 5 разів більше параметрів, і на тому самому наборі даних, але масштабована до 2-кратної лінійної роздільної здатності. Ймовірно, для цього потрібно близько 500 ГБ відеопам’яті для достатньо великих пакетів щоб отримати хорошу конвергенцію в усіх класах! І майте на увазі, що це відносно невелика модель, яку можна розгорнути на Intel Movidius TPU розміром з планшет і працювати в режимі реального часу безпосередньо всередині крихітного датчика. Для висновків не в реальному часі є люди, які працюють над моделями з у 1000 разів більшою кількістю параметрів!

Тож якщо комусь цікаво, чому NVIDIA продовжує створювати все більш потужні графічні процесори, і кому може знадобитися стільки потужності... ось ваша відповідь: проектуванням/розробкою цих графічних процесорів тепер на 90% керують люди, які потребують такого роду рішень для операцій машинного навчання, а ігровий ринок становить 10% від фактичної «потреби» в такому виді потужності, за 10 років це співвідношення було б протилежним.

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow