От какъв сървър се нуждаете за Машинно обучение?

Table of Contents

Ако сега започвате да се занимавате с “Машинно обучение”, вероятно се чудите, какъв компютър или сървър ви трябва. Ние комбинирахме резултатите от всички тестове направени от Pugetsystems и стигнахме до този кратък отговор “С много видео карти и VRAM”. С по-подробното обяснение може да се запознаете в статията по-долу, но за да сме максимално полезни за възможно най-много хора ще започнем с малко основна информация за Машинното обучение.

Картинка показваща логическия път , който трябва да измине алгоритъмът при машинното обучение.

Опростено обяснение на Машинно обучение

Машинното обучение е звено на компютърната наука, което използва алгоритми, за да имитира начина, по който хората се учат. За целта Машинното обучение трябва да има достъп до голямо количество информация. Например, ако искате да научите алгоритъм да разпознава какво животно има на дадена снимка ще започнете с една снимка и въпроса “Това котка ли е?”, ако отговорът е “Не” то тогава той ще пренебрегне тази снимка, но ако отговорът е “Да” той ще я анализира търсейки различни характеристики, като в същото време им задава цифрова стойност. Алгоритъмът ще продължи да прави това с всички снимки, като през цялото време ще добавя или премахва дадени характеристики и паралелно ще променя и тяхната цифрова стойност. Крайната цел е алгоритъмът да настрой така тези характеристики и техните стойности, че евентуално в бъдеще да може сам да разпознава котките в снимките без да има нужда от намесата на човек.

Пример:
При първата потвърдена снимка с котка алгоритъмът ще забележи, че котките имат четири крака. Занапред той ще търси животни с четири крака. Следващата снимка е на крокодил. Крокодилът също има четири крака, но не е котка – алгоритъмът ще сравни двете снимки и ще види, че котките имат козина, а крокодилът люспи. Затова след тази снимка ще търси животни с четири крака и козина. Следващата снимка е на жираф. Той също има четири крака и козина, но не е котка. Алгоритъмът отново ще сравни двете снимки и ще забележи, че жирафът е много по-висок от котката. Следващата снимка е на куче, то отговаря на всичките зададени изисквания, но отново не е котка. Тогава ще открие, че котките имат вертикални зеници. Затрудняваме го със снимка на котка порода Сфинкс. Алгоритъмът ще я отхвърли, защото няма козина, но тук инженерът ще се намеси и ще я маркира като котка. Следователно алгоритъмът ще намали цифровата стойност на “Има козина” с 50%. Следващата снимка е на тигър. Алгоритъмът ще я отхвърли, защото тигрите имат кръгли зеници – тук отново е необходима човешка намеса – алгоритъмът ще промени цифровите стойности на “има козина” на 66% и “има вертикални зеници” на 66%. Този процес ще продължи и алгоритъмът ще добавя нови характеристики и ще променя стойностите на вече съществуващите. Целта е, евентуално, алгоритъмът да разполага с достатъчно информация, за да си изгради цифров праг, над който да има достатъчно голям процент на успешно идентифициране на котки. И от този момент нататък алгоритъмът няма да има нужда да сравнява новите снимки с всяка една снимка, а просто ще събере всички цифрови стойности на съществуващите характеристики, сравни дали е над този праг и ще може да реши дали е Котка или не. Процесът трябва да се повтори за всяко животно/предмет/продукт, които искаме да разпознава нашия алгоритъм.

Както виждате от примера, крайният резултат ще е един много дълъг списък от въпроси, на които може да се отговори с “Да” или “Не” .
Има ли козина? – Да
Има ли 4 крака? – Да
И т.н.
Колкото по-сложен е вашият алгоритъм, толкова повече въпроси ще има в списъка ви. Добрата новина е, че не трябва да изчакаме отговора на единия въпрос, за да формулираме друг въпрос. Просто трябва да отговорим на всички въпроси, да съберем цифровата стойност на отговорите и да проверим дали е над прага, за да стигнем до заключение. Това ни води до извода, че на колкото повече от тези въпроси можем да отговорим едновременно (паралелно), толкова по-бързо ще получим отговора на основния въпрос. Точно това ще определи необходимия ви хардуер.

Хардуерни изисквания

