И уже скоро. Стартап Fathom Computing в ближайшие два года планирует выпустить оптическое устройство, которое обойдет GPU по скорости тренировки крупных нейронных сетей. Разработчики хотят разместить оптический компьютер в облачном дата-центре, чтобы к нему могли получить доступ создатели систем искусственного интеллекта со всего мира.

О решении Fathom и о том, кто еще занимается такими разработками, расскажем под катом.


/ фото European Space Agency CC

Вычисления с GPU-ускорением реализовали в компании Nvidia около десяти лет назад. Теперь технология применяется в дата-центрах научных лабораторий, ИТ-компаний и IaaS-провайдеров, предоставляющих работу с vGPU, для реализации высокопроизводительных вычислений.

Однако рынок становится все более требовательным к скорости обработки больших объемов данных — порядка 90% всей информации было сгенерировано за прошедшие 2–3 года — по данным IBM, человечество генерирует 2,5 квинтиллиона байт в день.

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

Журналисты Wired описали внешний вид устройства, как «кучу линз, кронштейнов и проводов, напоминающих разобранный телескоп». Сейчас все эти компоненты помещены в большой черный ящик, однако ученые работают над тем, чтобы «упаковать» все это в стандартный сервер, который поместится в стойку дата-центра.

Компьютер Fathom не является универсальным процессором, он «заточен» под выполнение определённых операций линейной алгебры. В частности, Fathom используется для обучения рекуррентных нейронных сетей с архитектурой LSTM и нейронных сетей прямого распространения.

Сейчас команда тестирует компьютер, обучая его распознавать рукописные цифры. Пока что системе удалось добиться точности распознавания в 90%. На сайте проекта разработчики привели визуализацию потока данных LSTM, который генерирует их система управления.

В Fathom Computing отмечают, что планируют создать первую production-ready систему, которая превзойдет компьютеры с GPU по скорости тренировки сетей, в ближайшие два года.


/ фото Windell Oskay CC

Другие разработки


Компания Fathom не единственная, которая занимается созданием оптических чипов для ускорения глубокого обучения. Свою работу в этой области проводит Массачусетский технологический институт (MIT).

Ученые из MIT разработали чип, который они называют «программируемым нанофотонным процессором». Он выполняет матричные операции, используя набор волноводов, связи между которыми подстраиваются в зависимости от задачи. Чип построен на базе интерферометра Маха — Цендера, который изменяет свойства проходящих лучей и является эквивалентом матричного умножения, и ряда аттенюаторов, слегка снижающих световую интенсивность. Эти процессы обеспечивают обучение оптической нейронной сети.

Над созданием кремниевого фотоэлектронного процессора для рынка систем AI также работает стартап Lightmatter. Разработчики используют технологию MIT. Тест прототипа из 56 программируемых интерферометров Маха — Цендера, реализованных на интегральной схеме прошел прошлым летом.

Система училась распознавать гласные звуки на наборе аудиозаписей. В ходе эксперимента удалось добиться точности распознавания в 75%. Системы на базе «классического» железа достигают порога в 90%, поэтому ученые продолжат развивать и улучшать архитектуру чипа.

Еще один стартап LightOn в середине февраля объявил о начале тестирования прототипа оптического модуля Optical Processing Unit (OPU) в дата-центре. В компании отметили, что им удалось сократить время, необходимое для выполнения задачи Transfer Learning с 20 минут на классических GPU до 3,5 минут.

Открытое бета-тестирование установки начнется весной на облачной платформе LightOn Cloud. Сейчас система работает с PyTorch и совместима с Scikit-Learn. В будущем будет добавлена поддержка других популярных ML-фреймворков, например TensorFlow.



P.S. Еще несколько свежих постов из Первого блога о корпоративном IaaS:

