Pull to refresh

Comments 30

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

Интересно, связаны ли эти новые RPU с мемристорами?
А как именно такая память может ускорить машинное обучение? Вроде ML с эноргонезависимостью ни как не связаны.
Подозреваю, что за счет того, что данные находятся рядом с вычислительным блоком и нет оверхэда на доступ к ним.
А почему тоже самое не сделать на обычной хорошо отлаженной памяти?
Возможно, эта просто быстрее? Не знаю, характеристик не видел. Но если тут получается "жесткий диск" со скоростью оперативки, то на текущих технологиях этого не сделать. А вообще, вопрос хороший.
Intel обещали в этом году начать продажу памяти Xpoint(Optane), которая будет поставляться в том числе в виде модулей оперативной памяти. Между тем сама память является не временной, а постоянной.
geektimes.ru/post/259576
geektimes.ru/post/265448
Это ничем не поможет, т.к. это отдельные внешние модули.
Тут предлагается совместить обработчики (исполнительные устройства) и память в одном чипе. Причем не просто рядом их разместить в одном кристалле и соединить какой-то быстрой внутренней шиной, а вообще без всяких шин — исполнительные устройства и запоминающие ячейки перемешаны и соединены напрямую друг с другом. С прямым доступом без задержек при чтении. (как регистры процессора, т.к. даже L1 кэш уже имеет задержки и ограниченную пропускную способность).
Аналог биологических нейронных сетей (мозга), где обрабатывающие схемы(программы) и данные которые они обрабатывают неотделимы друг от друга и представляют собой одно целое.
Если так, то это действительно круто!
Быстрые жесткие диски интересны во многих областях. Непонятно, чем они ценны именно в машинном обучении, что бы в одном устройстве стоило бы использовать несколько новых еще сырых технологий. Обычно без веской причины так не делают.
"- Вот это правильный вопрос, детектив!"
© «Я, робот»
На какой? DRAM? Нужна энергонезависимая — т.к. в ней хранятся не обрабатываемые временны данные (например образцы данных из обучающей выборки), а сам "опыт" тренируемой сети который должен сохраняться (и накапливаться/уточнятся) в процессе обучения и потом многократно использоваться после окончания процесса обучения.
Причем если в оригинал заглянуть эти ячейки запоминающие веса они предлагают делать не цифровыми(двоичными) а аналоговыми — сопротивление(проводимость) = весу связи между нейронами. Т.е. 1 ячейка кодирует не 1 бит, а описывает 1 связь.
В общем это практически полный электронный аналог живого мозга с нейронами и синапсами выполненный на аппаратном уровне, где нейроны заменены схемками на обычных транзисторах, а синапсы — ячейками резистивной памяти.
В общем нейроморфный чип, а совсем не чип для ускорения вычислений по традиционным алгоритмам используемым для модерирования нейронных сетей.
Во время обучения будет отключаться электричество? Я не понимаю профита энергонезависимости именно в задаче машинного обучения.
Если такая ячейка используется как аналоговая, это уже интересно. Но хорошо бы это было описать, что бы не надо было копаться в первоисточнике для оценки интересности данного решения.
Ну вот прошли мы итерацию, веса изменились. Их надо либо сразу отправить в ПЗУ и гарантировать, что они правильно записались, либо оставить в оперативке и уходить на следующий круг. Отправка в отдельно стоящую энергонезависимую память означает, что у нас во первых появляются расходы на то, чтобы данные пропихнуть через интерфейс, а во вторых, если эта память общая для нескольких ячеек, появляется еще какой-то арбитраж, кто-куда-чего пишет. Любой сбой в процессе синка приводит к тому, что система оказывается в абсолютно недетерминированном состоянии. Здесь же получается (даже если забыть про то, что пишем аналог), что либо не поломается ничего, либо поломается несколько "нейронов".
насколько я понял после беглого прочтения статьи на arXiv, они предлагают КОНЦЕПТ, где процесс обучения моделируется аналоговыми схемами и хранятся «аналоговые» веса — а потом на выходе стоит аналогово-цифровой преобразователь, чтобы из них получить численные значения. А в статье подробно обсуждают, что делать с шумом и не убьет ли он все выгоды от такой схемы — и вывод, что можно попробовать.
Ну в том числе и электричество — обучение сложных сетей может идти днями и неделями непрерывно и за это время всякое может случится. Но не только на обучение — потом такая обученная аппаратная сеть сама в себе результаты своего обучения и хранит — их не нужно откуда-то загружать и пересылать перед каждым началом работы с ней (разве что офлайн бекап один раз сделать — на случай физических повреждений, чтобы потом новую сеть с нуля не тренировать), они всегда доступны причем с мгновенным (в буквальном смысле) доступом. Как константы сохраненные прямо в программном коде. И поскольку после окончания обучения при обычном использовании эти веса уже не меняются, то их постоянное и энергонезависимое хранение — это то что нужно.
Хотя главный довод в пользу этого не столько сама способность долговременного хранения, а сопутствующее ей отсутствие необходимости постоянно и часто "освежать" эти данные как происходит с традиционными типами памяти наподобие DRAM — для чего нужны свои отдельных схемы, линии(соединения в чипе) и немалые затраты энергии. Т.е. плюсы в виде упрощения структуры чипа и увеличения энергоэффективности.
Про статью — это к автору. Штатные редакторы к сожалению часто дальше абстракта и введения не читаю когда "пересказ" пишут. А про аналоговые ячейки идет где-то в середине, и не как строго обязательное условие, а как один из вариантов реализации. Предпочтительный перед цифровым (двоичным) если удастся решить сопутствующие проблемы. Благо все основные энергонезависимые типы ячеек по своей сути "аналоговые" и их оцифровка происходит только в момент чтения.
Вопрос в том, сколько значений этот аналоговый "бит" может в себе хранить. Оригинал не посмотрел, но терзают смутные сомнения, что там что-то типа "сопротивление от A до B — это 0, сопротивление от С до D — это 1. Сопротивление от B до C — что-то пошло не так." Но если там хотя бы 256 градаций — это уже интересно.
UFO just landed and posted this here
Вы про Сетунь? Она серийно выпускалась (согласно википедии, построено 46 машин, 30 использовалось). Память там была магнитная, один трит занимал 2 бита, четвертое состояние запрещено.
Там вообще не предполагается фиксированных градаций. Есть только естественное (натуральное) значение сопротивления от минимально возможного (максимальная проводимость) и до стремящегося к бесконечности (минимальная проводимость) с теоретически бесконечным количеством градаций между ними.
Оцифрованные (двоичные) данные предполагаются только на входе и на выходе из сети, а внутри нее все в аналоговой форме хранится.
На практике конечно бесконечного количества градаций не будет. С одной стороны и из-за ограничений используемых материалов, которые уже проявляются при нанометровых размерах ячеек — например для ячеек постоянной памяти с ловушкой заряда (наподобие флеш памяти) изготовленных по современным тех.процессам счет на кол-во электронов "пойманных" в подобной ловушке уже идет на сотни или даже десятки штук всего и поэтому хоть значение проводимости и аналоговое — оно начинает квантоваться пропорционально заряду 1 электрона уже из-за физических ограничений, а не архитектурных.
С другой — из-за того, что процессом обучения будут управлять внешние (обычные цифровые традиционной архитектуры) схемы, которым эти значения нужно модифицировать и отслеживать эффекты от этих модификаций. При бесконечном числе градаций весов получим бесконечное кол-во итераций для внешних цифровых схем — в результате им нужен какой-то фиксированный "шаг".
Для примера в статье рассматривался вариант с 600 градаций весов.
Ваш бы комментарий в эту статью, а то из нее ничего не понятно
Подозреваю, что за счет того, что данные находятся рядом с вычислительным блоком и нет оверхэда на доступ к ним.…

