Компанія JFrog оголосила про нову інтеграцію з Amazon SageMaker! SageMaker допомагає компаніям створювати, навчати та розгортати моделі машинного навчання (ML) для будь-яких випадків використання з повністю керованою інфраструктурою, інструментами та робочими процесами. Завдяки спільному використанню JFrog Artifactory та Amazon SageMaker моделі ML можна постачати разом із усіма іншими компонентами розробки програмного забезпечення в сучасному робочому процесі DevSecOps, що робить кожну модель незмінною, відстежуваною, безпечною та перевіреною, коли вона дозріває до випуску.
Що таке Artifactory?
JFrog Artifactory — це єдине рішення для розміщення та керування всіма артефактами, двійковими файлами, пакетами, іншими файлами, контейнерами та компонентами для використання в усьому ланцюжку постачання програмного забезпечення. Це більше, ніж просто управління запасами — Artifactory забезпечує складний контроль доступу до збережених ресурсів, корпоративну масштабованість із підтримкою зрілої архітектури високої доступності та велику кількість інструментів автоматизації для підтримки життєвого циклу розробки програмного забезпечення (SDLC). Це лише частина платформи JFrog Software Supply Chain Platform, комплексного набору інструментів для DevSecOps, який включає інструменти для забезпечення безпеки, відстеження та ефективної доставки компонентів програмного забезпечення для середовищ розробки та виробництва.
Що таке SageMaker?
Amazon SageMaker — це повністю керована служба, яка об’єднує широкий набір інструментів для забезпечення високопродуктивного та недорогого машинного навчання (ML) для будь-яких випадків використання. За допомогою SageMaker ви можете створювати, навчати та розгортати моделі ML у масштабі, використовуючи такі інструменти, як блокноти, налагоджувачі, профайлери, конвеєри, MLOps тощо – усе в одному інтегрованому середовищі розробки (IDE).
Середовища, які використовуються для підтримки життєвих циклів штучного інтелекту (AI) і машинного навчання (ML), залежать від таких елементів, як зрілість організації, існуючі процеси та відповідні ресурси, а також переваги інструментів і знання для використання наявних наборів навичок. Часто це означає розробку систем, які складаються з кількох компонентів, щоб забезпечити необхідну гнучкість, а також відповідати конкретним потребам і вимогам команд розробників, інфраструктури та безпеки.
Враховуючи фокус SageMaker на покращенні життєвого циклу розробки AI/ML, а також гнучкість і зрілість Artifactory для захисту та керування бінарними файлами програмного забезпечення, інтеграція цих двох потужних рішень є прагматичним підходом до будь-якої розробки AI/ML.
Чому потрібен Artifactory для розробки AI/ML?
Моделі — це великі складні двійкові файли, що складаються з кількох частин — і, як і для інших поширених програмних компонентів і артефактів, Artifactory — ідеальне місце для розміщення, керування, відстеження та захисту моделей.
Дуже важливо розуміти, що входить у розробку AI/ML. Так само, як і в інших видах розробки програмного забезпечення, програмні пакети сторонніх виробників часто використовуються для прискорення розробки, уникаючи написання великої кількості коду з нуля. Ці пакети складають початкові будівельні блоки багатьох програм і фреймворків. Сторонні ресурси можуть надходити в середовища розробки різними способами: з попередньо встановлених пакетів або фреймворків, через загальнодоступні сховища, такі як PyPI, Docker Hub і Hugging Face, або з приватних сховищ, що містять власний код або інші артефакти, які потребують автентифікації.
Перелік залежностей, на які покладається ваш проект, може з часом зростати та змінюватися, і ефективне керування ними передбачає більше, ніж знання першого рівня залежностей, які часто постають у формі операторів імпорту у вашому коді. А як щодо залежностей цих залежностей? А як щодо версій усіх цих залежностей? Відстеження цих елементів є обов’язковим як для стабільності, так і для надійності проектів розробки програмного забезпечення, включаючи проекти AI/ML.
Розглянемо такі сценарії:
- Останню версію загальнодоступного пакета Python, на який ви покладаєтеся, було імпортовано у ваш проект, але одну з його залежностей було змінено таким чином, що це несумісно з вашим поточним кодом, через що нова розробка призупиняється. На жаль, ваші розробники завжди завантажували останню версію, а остання робоча версія небезпечної залежності недоступна з оригінального джерела. Як ви будете виходити з цього стану?
- В образі Docker, який ви регулярно використовуєте для запуску моделі ML, виявлено вразливість системи безпеки. На жаль, вразливість була в старій версії базового образу, отриманого з Docker Hub, і хоча це був відомий CVE, її не було виявлено, доки її не використали у вашій робочій системі. Чи можна було цьому запобігти?
- Виявлено, що модель ML ліцензовано таким чином, що забороняє поточне використання вашою організацією. На щастя, це було виявлено ще до того, як було випущено у виробництво. На жаль, велика частина бази коду покладається на функціональні можливості цієї моделі. Скільки часу знадобиться, щоб знайти альтернативу та потенційно переписати відповідний код?
Будь-який із цих сценаріїв може вплинути на ваш виробничий процес. Практичне управління інвентаризацією всіх артефактів, які використовувалися та вироблялися під час процесів розробки AI/ML, допоможе у відновленні та зменшить час простою. Система керування артефактами корпоративного рівня, така як Artifactory, забезпечує основу, необхідну для ефективного усунення несправностей, відновлення, запобігання помилкам і здатність вирішувати більш серйозні проблеми дотримання нормативних вимог і безпеки, пов’язані з ліцензуванням і вразливими місцями безпеки, використовуючи інші компоненти платформи JFrog, такі як JFrog Xray.
Які переваги комбінації Artifactory і SageMaker?
SageMaker уже надає масу ресурсів для робочих процесів розробки AI/ML. Ви можете вибрати серед доступних моделей і зображень, які вже включають найпопулярніші дистрибутиви, бібліотеки Python, фреймворки та алгоритми ML.
Але що, якщо ви займаєтесь будівництвом і виробництвом нестандартних і запатентованих артефактів?
Вбудовані ресурси зазвичай призначені для задоволення більшості випадків використання, що зазвичай означає, що надаються пакети, бібліотеки та моделі, які найчастіше використовуються. Наявність їх корисна для вивчення та порівняння наборів функцій, вивчення основ платформи чи конкретного фреймворку або створення матеріалу типу доказу концепції. Згодом можуть бути розглянуті більш спеціалізовані випадки використання та надано більше вбудованих ресурсів, але це, швидше за все, вирішуватиметься попитом населення, а не нагальними потребами окремої організації.
Безсумнівно, будуть випадки, коли вбудовані ресурси можуть стати лише початковим місцем, включаючи, але не обмежуючись, такі сценарії:
- Захищений код або моделі
- Розробникам моделей може знадобитися доступ до запатентованих ресурсів для використання в дослідженнях, навчанні та тестуванні.
- Стандартизовані середовища розробки
- Платформа організації або команда інфраструктури можуть забажати стандартизувати середовища розробки, щоб підвищити ефективність і відповідати правилам безпеки та безпеки, необхідним для розгортання виробництва.
- Артефакти економічного виробництва
- У деяких випадках може знадобитися виключити автоматично надані пакети та фреймворки, які є зайвими та не використовуються в кінцевому продукті.
У всіх цих випадках використання можливість налаштування стане важливою для вашої організації під час розробки користувацьких моделей виробничого рівня та програм, які їх використовують.
Які інструменти надає JFrog для розробки моделі AI/ML?
JFrog вже є потужним центром у контексті керування артефактами та безпеки. JFrog і AWS співпрацюють, щоб надати набори інструментів, які сприяють покращенню якості, прискоренню ітераційної розробки та створенню безпечного середовища для робочих процесів розробки AI/ML.
Подібно до того, як системи керування артефактами є важливими для проектів програмного забезпечення в інших галузях, правильне керування артефактами вирішує багато тих самих проблем, які існують у розробці моделі AI/ML. Розробка AI/ML може отримати значну користь від використання існуючих процесів розробки програмного забезпечення, які покращують якість, дотримуючись найкращих практик DevOps і використовуючи наявну інфраструктуру та інструменти, які відповідають нормативним вимогам організації.
JFrog Artifactory забезпечує основу для централізованого керування артефактами програмного забезпечення. Нижче наведено лише деякі функції Artifactory та інших широко використовуваних інструментів, які приносять користь розробці AI/ML:
Репозиторії Hugging Face. Нещодавно JFrog представив репозиторії Hugging Face в Artifactory — віддалені репозиторії проксі-моделей, що зберігаються в центрі Hugging Face, і локальні репозиторії для зберігання користувацьких і власних моделей, зробивши величезний внесок в екосистему AI/ML.
Реєстр образів контейнерів: Artifactory вже надає реєстр зображень контейнерів для зберігання зображень, які використовуються для навчання моделі та розгортання, а також проксі-образів із популярних публічних реєстрів, таких як Docker Hub.
Репозиторії Python: репозиторії Python в Artifactory доступні для зберігання власних пакетів Python або проксі-серверів із загальнодоступних індексів, таких як PyPI.
JFrog CLI: надійний інструмент командного рядка для зв’язку та керування примірником Artifactory та іншими компонентами в межах платформи JFrog (наприклад, JFrog Xray).
Де має сенс інтегрувати Artifactory із SageMaker?
Існує багато способів використання Artifactory із SageMaker, але головна мета полягає в тому, щоб у службі SageMaker дозволити авторизований доступ до екземпляра Artifactory у відповідний час під час розробки, що дозволяє успішно отримувати артефакти з Artifactory (включно з проксі-запитами). для артефактів із віддалених сховищ), а також успішного зберігання всіх артефактів, необхідних для проекту.
Але спочатку захистіть середовище Amazon SageMaker!
Рекомендований підхід для використання будь-яких ресурсів у SageMaker разом із Artifactory полягає в тому, щоб працювати з SageMaker у режимі лише VPC разом із налаштуванням домену SageMaker у VPC.
Приклади робочих процесів у Artifactory та SageMaker
Починаючи з середовища, що включає приватний VPC і домен SageMaker з існуючими користувачами, наведені нижче приклади є потенційними робочими процесами для навчання та розгортання моделей за допомогою служб SageMaker, а також роботи в блокнотах SageMaker і примірниках Notebook. Artifactory чудово вписується в будь-яке місце робочого процесу, яке вимагає або отримання, або зберігання пакетів, залежностей та інших артефактів розробки.
Оскільки навчання та розгортання моделей ML є невід’ємними завданнями розробки моделей ML, почнемо з робочих процесів, які використовують наявне середовище розробки на машині розробника, але дозволяють запускати навчальні завдання SageMaker і розгортати моделі ML на кінцевій точці SageMaker. робити передбачення або висновок .
Навчання моделі ML
Одним із ключових завдань розробника моделі є навчання конкретної моделі на наборі підготовлених даних. У наведеному нижче робочому процесі розробник переходить від створення зображення контейнера, необхідного службі SageMaker для запуску навчального завдання SageMaker, до збереження навченої версії моделі в приватному сховищі Hugging Face в Artifactory.
Перше завдання — створити образ контейнера Docker, який буде інкапсулювати сценарій, який використовуватиметься для навчання моделі на наборі даних із сегмента AWS S3. Sagemaker Python SDK і базові образи, доступні на Docker Hub, містять популярні фреймворки та алгоритми машинного навчання, а також надають багато необхідних навчальних програм.
У цьому випадку робота з написання навчального сценарію та створення образу Docker виконується на машині розробника, яка налаштована на вирішення артефактів із Artifactory. Іншим варіантом середовища безперервної інтеграції є закріплення змін, внесених у Dockerfile та/або навчальний сценарій, до сховища коду, яке запускає збірку образу Docker на сервері збірки, який потім доставляє отримане зображення в Artifactory. Зверніть увагу, що в будь-якому випадку запити на базовий образ, пакети Python або інші залежності, які потрібно включити в образ Docker, також вирішуються з Artifactory.
Після створення навчального образу Docker його надсилається до репозиторію Docker в Artifactory, щоб отримати доступ до нього пізніше за допомогою служби SageMaker.
Наступним кроком є запуск навчального завдання SageMaker. Це також можна зробити з локальної машини розробки за допомогою SageMaker Python SDK. Навчальне завдання виконується, а отриману навчену версію моделі потім можна завантажити в локальне сховище Hugging Face в Artifactory.
Розгортання моделі ML для висновків
Після завантаження спеціальної навченої моделі в Artifactory цю модель тепер можна розгорнути в службі SageMaker Inference і перевірити за допомогою кінцевої точки SageMaker. Наступний робочий процес веде розробника від створення образу контейнера, необхідного для служби SageMaker Inference, до розгортання моделі для виконання прогнозів.
Подібно до процесу навчання моделі ML, почніть зі створення спеціального контейнера Docker, який містить необхідну конфігурацію та сценарії для виконання прогнозів щодо даної моделі за допомогою SageMaker Inference. Усі пакунки та артефакти, необхідні для цього завдання, вирішуються з Artifactory, а отриманий власний образ Docker надсилається до репозиторію Docker в Artifactory.
Тепер, коли власне зображення доступне в Artifactory, сценарій Python із використанням SDK SageMaker Python може розгорнути модель у SageMaker Inference. Усі необхідні параметри конфігурації, необхідні для SageMaker Inference, а також розташування спеціального зображення Docker і моделі Hugging Face в Artifactory можна надати за допомогою ініціалізації та методів SageMaker Python Model SDK .
Після розгортання моделі та активації кінцевої точки SageMaker можна буде виконувати прогнози за допомогою SageMaker Python SDK Predictor .
Робота в екземплярах блокнотів, класичних блокнотах SageMaker Studio та інших ресурсах SageMaker
Однією з головних цілей SageMaker є забезпечення повнофункціональних середовищ для кодування, створення та запуску всього, що потрібно для розробки AI/ML. Основною перевагою цього підходу є підвищення ефективності для розробників завдяки уникненню контекстного перемикання в SageMaker і вимикання з нього. Також можна налаштувати ці середовища, щоб надавати лише програмне забезпечення та інструменти, схвалені для використання окремою організацією відповідно до правил безпеки та безпеки.
Одним із варіантів є стандартизація використання Artifactory у SageMaker Classic Notebooks та екземплярах Notebook, додавши сценарій конфігурації життєвого циклу. Наприклад, розгляньте можливість використання сценарію конфігурації життєвого циклу, який отримує доступ до конфіденційної інформації автентифікації та конфігурації з секрету AWS і виконує такі дії з цією інформацією:
- Встановити та налаштувати JFrog CLI
- Налаштуйте pip для віртуального сховища PyPI в Artifactory
- Налаштуйте Hugging Face SDK для роботи з Artifactory
У результаті кожного разу, коли користувач запускає екземпляр Notebook, створює класичний блокнот SageMaker або запускає консоль коду чи термінал зображень, налаштування, необхідні користувачам для спілкування з екземпляром Artifactory, завершуються стандартизованим і безпечним способом. Без будь-яких додаткових зусиль користувачі зможуть вирішити будь-які залежності програмного забезпечення Hugging Face Hub або Python PyPI, необхідні для їх робочого процесу, через Artifactory.
Висновок
На всіх етапах життєвого циклу штучного інтелекту та ML рекомендується перенести керування JFrog Artifactory на рівні підприємства в Amazon SageMaker. Поєднання JFrog і AWS допомагає зменшити складність і вартість ітеративної розробки, тестування та розгортання моделей машинного навчання.
JFrog Artifactory широко використовується для встановлення найкращих практик DevOps для зберігання та керування артефактами. Переконавшись, що джерелом усіх артефактів розробки є JFrog Artifactory, можна не лише керувати базовим обліком та інвентаризацією програмного забезпечення — ця практика забезпечить успішну організацію організації, коли йдеться про дотримання нормативних вимог, ліцензування та безпеку під час використання сторонніх розробників. програмні пакети.
Щоб отримати докладну документацію про те, як включити Artifactory у ваші середовища SageMaker, можна ознайомтеся з базою знань JFrog на сайті цієї компанії чи звернутися до офіційного постачальника – компанії Ідеалсофт.