Комментарии (10)


  1. UndeadDragon
    01.03.2018 10:27

    Ну, видимо, устройство придется затачивать под конкретную архитектуру конкретной сети?


    1. sinc
      03.03.2018 13:32

      Да, и запасаться спиртом — линзы протирать


  1. Gryphon88
    01.03.2018 14:04

    А почему нейросети? Почему не числомолотилки? Оптика действительно хорошо может в линейную алгебру и преобразование Фурье.


    1. sebres
      01.03.2018 21:25

      Потому что оно для этого очень сильно подходит.

      Что есть NN, как не «суматор» с многими входами и выходом/выходами и какой-то «магией» внутри?
      Только в случае «нормального» железа у вас к примеру работает куча потоков, каждый слой за слоем изменяет веса нейронов от входных сигналов (подгоняя их под требуемый уровень ошибки для выхода, ну и там обратная связь, градиентный спуск, вот это всё).
      При этом как число повторов (так и нужное количество потоков) растёт сильно нелинейно как при усложнении топологии сети (с увеличением количества слоёв/нейронов/обратных связей и т.д.), так и при увеличении размера обучающей выборки.

      А теперь представьте такой настраиваемый оптический как-бы «FPGA» чип, который есть тупо система (полупрозрачных) зеркал, описывающий внутри какую либо поверхность, ну например тоже находящая локальный экстремум, но в отличии от того же градиентного спуска, как бы одним махом — за один блик (как бы с полностью мгновенным откликом).
      Т.е. грубо говоря делающий тот же «градиентный спуск» тупо за один «проход» (без сильно-затратной промежуточной математики на матрицах/float внутри) и вовсе без сотен тех потоков вокруг да около.

      Упрощенно говоря, светим на каждый вход лучом нужной силы/уровня (от 0 до 1), и внутри «само-изменяем» параметры для зеркал (прозрачность для вещей типа обратной связи, угол для весов и прямых связей) по принципу пока не получим на выходе/выходах свет нужного уровня.
      Так, что в идеале, он (чип) полностью повторяет ту требуемую поверхность, как она есть.

      Сам принцип мгновенного отклика возможно когда-нибудь полностью изменит всю парадигму построения, обучения и настройки сетей.
      Это как внезапно заменить старый одно-поточный Z80 на какой-нибудь современный NVIDIA V100.

      Возвращаясь к вашему вопросу, если это будет просто чип — числодробилка, то бутылочное горлышко просто сместиться в сторону обвязки этого чипа, а полного «распараллеливания» от входа до выхода за один проход, как и собственно упомянутого «мгновенного отклика», как не было, так и не будет.


      1. Gryphon88
        02.03.2018 11:16

        Спасибо. Я немного некорректно задал вопрос, имелось в виду: почему тема оптических вычислений не всплыла раньше на 10-15 лет (когда значительно улучшилась и подешевела оптика и оптоэлектроника) в контексте числодробилок, например, для военных, или для физических симуляций, или той же оптимизации. Давайте попробуем пойти от иммутабельных данных, которые проецирует ЖК-экран. С ними можно делать не одну операцию, а несколько последовательно «за один такт», потом просто часть данных отбросить на этапе считывания или постобработки. А по поводу обвязки… Уже есть терагерцовые детекторы на лавинных фотодиодах, да и редукцию на интерференции, например, можно попробовать изобразить.


        1. sebres
          02.03.2018 12:22

          Потому что сложность построения такого настраиваемого «чипа» очень высока (ну ещё и дорого очень).
          Т.е. в теории то оно в принципе понятно как, а на практике «забыли про овраги».

          А про обвязку, вы меня не поняли — если не утащить большую часть логики обучения в оптику, то грубо говоря всё остается как есть, необходимое количество эпох, потоков, повторов, рекурентные обращения и иже с ним. Ну и плюс время необходимое на перестроение «чипа» (скармливание ему новых параметров, input lag, время переключения и т.д.) на каждой итерации.
          То есть рост времени обучения на каждой эпохе, вот этого всего, как был нелинейным, так и останется.

          Например, оставаясь на вашем примере, используя что-то типа многослойного полупрозрачного LCD построить поверхность, осветить, затем используя матрицу на APD, можно найти наибольшую/наименьшую точки свечения (экстремумы), используя тот же сумматор определить ошибку и считать тем же APD, и т.д. но…
          Это далеко не единственные действия, которые нам нужно совершить…
          Т.е. затем еще анализ в железе, многократно слой за слоем «перестроить» LCD и повторить это для каждой группы в обучающей выборке, и для нужного количества эпох, и т.д и т.п. При этом не забывайте про сложности (типа компенсация шумов на APD на больших скоростях переключений и т.д.)


          1. Gryphon88
            02.03.2018 16:14

            Если умудрились запихнуть почти всё обучение в модель, то честь им и хвала, тогда выигрыш понятен. Я просто немного про другое, про старые добрые аналоговые компьютеры, без перестроения чипа (ASIC вместо FPGA), или с относительно медленным перестроением на гальванозеркалах или акустооптике, не обязательно по предложенным в статье схемам. Вам не попадались данные, что кто-то счел прибыльным эту тему возродить?
            Что приходит в голову в первую очередь: экран и матрица на 1000*1000 16битных пикселей для обработки изображений. Очень вряд ли цикл экспонирования займет меньше 1миллисекунды, зато за раз можно прожевать 16 мегабит. Самое простое — частотная фильтрация, FT, интегрирование, направленное дифференцирование, свертка и развертка.


            1. sebres
              02.03.2018 17:01

              Если умудрились запихнуть почти всё обучение в модель, то честь им и хвала

              Нет, это к сожалению, пока даже не ближайшие перспективы. Мечты… мечты.


              Что приходит в голову в первую очередь ...

              Это вы про свертку и т.д.? Так оно о том и есть практически… Тот же упомянутый в статье MIT-овский PNPhPU (строго говоря он еще не U, а пока только programmable nanophotonic processor) на то и заточен.
              У него кстати по сравнению с GPU и ко, помимо скорости, есть еще очень большое приимущество — практически нулевой рост потребления (энергии) при усложнении (типа matrix multiplication, и т. п.).


  1. sebres
    02.03.2018 17:01

    .


  1. ni-co
    03.03.2018 13:32

    Fathom Computing это очередной развод на деньги доверчивых инвесторов. Ничего кроме красивой обертки за более чем два года существования фирмы этими братьями-основателями не придумано. Почитайте как они с геномом человека разбирались.