Фахівці з даних часто працюють над тим, щоб зрозуміти вплив різноманітних стратегій попередньої обробки даних і розробки функцій у поєднанні з різними архітектурами моделей і гіперпараметрами. Для цього потрібно охоплювати великі простори параметрів ітераційно, і це може бути надзвичайно важко відстежувати раніше запущені конфігурації та результати, зберігаючи експерименти відтворюваними.
У цьому дописі наведено приклад того, як відстежувати свої експерименти з кодом, даними, артефактами та показниками за допомогою Експерименти Amazon SageMaker в поєднанні з Контроль версій даних (DVC). Ми показуємо, як можна використовувати DVC поруч із Amazon SageMaker обробки та навчання робочих місць. Ми навчаємо різні моделі CatBoost на каліфорнійському наборі даних про житло Репозиторій StatLib, а також змінювати стратегії очікування, відстежуючи версію даних за допомогою DVC. У кожному окремому експерименті ми відстежуємо вхідні та вихідні артефакти, код і показники за допомогою SageMaker Experiments.
Експерименти SageMaker
SageMaker Experiments — це сервіс AWS для відстеження експериментів з машинним навчанням (ML). The SageMaker Experiments Python SDK це інтерфейс високого рівня для цієї служби, який допомагає відстежувати інформацію про експеримент за допомогою Python.
Мета SageMaker Experiments полягає в тому, щоб максимально спростити створення експериментів, заповнити їх випробуваннями, додати інформацію про відстеження та походження, а також запустити аналітику випробувань і експериментів.
Обговорюючи експерименти SageMaker, ми посилаємося на такі поняття:
- експеримент – Колекція пов’язаних випробувань. Ви додаєте випробування до експерименту, які хочете разом порівняти.
- Суд – Опис багатоетапного робочого процесу ML. Кожен крок робочого процесу описується пробним компонентом.
- Пробний компонент – Опис окремого кроку в робочому процесі ML, наприклад очищення даних, вилучення функцій, навчання моделі або оцінка моделі.
- Tracker – Менеджер контексту Python для реєстрації інформації про один пробний компонент (наприклад, параметри, показники або артефакти).
Контроль версій даних
Контроль версій даних (DVC) — це новий тип програмного забезпечення для керування версіями даних, робочим процесом і експериментами, яке базується на Git (хоча він може працювати автономно). DVC зменшує розрив між усталеними наборами інженерних інструментів і потребами в наукових даних, дозволяючи вам скористатися новими перевагами риси повторно використовуючи наявні навички та інтуїцію.
Спільне використання та співпраця в експериментах із науковими даними можна здійснювати через звичайний потік Git (коміти, розгалуження, теги, запити на отримання) так само, як це працює для розробників програмного забезпечення. За допомогою Git і DVC спеціалісти з обробки даних і ML можуть експериментувати з версіями, керувати великими наборами даних і робити проекти відтворюваними.
DVC має такі особливості:
- DVC - це a безкоштовно, відкрите джерело командного рядка інструмент.
- DVC працює поверх сховищ Git і має подібний інтерфейс командного рядка та процес, як Git. DVC також може працювати автономно, але без Версію можливостей.
- Керування версіями даних увімкнено шляхом заміни великих файлів, каталогів наборів даних, моделей ML тощо на маленькі метафайли (легко працювати з Git). Ці заповнювачі вказують на вихідні дані, які не пов’язані з керуванням вихідним кодом.
- Ви можете використовувати локальне або хмарне сховище для зберігання даних проекту окремо від його бази коду. Ось як дослідники даних можуть передавати великі набори даних або ділитися моделлю, навченою GPU, іншим.
- DVC робить проекти науки про дані відтворюваними, створюючи легкі дані трубопроводи використовуючи неявні графи залежностей і кодифікуючи залучені дані та артефакти.
- DVC не залежить від платформи. Він працює на всіх основних операційних системах (Linux, macOS та Windows) і працює незалежно від мов програмування (Python, R, Julia, сценарії оболонки тощо) або бібліотек ML (Keras, TensorFlow, PyTorch, Scipy та більше), які використовуються в проекті.
- DVC швидко встановлювати і не потребує спеціальної інфраструктури, а також не залежить від API чи зовнішніх служб. Це окремий інструмент CLI.
Експерименти SageMaker і зразок DVC
Наступні Зразок GitHub показує, як використовувати DVC у середовищі SageMaker. Зокрема, ми розглядаємо, як створити власний образ із бібліотеками DVC, встановленими за замовчуванням, щоб забезпечити узгоджене середовище розробки для ваших спеціалістів із обробки даних у Студія Amazon SageMakerі як запустити DVC разом із керованою інфраструктурою SageMaker для обробки та навчання. Крім того, ми показуємо, як збагатити інформацію відстеження SageMaker інформацією про версії даних із DVC і візуалізувати їх у консолі Studio.
На наступній діаграмі показано архітектуру рішення та робочий процес.
Створіть власний образ Studio з уже встановленим DVC
В цьому GitHub сховище, ми пояснюємо, як створити власний образ для Studio, де вже встановлено DVC. Перевага створення образу та надання його доступу всім користувачам Studio полягає в тому, що це створює узгоджене середовище для користувачів Studio, яке вони також можуть запускати локально. Хоча зразок заснований на AWS Cloud9, ви також можете створити контейнер на локальній машині, якщо у вас встановлено та запущено Docker. Цей зразок базується на наступному Докер-файл та середовище.yml. Отриманий образ Docker зберігається в Реєстр контейнерів Amazon Elastic (Amazon EMR) у вашому обліковому записі AWS. Перегляньте наступний код:
Тепер ви можете створити новий домен Studio or оновити наявний домен Studio який має доступ до щойно створеного образу Docker.
Ми використовуємо Набір хмарних розробок AWS (AWS CDK), щоб створити такі ресурси через AWS CloudFormation:
- Роль виконання SageMaker із відповідними дозволами для вашого нового чи наявного домену Studio
- Образ SageMaker і версія образу SageMaker із образу Docker
conda-env-dvc-kernel
які ми створили раніше - An
AppImageConfig
який визначає, як має бути налаштований шлюз ядра - Користувач Studio (
data-scientist-dvc
) з правильною роллю виконання SageMaker і доступним для нього нестандартним образом Studio
Докладні інструкції див Пов’яжіть власне зображення з SageMaker Studio.
Запустіть лабораторію
Щоб запустити лабораторію, виконайте наступні кроки:
- У домені Studio запустіть Studio для
data-scientist-dvc
користувач. - Виберіть піктограму Git, а потім виберіть Клонуйте репозиторій.
- Введіть URL-адресу сховища (
https://github.com/aws-samples/amazon-sagemaker-experiments-dvc-demo
) і виберіть Клон. - У браузері файлів виберіть
amazon-sagemaker-experiments-dvc-demo
сховище - Відкрийте
dvc_sagemaker_script_mode.ipynb
зошит. - для Нестандартне зображення, виберіть образ conda-env-dvc-kernel.
- Вибирати Select.
Налаштуйте DVC для керування версіями даних
Ми створюємо підкаталог, де готуємо дані: sagemaker-dvc-sample. У цьому підкаталозі ми ініціалізуємо нове сховище Git і встановлюємо віддалений репозиторій, створений у Комісія AWS. Мета полягає в тому, щоб мати версії конфігурацій DVC і файлів для відстеження даних у цьому репозиторії. Однак Git пропонує нативні можливості для керування підпроектами, наприклад, через підмодулі git і піддерева git, і ви можете розширити цей зразок, щоб використовувати будь-який із вищезгаданих інструментів, який найкраще підходить для вашого робочого процесу.
Основною перевагою використання CodeCommit із SageMaker у нашому випадку є його інтеграція з Управління ідентифікацією та доступом AWS (IAM) для автентифікації та авторизації, тобто ми можемо використовувати ролі IAM для надсилання та отримання даних без необхідності отримання облікових даних (або ключів SSH). Налаштування відповідних дозволів для ролі виконання SageMaker також дозволяє блокноту Studio та завданням навчання та обробки SageMaker безпечно взаємодіяти з CodeCommit.
Хоча ви можете замінити CodeCommit будь-якою іншою службою керування джерелами, такою як GitHub, Gitlab або Bitbucket, вам потрібно розглянути, як обробляти облікові дані для вашої системи. Однією з можливостей є збереження цих облікових даних на Менеджер секретів AWS і отримати їх під час виконання з блокнота Studio, а також із завдань обробки та навчання SageMaker.
Обробляйте та навчайтеся за допомогою DVC і SageMaker
У цьому розділі ми досліджуємо два різні підходи до вирішення нашої проблеми та те, як ми можемо відстежувати два тести за допомогою експериментів SageMaker відповідно до концептуальної архітектури високого рівня, яку ми показали вам раніше.
Налаштуйте експеримент SageMaker
Щоб відстежити цей тест у SageMaker, нам потрібно створити експеримент. Нам також потрібно визначити випробування в експерименті. Заради простоти ми розглядаємо лише одне випробування для експерименту, але ви можете мати будь-яку кількість випробувань в експерименті, наприклад, якщо ви хочете перевірити різні алгоритми.
Створюємо експеримент під назвою DEMO-sagemaker-experiments-dvc
з двома випробуваннями, dvc-trial-single-file
та dvc-trial-multi-files
, кожен з яких представляє різну версію набору даних.
Давайте створимо DEMO-sagemaker-experiments-dvc
експеримент:
Тест 1: Створення окремих файлів для навчання та перевірки
У цьому розділі ми створюємо сценарій обробки, який отримує необроблені дані безпосередньо з Служба простого зберігання Amazon (Amazon S3) як вхідні дані; обробляє його для створення наборів даних навчання, перевірки та тестування; і зберігає результати в Amazon S3 за допомогою DVC. Крім того, ми показуємо, як ви можете відстежувати вихідні артефакти, створені DVC за допомогою SageMaker під час виконання завдань обробки та навчання, а також за допомогою SageMaker Experiments.
По-перше, ми створюємо dvc-trial-single-file
і додайте його до DEMO-sagemaker-experiments-dvc
експеримент. Таким чином ми зберігаємо всі пробні компоненти, пов’язані з цим тестом, організованими у змістовний спосіб.
Використовуйте DVC у завданні обробки SageMaker, щоб створити однофайлову версію
У цьому розділі ми створюємо сценарій обробки, який отримує необроблені дані безпосередньо з Amazon S3 як вхідні дані за допомогою можливості керованого завантаження даних SageMaker; обробляє його для створення наборів даних навчання, перевірки та тестування; і зберігає результати в Amazon S3 за допомогою DVC. Дуже важливо розуміти, що під час використання DVC для зберігання даних в Amazon S3 (або отримання даних з Amazon S3) ми втрачаємо можливості керованого завантаження даних SageMaker, що потенційно може вплинути на продуктивність і вартість нашої обробки та навчання. , особливо при роботі з дуже великими наборами даних. Додаткову інформацію про різні можливості рідного режиму введення SageMaker див Доступ до навчальних даних.
Нарешті, ми об’єднуємо можливості відстеження DVC із можливостями відстеження SageMaker під час виконання завдань обробки через SageMaker Experiments.
Сценарій обробки очікує адресу сховища Git і гілки, яку ми хочемо створити для зберігання метаданих DVC, переданих через змінні середовища. Самі набори даних зберігаються в Amazon S3 компанією DVC. Хоча змінні середовища автоматично відстежуються в SageMaker Experiments і відображаються в параметрах пробного компонента, ми можемо захотіти збагатити пробні компоненти додатковою інформацією, яка потім стає доступною для візуалізації в інтерфейсі користувача Studio за допомогою об’єкта трекера. У нашому випадку параметри пробних компонентів включають наступне:
DVC_REPO_URL
DVC_BRANCH
USER
data_commit_hash
train_test_split_ratio
Сценарій попередньої обробки клонує репозиторій Git; генерує набори даних навчання, перевірки та тестування; і синхронізує його за допомогою DVC. Як згадувалося раніше, під час використання DVC ми не можемо скористатися перевагами рідних можливостей завантаження даних SageMaker. Окрім погіршення продуктивності, яке може відбутися на великих наборах даних, ми також втрачаємо можливості автоматичного відстеження артефактів виводу. Однак завдяки трекеру та API DVC Python ми можемо компенсувати ці недоліки, отримувати таку інформацію під час виконання та зберігати її в пробній версії без зусиль. Додаткова цінність цього полягає в тому, щоб мати єдине подання вхідних і вихідних артефактів, які належать до цього конкретного завдання обробки.
Повний сценарій попередньої обробки Python доступний у GitHub репо.
SageMaker дає нам можливість запускати наш сценарій обробки зображень контейнерів, керованих AWS, оптимізованих для роботи в інфраструктурі AWS. Якщо наш сценарій вимагає додаткових залежностей, ми можемо надати a requirements.txt
файл. Коли ми починаємо роботу з обробки, SageMaker використовує pip-install
встановити всі потрібні нам бібліотеки (наприклад, бібліотеки, пов’язані з DVC). Якщо вам потрібно мати більш жорсткий контроль над усіма бібліотеками, встановленими на контейнерах, ви можете додати свій власний контейнер у SageMaker, наприклад для обробка та навчання.
Тепер у нас є всі інгредієнти для роботи з обробкою SageMaker:
- Сценарій обробки, який може обробляти кілька аргументів (
--train-test-split-ratio
) і дві змінні середовища (DVC_REPO_URL
таDVC_BRANCH
) - A
requiremets.txt
файл - Репозиторій Git (у CodeCommit)
- Експеримент і випробування SageMaker
Потім ми запускаємо завдання обробки за допомогою preprocessing-experiment.py
скрипт experiment_config
, dvc_repo_url
та dvc_branch
ми визначили раніше.
Обробка займає приблизно 5 хвилин. Тепер ви можете переглянути деталі пробної версії для набору даних одного файлу.
На наступному знімку екрана показано, де можна знайти збережену інформацію в Studio. Зверніть увагу на значення для dvc-trial-single-file
in DVC_BRANCH
, DVC_REPO_URL
та data_commit_hash
на параметри Вкладка.
Також зверніть увагу на деталі введення та виведення на Артефакти Вкладка.
Створіть оцінювач і підберіть модель з однофайловою версією даних
Щоб використовувати інтеграцію DVC у навчальному завданні SageMaker, ми передаємо a dvc_repo_url
та dvc_branch
як змінні середовища під час створення об’єкта Estimator.
Ми тренуємося на dvc-trial-single-file
гілка перша.
Під час отримання даних за допомогою DVC ми використовуємо таку структуру набору даних:
Тепер ми створюємо Scikit-learn Estimator за допомогою SageMaker Python SDK. Це дозволяє нам визначити наступне:
- Шлях до вихідного файлу Python, який слід запускати як точку входу до навчання.
- Роль IAM, яка контролює дозволи для доступу до даних Amazon S3 і CodeCommit і запуску функцій SageMaker.
- Список словників, які визначають показники, що використовуються для оцінки навчальних завдань.
- Кількість і тип навчальних примірників. Ми використовуємо один ml.m5.large екземпляр.
- Гіперпараметри, які використовуються для навчання.
- Змінні середовища для використання під час навчальної роботи. Ми використовуємо
DVC_REPO_URL
,DVC_BRANCH
таUSER
.
Щоб розпочати навчання, ми викликаємо метод підгонки оцінювача за допомогою експерименту_config, який ми визначили раніше.
Виконання навчального завдання займає приблизно 5 хвилин. Журнали показують ці рядки, що вказують на файли, отримані DVC:
Тест 2: Створення кількох файлів для навчання та перевірки
Ми створюємо новий dvc-trial-multi-files
випробування та додати його до поточного DEMO-sagemaker-experiments-dvc
експеримент.
На відміну від першого сценарію обробки, тепер ми створюємо з оригінального набору даних кілька файлів для навчання та перевірки та зберігаємо метадані DVC в іншій гілці.
Ви можете дослідити другий сценарій попередньої обробки Python на GitHub.
Обробка займає приблизно 5 хвилин. Тепер ви можете переглянути деталі пробної версії для багатофайлового набору даних.
На наступних знімках екрана показано, де можна знайти збережену інформацію в SageMaker Experiments у Пробні компоненти в інтерфейсі користувача Studio. Зверніть увагу на значення для dvc-trial-multi-files
in DVC_BRANCH
, DVC_REPO_URL
та data_commit_hash
на параметри Вкладка.
Ви також можете переглянути деталі введення та виведення на Артефакти Вкладка.
Ми зараз тренуємося на dvc-trial-multi-files
відділення. Під час отримання даних за допомогою DVC ми використовуємо таку структуру набору даних:
Як і раніше, ми створюємо новий Scikit-learn Estimator із пробною назвою dvc-trial-multi-files
і почати навчальну роботу.
Виконання навчального завдання займає приблизно 5 хвилин. У журналах навчальних завдань, виведених у блокнот, ви можете побачити ці рядки, що вказують на файли, отримані DVC:
Розмістіть свою модель у SageMaker
Після навчання моделі ML ви можете розгорнути її за допомогою SageMaker. Щоб розгорнути постійну кінцеву точку в реальному часі, яка робить по одному прогнозу за раз, ми використовуємо Послуги хостингу в режимі реального часу SageMaker.
По-перше, ми отримуємо останній тестовий набір локально в блокноті розробки в Studio. З цією метою ми можемо використовувати dvc.api.read()
щоб завантажити необроблені дані, збережені в Amazon S3 завданням обробки SageMaker.
Потім ми готуємо дані за допомогою Pandas, завантажуємо тестовий файл CSV і викликаємо predictor.predict
щоб викликати створену раніше кінцеву точку SageMaker з даними та отримати прогнози.
Видаліть кінцеву точку
Вам слід видалити кінцеві точки, коли вони більше не використовуються, оскільки вони виставляються за час розгортання (додаткову інформацію див. Ціни на Amazon SageMaker). Обов’язково видаліть кінцеву точку, щоб уникнути неочікуваних витрат.
Прибирати
Перш ніж видалити всі створені ресурси, переконайтеся, що всі програми видалено з data-scientist-dvc
користувача, включаючи всі програми KernelGateway, а також програму JupiterServer за замовчуванням.
Потім ви можете знищити стек AWS CDK, виконавши таку команду:
Якщо ви використовували існуючий домен, також виконайте такі команди:
Висновок
У цій публікації ви показали приклад того, як відстежувати свої експерименти з кодом, даними, артефактами та показниками за допомогою SageMaker Experiments і завдань обробки та навчання SageMaker у поєднанні з DVC. Ми створили образ Docker, що містить DVC, який був необхідний для Studio як блокнот для розробки, і показали, як можна використовувати завдання обробки та навчання з DVC. Ми підготували дві версії даних і використовували DVC для керування ними за допомогою Git. Потім ви використали SageMaker Experiments для відстеження обробки та навчання з двома версіями даних, щоб мати уніфіковане уявлення про параметри, артефакти та показники в одній скляній панелі. Нарешті, ви розгорнули модель на кінцевій точці SageMaker і використали тестовий набір даних із другої версії набору даних, щоб викликати кінцеву точку SageMaker і отримати прогнози.
На наступному етапі ви можете розширити існуючий блокнот і запровадити власну стратегію розробки функцій, а також використовувати DVC і SageMaker для проведення експериментів. Давайте будувати!
Для подальшого читання зверніться до таких ресурсів:
Про авторів
Паоло Ді Франческо є архітектором рішень в AWS. Має досвід у сфері телекомунікацій та розробки програмного забезпечення. Він захоплюється машинним навчанням і зараз зосереджується на використанні свого досвіду, щоб допомогти клієнтам досягти своїх цілей на AWS, зокрема в обговореннях навколо MLOps. Поза роботою він любить грати у футбол і читати.
Ейтан Села є спеціалістом з машинного навчання архітектором рішень Amazon Web Services. Він працює з клієнтами AWS, щоб надати рекомендації та технічну допомогу, допомагаючи їм створювати та використовувати рішення машинного навчання на AWS. У вільний час Ейтан любить бігати підтюпцем і читати останні статті про машинне навчання.
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- Amazon SageMaker
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- Контроль версій даних
- глибоке навчання
- ССЗ
- у вас є гугл
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- Технічні інструкції
- зефірнет