Книга: Baidu. Как китайский поисковик с помощью искусственного интеллекта обыграл Google @bookiniero
Назад: ИИ требует «физиологических» изменений – инновации в инфраструктуре
Дальше: Философия коэволюции нейронных сетей

Компьютерная архитектура

Энергосбережение и сокращение выбросов касается внешних изменений. Например, пациенту с лихорадкой нужен энергосберегающий кондиционер. Но компьютеру нужны внутренние модификации. Существующая архитектура сервера и центра обработки данных так же, как и пакетная обработка, является продуктом прошлой эпохи. Она построена на архитектуре старого компьютера, наполовину устаревшей и наполовину стареющей.

Традиционная архитектура ядра компьютера основана на структуре фон Неймана: память и обработка данных разделены, вычислительная логика распределена линейно. Компьютерная микросхема выполняет код команды, сохраняет результат в памяти и использует его для следующего вычисления по принципу петли. Архитектура проста и понятна, но процесс занимает много времени. Кроме того, поскольку ЦП может выполнять произвольные задачи, необходимо иметь память, декодер, арифметический блок, процессор обработки ветвления и т. п., чтобы устанавливать порядок, в котором решаются задачи. Логика управления сложна – необходимо иметь множество различных инструкций. А возможности параллельной обработки низки.

Закон Мура неэффективен. В настоящее время рост скорости работы компьютерной памяти составляет 9 % в год, жесткого диска – 6 % в год. Скорость работы компьютерной памяти составляет всего лишь несколько сотых процента скорости процессора. И это становится проблемой. Модель пропускной способности хранения данных существенно ухудшила производительность компьютера.

На начальном этапе развития поступали предложения видоизменений компьютерной архитектуры. Например, для персональных компьютеров было предложено использовать задачи общего типа. В таком случае, даже если выполняется простая задача, например ввод текста, используются все ресурсы системы и теряется энергия. Проблему можно решить созданием компьютера, который сможет самостоятельно изменять архитектуру и выбирать оптимальное решение для задач с разной степенью сложности. Компьютерные инновации нашли способ развития технологии.

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

Люди пытаются развивать технологии в нескольких направлениях. Ученые, которые занимаются глубоким обучением, используют графический процессор. Это является беспрецедентным шагом вперед. GPU использует SIMD (Single Instruction Multiple Data Stream), чтобы дать возможность нескольким устройствам обрабатывать данные в том же темпе, в котором изначально обрабатывались данные образа. Кроме того, он отлично подходит для работы с нелинейными дискретными данными. Baidu использует кластеры GPU для оптимизации работы собственного сервера графического процессора, значительно улучшая производительность оборудования. Но графический процессор построен на структуре фон Неймана.

Программируемая пользователем вентильная матрица (FPGA) – еще одно направление развития. Первоначально она использовалась в специализированной интегральной схеме ASIC и была предназначенна для конкретного пользователя или системы. В прошлом цифровые интегральные схемы сократили стоимость электронных продуктов благодаря универсальности и масштабу производства. Но в то же время создали противоречие между общим и специальным использованием и между проектированием и производством схем. Чем больше размер, тем сложнее было изменить параметры. Поэтому была создана специальная интегральная схема FPGA, которая позволяет пользователям принимать участие в конфигурации.

Конструкция сложной параллельной схемы была перенесена на вычислительную микросхему. Микросхема вычисления FPGA заполнена «логическим массивом ячеек» и включает в себя три части: настраиваемый логический модуль, модуль ввода и вывода и внутреннее соединение. Они являются независимыми базовыми модулями логической единицы, которые реализуют как комбинированные, так и последовательные логические функции – определяют логику и отношения на языке описания аппаратного обеспечения. В отличие от структуры фон Неймана, память в этой структуре Фэн имеет две функции: сохранение промежуточных результатов расчета и обеспечение межблочной связи. Когда несколько команд запрашивают память, необходим арбитраж доступа. Регистры и встроенная память (BRAM) в FPGA имеют собственную логику управления без ненужного арбитража и буферизации. Соединение между логическим блоком FPGA и окружающим логическим блоком программируется и может быть предопределено без связи с общей памятью. Параллельные вычисления – это операция, которая может выполнять несколько команд одновременно и значительно экономит время. Также может быть специально запрограммировано на аппаратном обеспечении для различных сценариев приложений с высокой гибкостью.

