Няколко глобални сектора започват да инвестират по-съществено в машинно обучение (ML).
ML моделите могат първоначално да бъдат стартирани и управлявани от екипи от специалисти, но една от най-големите пречки е прехвърлянето на натрупаните знания към следващия модел, така че процесите да могат да бъдат разширени.
За подобряване и стандартизиране на процесите, включени в управлението на жизнения цикъл на модела, техниките MLOps се използват все повече от екипите, които създават модели за машинно обучение.
Продължете да четете, за да научите повече за някои от най-добрите MLOps инструменти и платформи, налични днес, и как те могат да направят машинното обучение по-лесно от гледна точка на инструменти, програмисти и процедури.
Какво е MLOps?
Техника за създаване на политики, норми и най-добри практики за модели на машинно обучение е известна като „операции за машинно обучение“ или „MLOps“.
MLOps има за цел да гарантира, че целият жизнен цикъл на разработката на ML — от концепцията до внедряването — е щателно документиран и управляван за най-добри резултати, вместо да се инвестира много време и ресурси в него без стратегия.
Целта на MLOps е да кодифицира най-добрите практики по начин, който прави разработката на машинно обучение по-мащабируема за ML оператори и разработчици, както и да подобри качеството и сигурността на ML моделите.
Някои наричат MLOps „DevOps за машинно обучение“, тъй като той успешно прилага принципите на DevOps в по-специализирана област на технологично развитие.
Това е полезен начин да мислите за MLOps, защото, подобно на DevOps, той набляга на споделянето на знания, сътрудничеството и най-добрите практики между екипи и инструменти.
MLOps предоставя на разработчиците, специалистите по данни и оперативните екипи рамка за сътрудничество и, като резултат, създаване на най-мощните ML модели.
Защо да използвате MLOps инструменти?
MLOps инструментите могат да изпълняват широк набор от задължения за ML екип, но те често се разделят на две групи: администриране на платформа и управление на отделни компоненти.
Докато някои MLOps продукти се фокусират само върху една основна функция, като управление на данни или метаданни, други инструменти приемат по-всеобхватна стратегия и предоставят MLOps платформа за контрол на няколко аспекта от жизнения цикъл на ML.
Потърсете MLOps решения, които помагат на вашия екип в управлението на тези области за разработка на ML, независимо дали търсите специалист или по-широк инструмент:
- Обработка на данни
- Проектиране и моделиране
- Управление на проекти и работно място
- Внедряване на ML модел и непрекъсната поддръжка
- Управление на жизнения цикъл от началото до края, което обикновено се предлага от MLOps платформи с пълна услуга.
MLOps инструменти
1. MLFlow
Жизненият цикъл на машинно обучение се контролира от платформата с отворен код MLflow и включва централна регистрация на модела, внедряване и експериментиране.
MLflow може да се използва от екип от всякакъв размер, както индивидуално, така и колективно. Библиотеките нямат отношение към инструмента.
Всеки език за програмиране и библиотека за машинно обучение може да го използва.
За да улесни обучението, внедряването и управлението на приложения за машинно обучение, MLFlow взаимодейства с редица рамки за машинно обучение, включително TensorFlow и Pytorch.
Освен това MLflow предоставя лесни за използване API, които могат да бъдат включени във всички съществуващи програми или библиотеки за машинно обучение.
MLflow има четири ключови функции, които улесняват проследяването и планирането на експерименти:
- MLflow Tracking – API и потребителски интерфейс за регистриране на параметри, версии, показатели и артефакти на код за машинно обучение, както и за последващо показване и контрастиране на резултатите
- MLflow Projects – опаковане на код за машинно обучение в многократно използваем, възпроизводим формат за прехвърляне към производство или споделяне с други специалисти по данни
- Модели на MLflow – поддържане и внедряване на модели в редица системи за обслужване на модели и изводи от различни ML библиотеки
- MLflow Model Registry – централно хранилище на модели, което позволява кооперативно управление на целия жизнен цикъл на MLflow модел, включително версии на модела, етапни преходи и анотации.
2. KubeFlow
Кутията с инструменти за ML за Kubernetes се нарича Kubeflow. Опаковане и управление на Docker контейнери, помощ при поддръжката на системи за машинно обучение.
Чрез опростяване на оркестрацията на изпълнението и внедряването на работни потоци за машинно обучение, той насърчава скалируемостта на моделите за машинно обучение.
Това е проект с отворен код, който включва внимателно подбрана група от допълващи се инструменти и рамки, съобразени с различни нужди на машинното обучение.
Дълги задачи за обучение по ML, ръчно експериментиране, повторяемост и DevOps предизвикателства могат да се справят с Kubeflow Pipelines.
За няколко етапа на машинно обучение, включително обучение, разработване на тръбопроводи и поддръжка на Тетрадки Юпитер, Kubeflow предлага специализирани услуги и интеграция.
Това улеснява управлението и проследяването на живота на вашите работни натоварвания с изкуствен интелект, както и внедряването на модели за машинно обучение (ML) и тръбопроводи за данни в клъстери на Kubernetes.
То предлага:
- Бележници за използване на SDK за взаимодействие със системата
- потребителски интерфейс (UI) за контролиране и наблюдение на изпълнения, задачи и експерименти
- За бързо проектиране на решения от край до край, без да се налага да изграждате отново всеки път и да използвате повторно компоненти и тръбопроводи.
- Като ключов компонент на Kubeflow или като самостоятелна инсталация се предлагат Kubeflow Pipelines.
3. Контрол на версиите на данните
Решение за контрол на версиите с отворен код за проекти за машинно обучение се нарича DVC или Data Version Control.
Какъвто и език да изберете, това е експериментален инструмент, който помага при дефинирането на конвейер.
DVC използва код, версии на данни и възпроизводимост, за да ви помогне да спестите време, когато откриете проблем с по-ранна версия на вашия ML модел.
Освен това можете да използвате DVC тръбопроводи, за да обучите вашия модел и да го разпространите на членовете на вашия екип. Организацията на големи данни и версиите могат да се обработват от DVC и данните могат да се съхраняват по лесно достъпен начин.
Въпреки че включва някои (ограничени) функции за проследяване на експерименти, той се фокусира най-вече върху версиите и управлението на данни и канали.
То предлага:
- Той е агностик за съхранение, следователно е възможно да се използват различни видове съхранение.
- Предоставя и статистика за проследяване.
- предварително изградено средство за свързване на етапи на ML в DAG и изпълнение на целия конвейер от началото до края
- Цялото развитие на всеки ML модел може да бъде проследено, като се използва целият му код и произход на данните.
- Възпроизводимост чрез вярно запазване на първоначалната конфигурация, входните данни и програмния код за експеримент.
4. Пахидерм
Pachyderm е програма за контрол на версиите за машинно обучение и наука за данни, подобна на DVC.
Освен това, тъй като е създаден с помощта на Docker и Kubernetes, той може да изпълнява и внедрява приложения за машинно обучение на всяка облачна платформа.
Pachyderm дава гаранции, че всяка част от данните, която се използва в модел за машинно обучение, може да бъде проследена обратно и версия.
Използва се за създаване, разпространение, управление и наблюдение на модели за машинно обучение. Включени са регистър на модела, система за управление на модела и кутия с инструменти за CLI.
Разработчиците могат да автоматизират и разширят своя жизнен цикъл на машинно обучение, като използват базата за данни на Pachyderm, която също така гарантира повторяемост.
Той поддържа строги стандарти за управление на данни, намалява разходите за обработка и съхранение на данни и помага на бизнеса да пусне своите инициативи за наука за данни на пазара по-бързо.
5. Полиаксон
Използвайки платформата Polyaxon, проектите за машинно обучение и приложенията за дълбоко обучение могат да бъдат копирани и управлявани през целия им жизнен цикъл.
Polyaxon може да хоства и администрира инструмента и може да бъде поставен във всеки център за данни или облачен доставчик. Като Torch, Tensorflow и MXNet, които поддържат всички най-популярни рамки за дълбоко обучение.
Що се отнася до оркестрацията, Polyaxon ви позволява да извлечете максимума от вашия клъстер чрез планиране на задачи и тестове чрез техния CLI, табло за управление, SDK или REST API.
То предлага:
- Можете да използвате версията с отворен код точно сега, но тя включва и възможности за избор за корпорацията.
- Въпреки че обхваща пълния жизнен цикъл, включително оркестрация на изпълнение, той е способен на много повече.
- С технически справочни документи, насоки за започване на работа, учебни материали, ръководства, уроци, журнали за промени и други, това е много добре документирана платформа.
- С таблото за управление на данни за експеримента е възможно да наблюдавате, проследявате и оценявате всеки експеримент за оптимизация.
6. комета
Comet е платформа за мета машинно обучение, която проследява, контрастира, обяснява и подобрява експерименти и модели.
Всички ваши експерименти могат да се видят и сравнят на едно място.
Той функционира за всяка задача за машинно обучение, навсякъде, където се изпълнява вашият код и с всяка библиотека за машинно обучение.
Comet е подходящ за групи, индивиди, академични институции, фирми и всеки друг, който желае бързо да визуализира експерименти, да рационализира работата и да провежда експерименти.
Учените по данни и екипите могат да проследяват, изясняват, подобряват и сравняват експерименти и модели, използвайки самостоятелно хостваната и базирана в облак платформа за мета-машинно обучение Comet.
То предлага:
- Съществуват много възможности за членовете на екипа да споделят задачи.
- Той има няколко интеграции, които улесняват свързването му с други технологии
- Функционира добре с текущите ML библиотеки
- Грижи се за управлението на потребителите
- Сравнението на експериментите е разрешено, включително сравнение на код, хиперпараметри, показатели, прогнози, зависимости и системни показатели.
- Осигурява отделни модули за визуализация, аудио, текст и таблични данни, които ви позволяват да визуализирате проби.
7. Оптуна
Optuna е система за автономна оптимизация на хиперпараметри, която може да се прилага както за машинно обучение, така и за дълбоко обучение, както и в други области.
Той съдържа разнообразие от авангардни алгоритми, от които можете да избирате (или свързвате), прави много лесно разпределянето на обучението на множество компютри и предлага атрактивна визуализация на резултатите.
Популярни библиотеки за машинно обучение като PyTorch, TensorFlow, Keras, FastAI, sci-kit-learn, LightGBM и XGBoost са интегрирани с него.
Той предоставя авангардни алгоритми, които позволяват на клиентите да получават резултати по-бързо чрез бързо намаляване на пробите, които не изглеждат обещаващи.
Използвайки базирани на Python алгоритми, той автоматично търси идеалните хиперпараметри. Optuna насърчава паралелно търсене на хиперпараметър в много нишки, без да променя оригиналния код.
То предлага:
- Поддържа разпределено обучение на клъстер, както и на един компютър (мултипроцес) (мулти възел)
- Поддържа няколко техники за изрязване за ускоряване на конвергенцията (и използване на по-малко изчисления)
- Има разнообразие от мощни визуализации, като диаграма на срез, контурна диаграма и паралелни координати.
8. Кедро
Kedro е безплатна рамка на Python за писане на код, който може да се актуализира и поддържа за проекти за наука за данни.
Той носи идеи от най-добрите практики в софтуерното инженерство до кода за машинно обучение. Python е в основата на този инструмент за оркестрация на работния процес.
За да направите вашите ML процеси по-прости и по-прецизни, можете да разработите възпроизводими, поддържаеми и модулни работни процеси.
Kedro включва принципи на софтуерно инженерство като модулност, разделяне на отговорностите и създаване на версии в среда за машинно обучение.
Въз основа на Cookiecutter Data Science, той предоставя обща, адаптивна рамка на проекта.
Редица прости конектори за данни, използвани за съхраняване и зареждане на данни в няколко файлови системи и файлови формати, се управляват от каталога с данни. Това прави проектите за машинно обучение по-ефективни и улеснява изграждането на тръбопровод за данни.
То предлага:
- Kedro позволява разпръснато или самостоятелно разполагане на машина.
- Можете да автоматизирате зависимостите между кода на Python и визуализацията на работния поток, като използвате абстракция на конвейер.
- Чрез използването на модулен, многократно използваем код, тази технология улеснява екипното сътрудничество на различни нива и подобрява производителността в средата за кодиране.
- Основната цел е да се преодолеят недостатъците на преносимите компютри Jupyter, еднократните скриптове и лепилния код чрез писане на поддържано програмиране за наука за данни.
9. BentoML
Изграждането на крайни точки на API за машинно обучение е улеснено с BentoML.
Той предоставя типична, но кондензирана инфраструктура за преместване на научени модели за машинно обучение в производство.
Тя ви позволява да пакетирате научени модели за използване в производствена среда, като ги интерпретирате с помощта на всяка ML рамка. Поддържат се както офлайн пакетно обслужване, така и онлайн API обслужване.
Високопроизводителен модел сървър и гъвкав работен процес са характеристиките на BentoML.
Освен това сървърът предлага адаптивно микропакетиране. Единен подход за организиране на модели и проследяване на процедурите за внедряване се осигурява от таблото за управление на потребителския интерфейс.
Няма да има престой на сървъра, тъй като операционният механизъм е модулен и конфигурацията може да се използва повторно. Това е гъвкава платформа за предоставяне, организиране и внедряване на ML модели.
То предлага:
- Има модулен дизайн, който е адаптивен.
- Той позволява внедряване в няколко платформи.
- Не може автоматично да обработва хоризонтално мащабиране.
- Той позволява един формат на модела, управление на модела, опаковане на модела и обслужване на модел с висока производителност.
10. Селдън
Учените по данни могат да създават, внедряват и управляват модели за машинно обучение и експерименти в мащаб на Kubernetes, използвайки рамката Seldon Core с отворен код.
TensorFlow, sci-kit-learn, Spark, R, Java и H2O са само някои от инструментариумите, които се поддържат от него.
Той също така взаимодейства с Kubeflow и OpenShift на RedHat. Ядрото Seldon трансформира модели за машинно обучение (ML модели) или езикови обвивки (езици като Python, Java и др.) в производствени REST/GRPC микроуслуги.
Един от най-добрите MLOps инструменти за подобряване на процесите на машинно обучение е този.
Лесно е да контейнеризирате ML модели и да тествате за използваемост и сигурност с помощта на Seldon Core.
То предлага:
- Внедряването на модела може да бъде опростено с няколко алтернативи, като например внедряване на Canary.
- За да разберете защо са направени конкретни прогнози, използвайте обяснения на модела.
- Когато възникнат проблеми, следете производствените модели, като използвате системата за предупреждение.
Заключение
MLO могат да помогнат за подобряване на операциите за машинно обучение. MLOps може да ускори внедряването, да улесни събирането на данни и отстраняването на грешки и да подобри сътрудничеството между инженери и специалисти по данни.
За да можете да изберете MLOps инструмента, който най-добре отговаря на вашите нужди, тази публикация разгледа 10 популярни MLOps решения, повечето от които са с отворен код.
Оставете коментар