Q:
Як контейнеризація може бути хорошим вибором для середовища машинного навчання?
A:Деякі компанії рухаються до контейнеризації для проектів машинного навчання, виходячи з деяких переваг, які надають налаштування контейнерів щодо платформ та програмного середовища.
Машинне навчання є складним - самі алгоритми виконують безліч дуже детальних і складних дій над даними. Однак пропозиція значення в чомусь досить проста - алгоритми машинного навчання працюють над даними, що надходять із середовищ зберігання даних.
Безкоштовне завантаження: машинне навчання і чому це важливо |
Використання контейнерів передбачає, як інженери вводять дані в середовище машинного навчання та як працюють алгоритми.
Інженери можуть використовувати віртуалізацію контейнерів або для зберігання даних, або для розгортання коду, який запускає алгоритми. Хоча контейнери можуть бути корисними для даних, головна їх перевага, ймовірно, полягає в їх використанні для створення коду алгоритму.
В архітектурі контейнерів є автономні програми та бази кодів. Кожен контейнер отримує власний клон операційної системи, і він отримує повне робоче середовище для набору функцій програми або коду, що живе всередині нього.
Як результат, окремі додатки, мікросервіси або бази кодів, які є у кожному контейнері, можуть бути розгорнуті дуже універсальними способами. Вони можуть бути розгорнуті на різних платформах та різних середовищах.
Тепер, припустимо, ви намагаєтеся збільшити проект машинного навчання, в якому різні алгоритми повинні ітеративно працювати над різними фрагментами даних. Якщо вам набридло вирішувати проблеми між платформами або проблеми залежностей або ситуації, коли розгортання голого металу утруднене, контейнери можуть бути рішенням.
По суті, контейнери забезпечують спосіб хосту коду. Експерти говорять про розгортання контейнерів проти збережених даних, щоб отримати хороші результати.
"(Програми) можна змішувати і співставляти на будь-якій кількості платформ, практично не потрібно перенесення або тестування", - пише David Linthicum у статті TechBeacon, що пояснює значення контейнерів для проектів машинного навчання, "оскільки вони існують у контейнерах", вони можуть працювати у високо розподіленому середовищі, і ви можете розміщувати ці контейнери близько до даних, які аналізують програми. "
Linthicum продовжує говорити про розкриття послуг машинного навчання як мікросервісів. Це дозволяє зовнішнім програмам - на основі контейнерів чи ні - використовувати ці послуги в будь-який час без необхідності переміщення коду всередині програми.
В самому базовому сенсі розробка контейнерів - це все, щоб зробити функціональність програми машинного навчання більш пристосованою - усунення силосів і непотрібних зв’язків - і знову залежностей - які можуть калічити проект. Що стосується худорлявого, середнього проекту машинного навчання, якщо окремі частини алгоритмів або додатків чи функціональних можливостей розміщуються всередині контейнерів, легко мікрофінансувати ці автономні фрагменти та відповідно створити складні проекти машинного навчання.