Baidu начала внедрять FPGA в 2012 году. Мы были первой решившейся на это компанией в стране и одной из первых в мире. Чжан Якин отмечал, что мы начали с CPU и впоследствии добавили к нему GPU. Большинство компаний, занимающихся ИИ, используют графические процессоры. Но есть преимущества, которые предоставляет FPGA. Значительно улучшается скорость и эффективность всей архитектуры. GPU начинают лучше обрабатывать изображения и аудиозаписи. Кроме того, возможность запрограммировать FPGA позволяет быстро изменять архитектуру. FPGA, используемые Baidu, повышают эффективность CPU и GPU в 5-6 раз даже без непосредственного изменения имеющейся архитектуры.

Сетевая передача является основной проблемой для скорости вычислений. Baidu инвестирует средства в разработку передовых технологий сетевой коммуникации, которые используют 100G RDMA для связи между GPU и FPGA. Таким образом, достигается плавная и быстрая передача информации между кластерами и базами данных.

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

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

Ученые были вдохновлены возможностью применения технологии глубокого обучения к чипам. Нейронные сетевые чипы, базирующиеся на ней, до сих пор остаются инновационным продуктом. Intel, IBM, NVIDIA и другие крупные компании создали собственное направление разработки микросхем. А чипы глубокого обучения, разработанные китайскими технологическими компаниями, уже заняли лидирующие позиции на международном рынке.

Искусственная нейронная сеть – общий термин, применяющийся в отношении вычислительной архитектуры, которая имитирует биологическую нейронную сеть. Она связывает несколькими узлами или синапсами искусственные нейроны. Каждый нейрон обладает функцией возбуждения. А синапсы фиксируют появляющиеся связи между ними.

RDMA предоставляет прямой доступ к операционной памяти по сети, поэтому большая вычислительная мощность не требуется. Отпадает необходимость в операциях копирования и обмена текстовыми сообщениями, за счет чего освобождается пропускная способность памяти и ускоряется работа процессора. Значит, улучшается производительность системы.

Нейронная сеть многослойна. Функции одного нейрона определяются функциями другого, связанного с ним синапсом. Обучающаяся нейронная сеть должна обеспечивать корректировку результата путем ввода большого количества данных. Суть процесса в том, чтобы непрерывно корректировать связь между нейронами, пока результат не станет стабильно верным. Затем при вводе новых данных результат может быть рассчитан в соответствии с текущим синаптическим весом. Так реализуется «обучение» нейронной сетью. Хранение и обработка в нейронной сети интегрированы, а промежуточные результаты расчета становятся весом синапса.

Традиционные процессоры (включая чипы x86 и ARM и т. д.) основаны на структуре фон Неймана, которая неэффективна не только для хранения и обработки данных, но и для основных арифметических операций (сложение, вычитание, умножение и деление). Логические операции (ИЛИ или НЕ) часто требуют сотни или даже тысячи инструкций, поэтому AlphaGo требует так много чипов (в распределенной версии 1202 процессора и 176 GPU). Чипы, специально разработанные для глубокого обучения, имеют отличительные особенности. Возьмем DianNaoYu в качестве примера. Набор инструкций связан с обработкой информации от крупных нейронов и синапсов. Одна инструкция может завершить обработку информации от одной группы. На современном уровне техники средняя производительность одноядерного процессора более чем в 100 раз превышает возможности центрального процессора. При этом площадь и энергопотребление составляют всего 1/10, а общая производительность может быть улучшена в три раза.

Чипы нейронной сети имеют преимущества перед традиционными процессорами при работе с задачами искусственного интеллекта и подходят для распознавания изображений, речи и т. д. Но такие задачи, как запуск баз данных, работа с программами Office, WeChat, лучше решают традиционные чипы. Если, конечно, сами задачи не подвергнутся структурным изменениям.

Назад: ИИ требует «физиологических» изменений – инновации в инфраструктуре
Дальше: Философия коэволюции нейронных сетей