За да изчислим крайният резултат, можем да използваме процесора или видео картата си. Процесорът е предвиден да решава всевъзможни задачи и затова не е оптимизиран за конкретна задача. Обикновено процесорите имат по-малко на брой ядра, но те работят на по-голяма честота, защото повечето от задачите, които процесорът извършва, трябва да се изпълнят последователно. За разлика от него, видео картата е предвидена да се занимава с вектори и то много от тях. Всяка промяна на пиксел трябва да бъде изчислена и при това всички пиксели трябва да се променят едновременно, затова видео картите имат много на брой, но по-малки ядра, защото те трябва да изпълнят много малки задачи едновременно, което ги прави много подходящи за нашите цели.

Процесор

В случая процесорът няма кой знае какво значение, освен, ако нямате специално оптимизиран алгоритъм за процесори. По-голямата част от хората, занимаващи се с Машинно обучение, не използват компютрите, на които обучават алгоритмите си за други дейности. Тук може да спестите малко пари, но не прекалявайте, защото процесорът ви определя колко PCIe писти (lanes) имате и какво ще е тяхното поколение. Важно е да прецените какви видео карти ще използвате и на база това да изберете процесора, като следите той да има необходимите на брой и правилно поколение PCIe lanes. Това е необходимо, за да не забавяте трансфера на информация от вашия диск към VRAM-а на вашата видео карта.

Видео карта

Видеокартата е най-важната част, защото реално тя извършва всички изчисления. За Машинно обучение се нуждаете от възможно най-много ядра, работещи на възможно най-бързата скорост, както и възможно най-много VRAM. Защо? Колкото повече ядра имате, на толкова повече въпроси ще можете да отговорите едновременно. А колкото по-бързо те работят, толкова повече цикъла ще можете да изпълните. Но, защо ви трябва толкова много VRAM? Защото, за да работи алгоритъмът, трябва да сравни всяка снимка с другите снимки, но ако всеки път ги вземаме от диска (storage) това отнема много време, затова е много по-добре да ги “складираме” във VRAM-а на видеокартата ни, която е значително по-бърза и значително по-близо от диска ви. Или с други думи, колкото повече VRAM имате, толкова повече снимки ще са на разположение за бързо сравнение.

Дисково пространство (Storage)

Тук ви е необходимо възможно най-бързото дисково пространство, за предпочитане NVMe. Защо? Първо ви е необходимо, за да прехвърлите цялата информация във VRAM-a на вашата видео карта. Но, ако тя няма достатъчно VRAM, то този процес ще се повтори няколко пъти. Освен това, понякога се случва да имате нужда от някоя произволна информация от диска и тя трябва да са изтегли възможно най-бързо, за да не бави останалата част от процеса. Представете си, че вашата видео карта може да обработи 500МБ в секунда, но Вие все още използвате HDD със скорост на трансфер 100МБ на секунда, току що загубихте 4/5 -ти от производителността си.

Дънна платка

Изборът на дънна платка се свежда до това дали е подходяща за процесора, който сте избрали, колко PCIe lanes има и какво поколение са те. Това, с което можем да ви помогнем тук, е да ви предложим един от нашите специално разработени райзъри (удължители), с които, ако вашата дънна платка поддържа бифуркация (Bifurcation), да разделите един PCIe x16 слот на 4х4 или 2х8, което ще ви позволи да добавите повече видео карти или дискове.

Захранване (PSU)

Захранването зависи от частите, които изберете, но е добра идея да имате две (redundant) захранвания, за да може, ако едното се развали, да не загубите прогреса си.

Заключение

Бихме могли да добавим специфични части в тази статия, но списъкът бързо ще стане неактуален. Плюс това той винаги ще включва топ продуктите на Nvidia, AMD и Intel, защото според статистиката те са най-добрите, но такъв списък няма да помогне по никакъв начин на хората на бюджет. Ние избрахме да ви обясним с какво всяка част допринася към процеса и да ви оставим да изберете каква е най-добрата комбинация за вашия бюджет.
МaxCloudON може да ви предостави алтернатива на това вие сами да си закупите сървър, а именно да наемете един от нашите GPU сървъри за Машинно обучение. Ние предлагаме различни варианти, както за начинаещи така и за напреднали. Плюс това, ако желаете, можете да ги наемете за седмица и да тествате дали са подходящи за вас.

Share this article:

Facebook
Twitter
LinkedIn
Reddit
Scroll to Top