Блоки тензорной обработки: История и приложения

В мае 2016 года компания Google анонсировала свои блоки тензорной обработки (сокращенно TPU) как изготовленные на заказ специализированные интегральные схемы для машинного обучения. Он разработан с учетом совместимости с проектом Google Tensorflow, который представляет собой библиотеку программного обеспечения с открытым исходным кодом для машинного обучения для решения ряда задач. Он может создавать и обучать нейронные сети обнаруживать и обрабатывать шифрованную корреляцию способом, понятным человеческим образцам и рассуждениям. Некоторые из широко известных применений включают:

  1. RANK BRAIN - система искусственного интеллекта с машинным обучением, на которой работает поисковая система Google.
  2. GOOGLE КАРТЫ. Используется для повышения точности результатов. Пример: чтение номеров улиц
  3. ALPHA GO - программа, разработанная Deepmind для игры в го.

Однако, чтобы действительно понять, насколько интересны TPU, нам понадобится немного предыстории, и поэтому я собираюсь дать вам краткий обзор как процессоров, так и графических процессоров, которые являются типами электронных схем, используемых в компьютерных системах. .

Центральные процессоры (сокращенно ЦП) - это электронные схемы, используемые в компьютерной системе, которая выполняет инструкции компьютерной программы, выполняя основные арифметические операции, логическое управление и операции ввода-вывода. Они получили широкое распространение в 1950-х и 1960-х годах благодаря своей конфигурации; а именно ограниченные возможности хранения и, по крайней мере, начальная относительная гибкость, они подходили для последовательного и линейного, то есть для пошаговых процессов.

Блоки обработки графики (сокращенно ГП) - это более специализированная электронная схема, предназначенная для быстрого управления и изменения памяти для ускорения создания и отображения изображений. Они используются для наложения текстуры; который очень полезен для видеоигр и с легкостью решает досадно параллельные задачи. А в 2005 году GPGU начинают использоваться для обучения сверточных нейронных сетей. И ключевым моментом здесь является то, что они использовались для выполнения немного более тяжелых задач с точки зрения как пространственной, так и энергетической параллельной обработки.

По мере того, как машинное обучение и нейронные сети становились все более популярными, быстро возникла потребность в чем-то, что могло бы обрабатывать невероятно большие объемы данных и сложные процессы и делать и то, и другое. С крупными источниками нейронных сетей системы, вдохновленные биологическими структурами и, в частности, мозгом обучаются; и сказать, что они постепенно повышают производительность при выполнении задач. Как правило, рассматривая примеры во время периода обучения, когда системе предоставляются как входные, так и выходные данные. После того, как она была настроена с достаточной степенью точности с помощью этих контролируемых методов, все входные данные передаются в систему, которая затем выдает свои собственные выходные данные для сравнения с ожидаемыми результатами. В искусственных нейронных сетях, основанных на наборе связанных нейронов, которые поворачиваются, чтобы отображать аксоны в мозгу. Эти узлы, такие как структуры , обычно имеют внутреннее состояние, которое представлено действительными числами, обычно 0, которое можно представить как ВЫКЛ и 1 что ВКЛ. Эта активация нейрона обрабатывается функцией активации, которая берет информацию от вышележащего нейрона и определяет, превышает ли она пороговое значение, подобное биологическому потенциалу действия в клетках. Только если совокупная информация превышает пороговое значение, информация передается по потоку. Каждое соединение или синапс между нейронами может передавать сигналы другому нейрону. Однако, в зависимости от определенного веса или относительной важности этой ссылки, только определенный процент информации будет отправлен вниз по потоку. Этот вес настроен для повышения точности по мере того, как обучение переходит в состояние, называемое обратным распространением, которое затем увеличивает или уменьшает силу сигнала, который отправляет его вниз. И обычно нейроны и синапсы организованы в слои, поэтому разные слои могут выполнять различные виды преобразований на своих входах, а сигналы проходят от первого входного слоя до последнего выходного слоя, возможно, после многократного террассирования слоев.

Именно здесь используются блоки тензорной обработки (сокращенно TPU), и именно для этого они созданы. TPU реализуют процесс, называемый квантованием, который использует 8-битное целое число для аппроксимации значения между предварительно установленным минимальным и максимальным значением. Таким образом, он состоит из диапазона значений в одно. так что это идеально в случае пространственной оптимизации и снижает потребление энергии. Computing Set Instruction Set Computing (или сокращенно CISC), предназначенный для выполнения высокоуровневых инструкций. С этими инструкциями они выполняют более сложные задачи. Об этом говорится в статье Вычисления с сокращенным набором инструкций (или сокращенно RISC), реализованных в большинстве графических процессоров и процессоров. В RISC основное внимание уделяется определению простых инструкций и их максимально быстрому выполнению. Типичные процессоры RISC предоставляют инструкции для простых вычислений, таких как умножение для сложения чисел, и поэтому называются скалярными процессорами, поскольку они выполняют одиночную или скалярную операцию с каждой инструкцией. Напротив, TPU имеют матричный процессор, который обрабатывает сотни тысяч матричных операций за один такт, и вы можете думать об этом как о печати всего документа сразу, а не пословно или построчно. по строке. Фактически в мае 2018 года было выпущено второе поколение TPU; называются Облачные TPU, и они могут как запускать, так и обучать нейронные сети. Они включают настраиваемую сеть, которая позволяет создавать машинное обучение, могут включать суперкомпьютеры, которые называются TPUpods.

Это невероятно захватывающе, но возникает вопрос; Куда мы пойдем дальше…? И, очевидно, у меня нет ответов. Но я хочу обратить ваше внимание на некоторые возникающие закономерности и связанные с ними вопросы. Как мы видели прогресс от ЦП к ГП и TPU, наблюдается тенденция в пользу: распараллеливания процессов, расширения дисковых пространств и увеличения сложности и взаимозависимости частей , и форма, и функция. Таким образом, вопросы, которые могут возникнуть из приведенных выше шаблонов, включают вопросы реализации.

Как мы можем реализовать TPU наилучшим образом…?
Как они изменят наши стратегии подхода к конкретной проблеме…?

Теперь мы начинаем уделять приоритетное внимание подходу грубой силы, а не потому, что у нас есть неограниченная скорость и пространство для хранения, мы продолжаем стремиться к эффективности. В какой момент одна из этих вещей становится более ценной, чем другая? И TPU соблюдают закон Мура; который я позволю вам рассмотреть позже, если хотите;

По мере того, как время и технологии предшествуют, мы склонны упаковывать все больше и больше информации и структур в все меньшее и меньшее пространство (по моим словам) .

Итак, это похоже на кривую экспоненциального роста. Возникает вопрос:
Каков предел этого…?
Понимаем ли мы, что TPU могут делать…?

И я бы сказал, что нет, потому что мы не знаем, что делает мозг, а нейронные сети моделируются на основе мозга, а TPU моделируются для работы с нейронными сетями.