Машинное обучение на ПК: руководство по выбору комплектующих

Россия+7 (910) 990-43-11
Обновлено: 2024-11-09

Машинное обучение (Machine Learning) – вполне возможно, что это самое модное слово 21-го века, которое способно привести нас в футуристический мир, о котором мы все мечтаем.

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

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

7 важных шагов машинного обучения

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

Однако, для этого нам нужно сначала прояснить некоторые вещи.

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

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

Итак, разобравшись с этим, давайте приступим.

Понимание библиотек машинного обучения и вариантов использования

Библиотеки машинного обучения

Машинное обучение использовалось для улучшения нашей жизни многими способами.

Распознавание изображений (Face ID), распознавание речи (Google), рекомендательные системы (YouTube, Netflix, TikTok), обнаружение мошенничества (спам-фильтры), виртуальные помощники (Алиса), автоматический языковой перевод, медицинская диагностика и многое другое зависит от его работы.

И все эти системы широко используют вещи, называемые библиотеками машинного обучения.

Различные библиотеки машинного обучения, такие как PyTorch, Keras, Scikit-Learn, OpenCV, NumPy и т.д., имеют разные цели и варианты использования, поэтому требования к оборудованию для каждой библиотеки отличаются друг от друга.

  • PyTorch, например, посвящен компьютерному зрению и обработке естественного языка.
  • Такие библиотеки, как Keras и Tensorflow, фокусируются на искусственных и глубоких нейронных сетях.
  • Scikit-Learn фокусируется на прогнозном анализе данных, а OpenCV используется для приложений компьютерного зрения в реальном времени и так далее.

Из-за разных вариантов использования всех этих библиотек довольно сложно выбрать компоненты ПК, но одним из наиболее важных компонентов, когда речь идёт о рабочих нагрузках машинного обучения, независимо от того, что вы делаете, является графическая карта (GPU).

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

Разница между архитектурой центрального процессора и графического процессора

Некоторые библиотеки машинного обучения, такие как OpenCV, могут использовать возможности CUDA графических процессоров Nvidia для выполнения определенных операций со скоростью, в 12-30 раз превышающей скорость ЦП.

Однако это не означает, что всё, что вам нужно, это хороший графический процессор.

Хорошие ЦП невероятно важны и для некоторых библиотек машинного обучения, но, как мы видим, когда дело доходит до машинного обучения, GPU является королем – точнее, тензорные процессоры (TPU) являются королем, но мы доберемся до этого.

Варианты использования машинного обучения

В машинном обучении используются два основных метода, которые называются обучением с учителем и обучением без учителя.

Контролируемое и неконтролируемое машинное обучение

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

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

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

Подумайте о 3D-программе, в которой создаются человеческие персонажи. У этих персонажей нет какой-либо врожденной логики передвижения, но они могут сокращать и расслаблять мышцы, как это может делать настоящий человек. Затем вы создаете ИИ, цель которого – сделать так, чтобы человеческие персонажи шли из точки А в точку Б, используя свои мышцы.

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

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

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

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

Лучшее аппаратное обеспечение ПК для машинного обучения

Теперь мы перейдём к тому, ради чего вы здесь. Сборка ПК для машинного обучения.

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

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

Лучший процессор для машинного обучения

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

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

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

Рекомендации по ЦП:

  • Лучший по производительностиAMD Ryzen Threadripper 3960X: с 24 ядрами и 48 потоками этот Threadripper отличается улучшенной энергоэффективностью, исключительным охлаждением и вычислительными возможностями.
  • Оптимальная ценаIntel Core i7-12700K: в сочетании с 12 ядрами и 20 потоками вы получаете высокую производительность и скорость вычислений.
  • Бюджетный выборIntel Core i5-12600K: в сочетании с 10 ядрами и 16 потоками вы получаете отличный процессор по отличной цене.

Лучшие графические процессоры для машинного обучения

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

В зависимости от используемой библиотеки – CUDA или OpenCL – эффективность графического процессора может отличаться. Графические карты Nvidia обычно являются лучшим выбором для библиотек машинного обучения с поддержкой CUDA, а карты AMD лучше подходят для библиотек, поддерживающих OpenCL или не поддерживающих CUDA.

Поскольку большинство библиотек, таких как PyTorch, Tensorflow, OpenCV и Keras, предпочитают Nvidia гораздо больше, чем AMD, мы будем рассматривать только предложения Nvidia.

Рекомендации по GPU для машинного обучения:

  • ПроизводительностьGeForce RTX 3090 Super: этот абсолютный зверь графического мира основан на архитектуре Nvidia Ampere (2-го поколения) и обладает высокой производительностью кодирования и вычислений, а также 24 ГБ оперативной памяти GDDR6X. Он проглотит всё, что вы ему бросите.
  • Оптимальная ценаGeForce RTX 3060. Основанная на той же архитектуре, что и RTX 3090, RTX 3060 – отличная видеокарта с ядрами RT и Tensor, обеспечивающая отличную производительность и эффективность обучения.
  • Бюджетный выборGeForce GTX 1060: GTX 1060 по-прежнему является респектабельным графическим процессором, когда речь идёт о большинстве задач, однако я бы не ожидал многого, когда речь идёт о моделях глубокого обучения с большими параметрами или нейронных сетях.

