Единици за обработка на Tensor: Както история, така и приложения

Google обяви своите Tensor Processing Units(накратко TPU) през май 2016 г. като изработени по поръчка интегрирани схеми за конкретно приложение за машинно обучение. Създаден е да бъде съвместим с проекта Tensorflow на Google, който е софтуерна библиотека с отворен код за машинно обучение в редица задачи. Той може да изгражда и обучава невронни мрежи за откриване и справяне с шифрова корелация по начин, който е ясен за човешките модели и разсъждения. Някои от широко разгласените му употреби включват:

  1. RANK BRAIN — AI система за машинно обучение, която управлява търсачката на Google.
  2. GOOGLE MAPS — Когато се използва за подобряване на точността на резултатите. Пример: Четене на улични номера
  3. ALPHA GO – Програма, разработена от Deepmind за игра на Go.

За да разберем наистина колко вълнуващи са TPU обаче, имаме нужда от малко предистория и затова ще ви дам кратък преглед както на CPU, така и на GPU, като и двата са видове електронни схеми, използвани в компютърните системи .

Централните процесори (накратко CPU) са електронни схеми, използвани в компютърна система, която изпълнява инструкциите на компютърна програма чрез извършване на основни аритметични, логически контролни и входно-изходни операции. Те навлязоха в широка употреба през 50-те и 60-те години на миналия век и поради техните конфигурации; а именно ограничени възможности за съхранение и поне първоначална относителна гъвкавост, те бяха подходящи за серийни и линейни, т.е. за процеси стъпка по стъпка.

Графични процесори (накратко GPU) са по-специализирани електронни схеми, предназначени за бързо манипулиране и промяна на паметта, за да се ускори създаването и показването на изображения. Те се използват за картографиране на текстури; което е много полезно за видеоигри и за лесно решаване на неудобно паралелни проблеми. А през 2005 г. GPGUзапочват да се използват за обучение на конволюционни невронни мрежи. И ключовият момент тук е, че те бяха свикнали да изпълнявате малко по-тежки задачи по отношение както на пространствената, така и на енергийната паралелна обработка.

Тъй като машинното обучение и невронните мрежи се оказаха по-популярни, бързо се появи необходимостта от или нещо, което може да обработва невероятно големи количества данни и сложни процеси и да прави и двете неща. С големи източници на невронни мрежи, системи, вдъхновени от биологични структури и по-специално мозъкът се учи; и да кажа, че прогресивно подобряват производителността, за да изпълняват задачи. Като цяло чрез разглеждане на примери по време на периода на обучение, в който както входът, така и изходът се предоставят на системата. След като бъде конфигуриран до достатъчна степен на точност чрез тези контролирани методи, всички входни данни се предават на системата, която след това предоставя собствен изход, който да бъде сравнен с очакваните резултати. В изкуствени невронни мрежи, които се основават на колекция от свързани неврони, които се обръщат, за да изобразят аксоните в мозъка. Тези подобни на възли структури обикновено имат вътрешно състояние, което е представено от реални числа обикновено 0, което можете да мислите за него като ИЗКЛЮЧЕНОи 1 което е ВКЛЮЧЕНО. Това активиране на неврон се обработва от функция за активиране, която взема информация от неврона нагоре по веригата и определя дали надвишава или не праг като биологичен потенциал за действие в клетките. Само ако обобщената информация премине прага, информацията се предава надолу по потока. Всяка връзка или синапс между невроните може да предава сигнали към друг неврон. Въпреки това, в зависимост от определената тежест или относителна важност на тази връзка, само определен процент от информацията ще бъде изпратен надолу по потока. Това тегло е конфигурирано за подобряване на точността, докато обучението преминава към състояние, наречено обратно разпространение, което след това ще увеличи или намали силата на сигнала, който го изпраща надолу. И обикновено невроните и синапсите са организирани в слоеве, така че различните слоеве могат да извършват различни видове трансформации на своите входове и сигналите преминават от първия на входния слой до последния на изходния слой, вероятно след терасиране на слоевете многократно.

Това всъщност е мястото, където влизат Tensor Processing Units (накратко TPU) и това е, за което са създадени. TPU прилагат процес, наречен квантуване, който използва 8-битово цяло число за приближаване на стойност между предварително зададена минимална и максимална стойност. Така че се състои от диапазон от стойности в една. така че това е идеално в случай на пространствена оптимизация и намалява консумацията на енергия. Complex Instruction Set Computing (или накратко CISC), предназначен за процеса на прилагане на инструкции от високо ниво. Те изпълняват по-сложни задачи с тези инструкции. Това е в публикацията за дизайни на изчисления с намален набор от инструкции (или накратко RISC), внедрени в повечето GPU и CPU. С RISC фокусът е да се дефинират прости инструкции и да се изпълнят възможно най-бързо. Типичните RISC процесори предоставят инструкции за прости изчисления като умножение за добавяне на числа и следователно се наричат ​​скаларни процесори, тъй като изпълняват единична или скаларнаоперация с всяка инструкция. За разлика от това, TPU имат матричен процесор, който обработва стотици хиляди матрични операции в един такт и можете да мислите за това като за отпечатване на цял документ наведнъж, а не дума по дума или ред по линия. Всъщност имаше второ поколение TPU, пуснати през май 2018 г.; наречени Cloud TPU и те могат както да изпълняват, така и да обучават невронни мрежи. Те включват персонализирана мрежа, която позволява изграждането на машинно обучение, може да включва суперкомпютри, които се наричат ​​TPUpods.

Така че това е невероятно вълнуващо, но възниква въпросът; Къде отиваме след това...? И очевидно нямам отговорите. Но искам да насоча вниманието ви към някои възникващи модели и свързаните с тях въпроси. Тъй като видяхме прогресията от CPU към GPU и към TPU, има тенденция към предпочитане на: паралелизиране на процесите, разширяване на пространствата за съхранение и увеличаване на сложността и взаимозависимостта на частите, както форма, така и функция. Така че въпросите, които могат да възникнат от горните модели, включват тези за изпълнението.

Как можем да внедрим TPU по най-добрия възможен начин…?
Как ще променят стратегиите ни за подход към определен проблем…?

Сега започваме да даваме приоритет на подхода с груба сила, не че имаме неограничена скорост и място за съхранение, ние продължаваме да търсим ефективност. В кой момент едно от тези неща става по-ценно от другото. И TPU работят със закона на Мур; което бих ви позволил да разгледате повече по-късно, ако искате;

С напредването на времето и технологиите ние сме склонни да събираме все повече и повече информация и повече и структури във все по-малко и по-малко пространство(По моите думи).

Така че това е като експоненциална крива на растеж. И въпросът е:
Какво е ограничението за това...?
Разбираме ли изобщо какво могат да направят TPU...?

И бих казал, че не го правим, защото ние също не знаем какво прави мозъкът, а невронните мрежи са моделирани на мозъка и TPU са моделирани да работят с невронни мрежи.