Вы абсолютно правы: So why does it take so much computing power and time to teach AI? The problem is that modern neural networks like Google's DeepMind or IBM Watson must perform billions of tasks in in parallel. That requires numerous CPU memory calls, which quickly adds up over billions of cycles. The researchers debated using new storage tech like resistive RAM that can permanently store data with DRAM-like speeds. However, they eventually came up with the idea for a new type of chip called a resistive processing unit (RPU) that puts large amounts of resistive RAM directly onto a CPU.
Отдельный энергоэффективный девайс был бы как нельзя кстати, очень жду нормальное решение в этом плане, а то моя игровая видюшка на CuDNN вечно гудит, греется и в самый неподходящий момент упирается в память. Даже не ускорение просчёта как таковое интересует, а возможность работать с более сложной топологией, большим числом слоёв, большим числом фильтров и т.д.
Статья не объясняет ровным счётом ничего.
КДПВ просто замечательно кореллирует с новостью...
Думаю RPU что-то сродни FPGA с возможностью на ходу обучать модель, сохранять и переносить схему. Без необходимости долгой и ресурсоемкой компиляции или заказа партии ASIC отделяющих кошек от собак.
Да, предлагаемая концепция весьма похожа на FPGA.
Из минусов — весьма ограниченные возможности по "программированию" — можно только менять веса связей между "нейронами". Сами нейроны, их принципы функционирования и схема связей между ними (кол-во, топология и т.д.) жестко определены еще на этапе производства, одинаковы для всех чипов одной модели и не могут быть изменены.
Из плюсов — большая плотность "упаковки", в частности программируемый массив 4096х4096 по оценкам авторов можно уложить примерно в 3 мм2 современного чипа и большая энергоэффективность вычислений. Ну и подстройка/дообучение "на лету" — можно в любой момент поменять некоторые веса и сразу посмотреть что изменится на выходе, без необходимости полной "пересборки"(перепрограммирования) чипа.
UFO just landed and posted this here
Представляю себе новую игру, в которой будет сильный ИИ НПЦ, обучающийся на действиях игроков.
Sign up to leave a comment.