Почему графический процессор необходим для обучения искусственному интеллекту

Благодаря буму искусственного интеллекта, вызванному ChatGPT, графические процессоры стали краеугольным камнем платформ обучения больших моделей искусственного интеллекта и, можно даже сказать, решающей арифметической базой. Чтобы ответить на вопрос, зачем графический процессор необходим для обучения ИИ, важно понимать основные технологии искусственного интеллекта (ИИ) и глубокого обучения.

Искусственный интеллект и глубокое обучение

Искусственный интеллект — дисциплина с долгой историей. С 1950-х годов оно исследовалось в различных технологических направлениях, переживая несколько пиков и спадов. Первые дни искусственного интеллекта породили несколько неудачный жанр, известный как «искусственные нейронные сети». Идея, лежащая в основе этой технологии, заключалась в том, что интеллект человеческого мозга не имеет себе равных, и для достижения продвинутого искусственного интеллекта ключевым моментом является имитация человеческого мозга. Человеческий мозг состоит из миллиардов нейронов, соединенных между собой в обширную и сложную нейронную сеть. Мозг ребенка подобен чистому листу, который благодаря послеродовому обучению может достичь высокого уровня интеллекта.

Биологические нейроны в Искусственные нейроны

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

искусственная нейронная сеть

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

Такие искусственные нейронные сети подобны мозгу ребенка – пустому и нуждающемуся в существенной подпитке данными, чтобы всесторонне учиться и приобретать знания для практического решения проблем. Этот процесс известен как «глубокое обучение» и подпадает под подмножество «машинного обучения».

изучение

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

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

Процесс обучения нейронной сети

Этот процесс обучения называется обучением. Как правило, предоставление ИИ большого объема данных с известными правильными ответами приводит к лучшим результатам обучения. Как только мы будем удовлетворены обучением, мы сможем проверить производительность ИИ на неизвестных проблемах. Если ИИ сможет точно найти ответы, мы считаем обучение успешным и ИИ продемонстрировал хорошие способности к «обобщению».

Простая нейронная сеть

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

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

ЦП против графического процессора

ЦП (центральный процессор) — это мозг компьютера, ядро ​​ядра. В основном он состоит из арифметико-логического устройства (АЛУ) для выполнения вычислений и блока управления (CU) для управления потоком данных и инструкций.

ЦП

Когда данные поступают, они сначала сохраняются в памяти. Затем блок управления извлекает соответствующие данные из памяти и передает их в АЛУ для обработки. После завершения вычислений результат сохраняется обратно в памяти.

Раньше ЦП имел один набор ALU, CU и кэша и мог обрабатывать только одну задачу за раз. Чтобы обрабатывать несколько задач, ЦП должен был бы поставить их в очередь и выполнять последовательно, разделяя ресурсы.

справляться с несколькими задачами

Позже несколько наборов ALU, CU и кэша были интегрированы в один чип, создав многоядерный процессор. Многоядерные процессоры обладают возможностями настоящей параллельной обработки.

Многоядерные процессоры

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

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

GPU, эксперт по параллельным вычислениям

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

Блок обработки графики

Термин «графический процессор» приобрел популярность в 1999 году с выпуском Nvidia GeForce256, продукта, который одновременно обрабатывает каждую точку пикселя, выполняя математически интенсивные параллельные вычисления, такие как графические преобразования, освещение и обрезка треугольников для рендеринга изображения.

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

разница между процессором и графическим процессором

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

Графические процессоры могут работать в многозадачном режиме

Со временем графические процессоры стали более универсальными и программируемыми, расширив свою функциональность за пределы рендеринга изображений для ускорения высокопроизводительных вычислений, глубокого обучения и других рабочих нагрузок. Воспользовавшись возможностью, предоставленной ростом спроса на параллельные вычисления, вызванным искусственным интеллектом, графические процессоры перешли от своей прежней периферийной роли к центральному месту, став очень востребованными. Термин «GPU» трансформировался в GPGPU, обозначающий GPU общего назначения. Использование присущего ИИ-обучению графических процессоров параллелизма значительно повышает скорость по сравнению с обучением исключительно с использованием ЦП, что делает их предпочтительной платформой для обучения крупномасштабных и сложных систем на основе нейронных сетей. Параллельная природа операций вывода хорошо согласуется с выполнением на графических процессорах. Следовательно, вычислительная мощность, обеспечиваемая графическими процессорами в качестве основной силы, называется «интеллектуальными вычислениями».

Оставьте комментарий

Наверх