Учитывая все обстоятельства, я бы порекомендовал вам сэкономить и купить RTX 3060. Конечно, если вы используете её для собственной рабочей станции / ПК.

Что такое TPU

Ранее я упоминал TPU, так что давайте разберёмся, что они из себя представляют.

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

TPU представляют собой специализированные интегральные схемы (ASIC) с ускорением ИИ, созданные для приложений машинного обучения. Тем не менее, TPU – это специализированное оборудование, которое вы не можете получить как физическое лицо.

Хотя вы можете арендовать TPU через Google Cloud.

Таким образом, из-за этого TPU не имеют отношения к нашим рекомендациям.

Лучшая оперативная память для машинного обучения

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

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

Объём оперативной памяти также имеет значение. Если у вас ограниченный бюджет, обычно достаточно 16 ГБ ОЗУ. Тем не менее, я бы порекомендовал 32 ГБ или выше, так как в наши дни довольно легко проглотить 16 ГБ ОЗУ, а разница в цене не так уж велика.

Рекомендации по оперативной памяти:

  • Лучшая производительностьCorsair Vengeance LPX 32 ГБ (2 x 16 ГБ), 3600 МГц DDR4 C18
  • Оптимальная ценаCrucial Ballistix 16 ГБ (2 x 8 ГБ), 3000 МГц DDR4 CL15

Лучшее хранилище для машинного обучения

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

Во время обучения некоторые из ваших наборов данных будут находиться на жестком диске, и к ним потребуется доступ. Достаточно быстрый и достаточно большой справиться с любыми объёмами.

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

Для небольших битовых данных будет достаточно диска HDD. Однако, для больших 32-разрядных наборов данных потребуется накопитель SSD/NVMe, поскольку скорость механического диска будет слишком низкой, чтобы успевать за выводом данных.

Учитывая, насколько «дешёвыми» стали твердотельные накопители за эти годы, если вам нужно объёмное хранилище с достаточно разумными скоростями, твердотельный накопитель – очевидный вариант.

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

Хотя в наши дни NVM лишь незначительно дороже, чем SSD, поэтому я рекомендую проверить оба, чтобы увидеть, какой из них лучше соответствует вашему бюджету.

Если разница между диском NVMe на 1 ТБ и твердотельным накопителем на 1 ТБ составляет пару тысяч рублей, просто возьмите диск NVMe.

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

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

Рекомендации по хранилищам для машинного обучения:

  • ПроизводительностьSamsung 980 Pro 1 ТБ NVMe Gen 4 SSD
  • Оптимальная ценаSamsung 980 1 ТБ NVMe Gen 3
  • Бюджетный выборCrucial MX500 500 ГБ

Лучшая материнская плата для машинного обучения

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

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

Но, всё же есть определенные аспекты, на которые следует обратить внимание независимо от типа процессора, с которым вы работаете. Такие вещи, как слоты PCIe, слоты RAM и возможности ввода-вывода.

Рекомендации по материнской плате:

  • ПроизводительностьASRock TRX40 Creator – лучшая материнская плата для AMD Threadrippers.
  • ПроизводительностьGigabyte Z690 AORUS MASTER – лучшая материнская плата для процессоров Intel Alder Lake.
  • Бюджетный выборGigabyte Z690 UD – лучшая материнская плата для бюджетных процессоров Intel Alder Lake.

Лучшие блоки питания для машинного обучения

Блок питания довольно легко выбрать по сравнению с остальной частью ПК.

Просто рассчитайте общие требования к мощности вашего ПК, а затем выберите – как минимум – блок питания 80+ gold, который может обеспечить мощность на 100-250 Вт больше, чем общая потребность вашего ПК, чтобы гарантировать, что любые скачки мощности не выключат ПК.

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

Блок питания часто переходит из сборки в сборку, поэтому что-то качественно сделанное прослужит вам годы.

Рекомендации по блоку питания:

  • 750 Вт: Seasonic PRIME GX-750
  • 850 Вт: Seasonic PRIME GX-850
  • 1000 Вт: Seasonic PRIME GX-1000

Лучший корпус сборки для машинного обучения

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

Просто убедитесь, что в нём достаточно места для всего, что вы хотите в него положить, и что он имеет хорошую вентиляцию.

Рекомендации по корпусам:

Почему нет оборудования профессионального уровня?

В этой статье мы сосредоточились на персональной рабочей станции машинного обучения для людей с умеренным бюджетом.

Существует также возможность использовать аппаратное обеспечение профессионального уровня. Например, процессоры Threadripper Pro, процессоры Intel Xeon или AMD Radeon Pro, а также графические процессоры Nvidia Tesla и Titan. Хотя такое оборудование намного лучше для конкретных задач машинного обучения, оно также непропорционально дороже и может значительно превысить ваш бюджет, если вы только начинаете заниматься машинным обучением.

Сборка для машинного обучения – что в итоге

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

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

Вам будет намного легче, когда вы знаете специфику того, что ищете, в отличие от ПК для всего – машинное обучение немного шире.


5.0/9

Аватар drevoteh
2023-02-11 в 13:08
0
Отличная статья! Можно ли найти аналоги в алиэкспресс и насколько это рациональное ?