Сколько уровней в интеллект-стеке? Много.

Oct 23, 2017 01:15

Обсуждали сегодня, что интеллект-стек много глубже, чем я его показываю: уровень аппаратуры там нужно рассматривать тоже платформенный -- в учебнике Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера» 7 уровней для аппаратуры (http://ailev.livejournal.com/1193158.html):


И когда NVIDIA интересуется уровнями интернет-стека выше аппаратного GPU (https://ailev.livejournal.com/1380163.html),


то это она делает поверх уже довольно глубокого аппаратного платформенного стека самого GPU -- того стека, который для неё основной.

Все рассуждения про этот общий стек сохраняются: речь идёт о небольшом числе уровней где-то посредине между вселенной и элементарными частицами (см. пример холархии человеческого движения, там то же самое: https://ailev.livejournal.com/1371120.html).

Можно расщеплять и другие уровни интеллект-стека. Так в learning algorithm platform для глубокого обучения сегодня выделяют уровень описания (в том числе динамического) computation graph, а потом компилируют/интерпретируют граф в вызовы вычислительной библиотеки. Компилятор/интерпретатор обычно означает наличие дополнительного уровня. У Харрисов тоже упрощённая архитектура. Например, у мейнфреймов можно было найти в аппаратуре дополнительный уровень процессорных микропрограмм. У GPU совсем другая архитектура, но рассуждения для неё очень похожи.

Спрос (деньги!) при этом идёт сверху, от прикладного уровня интеллект-стека, а вот прорывы -- от самых нижних уровней, от devices по Харрисам. Подрыва интеллект-стека можно ожидать от квантовых компьютеров, от мемристорных компьютеров, от аналоговых нейроморфных компьютеров -- от самого низа стека, задействующего другую физику.

Зачем это всё? Для разделения труда, для модульности. Это всё борьба со сложностью. Ошибка улучшения какого-то словя не распространяется по системе неограниченно. Ошибка отслеживается на интерфейсе платформенного слоя и не проходит выше. Поэтому каждый слой можно улучшать независимо от других, просто соблюдая контракты платформенных уровней. Неизбежно получаемые при этих улучшениях ошибки не будут неконтролируемо распространяться по системе -- они будут отслежены на ближайшем интерфейсе платформенного уровня.

UPDATE: Поскольку речь идёт о системном мышлении, то это стандартный способ размышления -- вот, например, из свежих попсовых (а что вы хотите от venchurebeat?!) материалов, которые обращаются к понятию AI full-stack company: https://venturebeat.com/2017/10/20/youre-not-an-ai-company-until-youre-a-full-stack-company/. Статья сама по себе ни о чём, но автор там говорит, что прикладной уровень в интеллект-стеке тоже дробится, это тоже не один уровень, а целый стек уровней. Хотя автор довольно странно и спорно выделяет там уровни этого стека -- "every level of the solution: big data, analytics, and user experience (UX). A bot or an algorithm can’t and shouldn’t just stand on its own".
Previous post Next post
Up