Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте свої тренінги машинного навчання в масштабі

Сьогодні ми раді оголосити про оновлення нашого Експерименти Amazon SageMaker здатність Amazon SageMaker який дозволяє організовувати, відстежувати, порівнювати та оцінювати експерименти з машинного навчання (ML) і версії моделі з будь-якого інтегрованого середовища розробки (IDE) за допомогою SDK SageMaker Python або boto3, включаючи локальні ноутбуки Jupyter.

Машинне навчання (ML) — це ітеративний процес. Вирішуючи новий варіант використання, спеціалісти з обробки даних та інженери ML переглядають різноманітні параметри, щоб знайти найкращі конфігурації моделі (так звані гіперпараметри), які можна використовувати у виробництві для вирішення визначеної бізнес-проблеми. З часом, після експериментів із кількома моделями та гіперпараметрами, командам ML стає важко ефективно керувати прогонами моделей, щоб знайти оптимальну без інструменту для відстеження різних експериментів. Системи відстеження експериментів оптимізують процеси для порівняння різних ітерацій і допомагають спростити співпрацю та спілкування в команді, тим самим підвищуючи продуктивність і економлячи час. Це досягається шляхом організації та керування експериментами ML у легкий спосіб, щоб зробити з них висновки, наприклад, знайти тренувальний запуск із найкращою точністю.

Щоб вирішити цю проблему, SageMaker надає SageMaker Experiments, повністю інтегровану функцію SageMaker. Він забезпечує гнучкість реєстрації метрик, параметрів, файлів, артефактів вашої моделі, побудови діаграм із різними показниками, захоплення різноманітних метаданих, пошуку в них і підтримки відтворюваності моделі. Науковці даних можуть швидко порівнювати продуктивність і гіперпараметри для оцінки моделі за допомогою візуальних діаграм і таблиць. Вони також можуть використовувати SageMaker Experiments, щоб завантажити створені діаграми та поділитися оцінкою моделі зі своїми зацікавленими сторонами.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Завдяки новим оновленням SageMaker Experiments він тепер є частиною SageMaker SDK, що спрощує роботу спеціаліста з обробки даних і усуває необхідність інсталювати додаткову бібліотеку для керування кількома виконаннями моделей. Ми представляємо такі нові основні поняття:

  • експеримент: колекція прогонів, згрупованих разом. Експеримент включає запуски для кількох типів, які можна ініціювати будь-де за допомогою SageMaker Python SDK.
  • прогін: Кожен крок виконання модельного навчального процесу. Прогон складається з усіх вхідних даних, параметрів, конфігурацій і результатів для однієї ітерації навчання моделі. Спеціальні параметри та показники можна реєструвати за допомогою log_parameter, log_parameters та log_metric функції. Настроювані введення та виведення можна реєструвати за допомогою log_file функції.

Концепції, які реалізуються як частина a Run доступні з будь-якої IDE, де встановлено SageMaker Python SDK. Для навчання SageMaker, обробки та

Transform Jobs, SageMaker Experiment Run автоматично передається до завдання, якщо завдання викликається в контексті виконання. Ви можете відновити запущений об'єкт за допомогою load_run() від вашої роботи. Нарешті, завдяки інтеграції нових функціональних можливостей дослідники обробки даних також можуть автоматично реєструвати матрицю помилок, графіки точності та відкликання, а також криву ROC для випадків використання класифікації за допомогою run.log_confusion_matrix, run.log_precision_recall та run.log_roc_curve функції, відповідно.

У цій публікації блогу ми надамо приклади використання нових функцій SageMaker Experiments у записнику Jupyter за допомогою SDK SageMaker. Ми продемонструємо ці можливості за допомогою a PyTorch приклад для навчання прикладу класифікації рукописних цифр MNIST. Експеримент буде організовано таким чином:

  1. Створення прогонів експерименту та реєстрація параметрів: спочатку ми створимо новий експеримент, розпочнемо новий запуск для цього експерименту та зареєструємо для нього параметри.
  2. Реєстрація показників продуктивності моделі: ми будемо реєструвати показники ефективності моделі та будувати графіки показників.
  3. Порівняння моделей: Ми будемо порівнювати різні прогони моделі відповідно до гіперпараметрів моделі. Ми обговоримо, як порівнювати ці цикли та як використовувати експерименти SageMaker для вибору найкращої моделі.
  4. Проведення експериментів із завдань SageMaker: Ми також надамо приклад того, як автоматично надати спільний доступ до контексту вашого експерименту з завданням обробки, навчання або пакетного перетворення SageMaker. Це дозволяє автоматично відновлювати контекст запуску за допомогою load_run функції у вашій роботі.
  5. Інтеграція звітів SageMaker Clarify: Ми покажемо, як тепер можна інтегрувати SageMaker Уточнити звіти про упередженість і пояснюваність в одному поданні зі звітом про навчену модель.

Передумови

Для цієї публікації в блозі ми будемо використовувати Студія Amazon SageMaker щоб продемонструвати, як реєструвати показники із блокнота Studio за допомогою оновлених функцій SageMaker Experiments. Щоб виконати команди, представлені в нашому прикладі, вам потрібні наступні передумови:

  • Домен SageMaker Studio
  • Профіль користувача SageMaker Studio з повним доступом до SageMaker
  • Ноутбук SageMaker Studio з принаймні ml.t3.medium тип екземпляра

Якщо у вас немає домену SageMaker і профілю користувача, ви можете створити їх за допомогою цього посібник із швидкого налаштування.

Параметри журналювання

Для цієї вправи ми будемо використовувати смолоскипне бачення, пакет PyTorch, який надає популярні набори даних, архітектури моделей і типові перетворення зображень для комп’ютерного зору. SageMaker Studio надає набір Образи Docker для поширених випадків використання наукових даних, доступних в Amazon ECR. Для PyTorch у вас є можливість вибору зображень, оптимізованих для навчання CPU або GPU. Для цього прикладу ми виберемо зображення PyTorch 1.12 Python 3.8 CPU Optimized і Python 3 ядро. Приклади, описані нижче, стосуються функцій SageMaker Experiments і не є повним кодом.

Давайте завантажимо дані за допомогою torchvision пакуйте та відстежуйте кількість зразків даних для навчання та тестових наборів даних як параметрів за допомогою SageMaker Experiments. Для цього прикладу припустимо train_set та test_set як уже завантажено torchvision набори даних.

from sagemaker.session import Session
from sagemaker.experiments.run import Run
import os

# create an experiment and start a new run
experiment_name = "local-experiment-example"
run_name = "experiment-run"

with Run(experiment_name=experiment_name, sagemaker_session=Session(), run_name=run_name) as run:
    run.log_parameters({
        "num_train_samples": len(train_set.data),
        "num_test_samples": len(test_set.data)
    })
    for f in os.listdir(train_set.raw_folder):
        print("Logging", train_set.raw_folder+"/"+f)
        run.log_file(train_set.raw_folder+"/"+f, name=f, is_output=False)

У цьому прикладі ми використовуємо run.log_parameters реєструвати кількість зразків тренувальних і тестових даних run.log_file щоб завантажити необроблені набори даних в Amazon S3 і зареєструвати їх як вхідні дані для нашого експерименту.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Навчання моделі та реєстрація показників моделі

Тепер, коли ми завантажили набір даних MNIST, давайте навчимо a Модель CNN розпізнавати цифри. Під час навчання моделі ми хочемо завантажити наш існуючий експеримент, зареєструвати в ньому нові параметри та відстежувати продуктивність моделі, реєструючи показники моделі.

Ми можемо використовувати load_run функцію, щоб завантажити наш попередній запуск і використовувати його для реєстрації навчання нашої моделі

with load_run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
    train_model(
        run=run,
        train_set=train_set,
        test_set=test_set,
        epochs=10,
        hidden_channels=5,
        optimizer="adam"
    )

Тоді ми можемо використовувати run.log_parameter та run.log_parameters щоб зареєструвати один або кілька параметрів моделі в нашому циклі.

# log the parameters of your model
run.log_parameter("device", "cpu")
run.log_parameters({
    "data_dir": data_dir,
    "optimizer": optimizer,
    "epochs": epochs,
    "hidden_channels": hidden_channels
})

І ми можемо використовувати run.log_metric щоб зареєструвати показники ефективності в нашому експерименті.

run.log_metric(name=metric_type+":loss", value=loss, step=epoch)
run.log_metric(name=metric_type+":accuracy", value=accuracy, step=epoch)

Для моделей класифікації також можна використовувати run.log_confusion_matrix, run.log_precision_recall та run.log_roc_curve, щоб автоматично побудувати матрицю плутанини, графік точності запам’ятовування та криву ROC вашої моделі. Оскільки наша модель вирішує проблему багатокласової класифікації, запишемо для неї лише матрицю плутанини.

# log confusion matrix
with torch.no_grad():
    for data, target in test_loader:
        data, target = data.to(device), target.to(device)
        output = model(data)
        pred = output.max(1, keepdim=True)[1] 
        run.log_confusion_matrix(target, pred, "Confusion-Matrix-Test-Data")

Переглядаючи деталі нашого запуску, тепер ми можемо побачити згенеровані показники, як показано на знімку екрана нижче:

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Сторінка з детальною інформацією про цикл містить додаткову інформацію про показники.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Параметри нової моделі відстежуються на сторінці огляду параметрів.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ви також можете проаналізувати продуктивність своєї моделі за класами за допомогою автоматично побудованої матриці помилок, яку також можна завантажити та використовувати для різних звітів. Ви також можете побудувати додаткові графіки для аналізу продуктивності вашої моделі на основі зареєстрованих показників.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Порівняння кількох параметрів моделі

Як фахівець із обробки даних ви хочете знайти найкращу можливу модель. Це включає багаторазове навчання моделі з різними гіперпараметрами та порівняння продуктивності моделі з цими гіперпараметрами. Для цього SageMaker Experiments дозволяє нам створювати кілька циклів в одному експерименті. Давайте досліджуємо цю концепцію, навчаючи нашу модель різними num_hidden_channels та optimizers.

# define the list of parameters to train the model with
num_hidden_channel_param = [5, 10, 20]
optimizer_param = ["adam", "sgd"]
run_id = 0
# train the model using SageMaker Experiments to track the model parameters, 
# metrics and performance
sm_session = Session()
for i, num_hidden_channel in enumerate(num_hidden_channel_param):
    for k, optimizer in enumerate(optimizer_param):
        run_id += 1
        run_name = "experiment-run-"+str(run_id)
        print(run_name)
        print(f"Training model with: {num_hidden_channel} hidden channels and {optimizer} as optimizer")
        # Defining an experiment run for each model training run
        with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=sm_session) as run:
            train_model(
                run=run, 
                train_set=train_set,
                test_set=test_set,
                epochs=10, 
                hidden_channels=num_hidden_channel,
                optimizer=optimizer
            )

Зараз ми створюємо шість нових циклів для нашого експерименту. Кожен з них реєструватиме параметри моделі, показники та матрицю помилок. Потім ми можемо порівняти прогони, щоб вибрати найкращу модель для проблеми. Аналізуючи пробіжки, ми можемо побудувати метричні графіки для різних прогонів як єдиний графік, порівнюючи ефективність прогонів на різних етапах (або епохах) навчання.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Використання експериментів SageMaker із завданнями навчання, обробки та пакетного перетворення SageMaker

У наведеному вище прикладі ми використовували SageMaker Experiments для реєстрації продуктивності моделі з блокнота SageMaker Studio, де модель навчалася локально в блокноті. Ми можемо зробити те саме, щоб реєструвати продуктивність моделі від завдань обробки, навчання та пакетного перетворення SageMaker. З новими можливостями автоматичної передачі контексту нам не потрібно спеціально ділитися конфігурацією експерименту з завданням SageMaker, оскільки вона буде автоматично захоплена.

Наведений нижче приклад зосереджуватиметься на функціональних можливостях SageMaker Experiments і не є повним кодом.

from sagemaker.pytorch import PyTorch
from sagemaker.experiments.run import Run
from sagemaker.session import Session
from sagemaker import get_execution_role
role = get_execution_role()

# set new experiment configuration
exp_name = "training-job-experiment-example"
run_name = "experiment-run-example"

# Start training job with experiment setting
with Run(experiment_name=exp_name, run_name=run_name, sagemaker_session=Session()) as run:
    est = PyTorch(
        entry_point="",
        dependencies=[""],
        role=role,
        model_dir=False,
        framework_version="1.12",
        py_version="py38",
        instance_type='ml.c5.xlarge',
        instance_count=1,
            hyperparameters={
            "epochs": 10,
            "hidden_channels":5,
            "optimizer": "adam",
        },
        keep_alive_period_in_seconds=3600
    )
    
    est.fit()

У нашому файлі сценарію моделі ми можемо отримати контекст запуску за допомогою load_run(). У завданнях обробки та навчання SageMaker нам не потрібно надавати конфігурацію експерименту для завантаження конфігурації. Для завдань пакетного перетворення нам потрібно надати experiment_name та run_name щоб завантажити конфігурацію експерименту.

with load_run() as run:
    run.log_parameters({...})
    train_model(run, ...)

На додаток до інформації, яку ми отримуємо під час запуску SageMaker Experiments зі сценарію блокнота, запуск із завдання SageMaker автоматично заповнює параметри завдання та результати.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Новий SageMaker Experiments SDK також забезпечує зворотну сумісність із попередньою версією за допомогою концепцій випробувань і пробних компонентів. Будь-який експеримент, ініційований за допомогою попередньої версії SageMaker Experiments, буде автоматично доступний у новому інтерфейсі користувача для аналізу експериментів.

Інтеграція звітів про навчання SageMaker Clarify і моделювання

SageMaker Clarify допомагає покращити наші моделі ML шляхом виявлення потенційне упередження і допомагаючи пояснювати як ці моделі роблять прогнози. Clarify надає готові контейнери, які запускаються як завдання обробки SageMaker після того, як вашу модель було навчено, використовуючи інформацію про ваші дані (конфігурація даних), модель (конфігурація моделі) і стовпці конфіденційних даних, які ми хочемо проаналізувати на предмет можливого відхилення (зміщення). конфігурація). Досі SageMaker Experiments відображав наше навчання моделі та звіти Clarify як окремі пробні компоненти, які були підключені через пробну версію.

Завдяки новим експериментам SageMaker ми також можемо інтегрувати звіти SageMaker Clarify із нашим навчанням моделі, маючи єдине джерело правди, яке дозволяє нам краще зрозуміти нашу модель. Для інтегрованого звіту все, що нам потрібно зробити, це мати однакову назву для наших завдань навчання та Clarify. Наступний приклад демонструє, як ми можемо інтегрувати звіти за допомогою Модель XGBoost прогнозувати доходи дорослих у Сполучених Штатах. Модель використовує Набір даних UCI для дорослих. Для цієї вправи ми припускаємо, що модель уже навчена і що ми вже розрахували дані, модель і конфігурації зміщення.

with Run(
    experiment_name='clarify-experiment',
    run_name="joint-run",
    sagemaker_session=sagemaker_session,
) as run:
    xgb.fit({"train": train_input}, logs=False)
    clarify_processor.run_bias(
        data_config=bias_data_config,
        bias_config=bias_config,
        model_config=model_config,
        model_predicted_label_config=predictions_config,
        pre_training_methods="all",
        post_training_methods="all",
    )
    clarify_processor.run_explainability(
        data_config=explainability_data_config,
        model_config=model_config,
        explainability_config=shap_config,
    )

Завдяки такому налаштуванню ми отримуємо комбіноване подання, яке включає показники моделі, спільні вхідні та вихідні дані, а також звіти Clarify для статистичних зміщень моделі та пояснюваності.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Висновок

У цьому дописі ми досліджували нове покоління SageMaker Experiments, інтегровану частину SageMaker SDK. Ми продемонстрували, як реєструвати робочі процеси ML з будь-якого місця за допомогою нового класу Run. Ми представили новий користувальницький інтерфейс Experiments, який дозволяє відстежувати експерименти та будувати графіки для метрики одного циклу, а також порівнювати кілька циклів за допомогою нової можливості аналізу. Ми надали приклади експериментів із журналюванням із блокнота SageMaker Studio та навчального завдання SageMaker Studio. Нарешті, ми показали, як інтегрувати навчання моделі та звіти SageMaker Clarify в уніфіковане подання, що дозволить вам краще зрозуміти вашу модель.

Ми заохочуємо вас випробувати нові функції Experiments і зв’язатися з Спільнота машинного навчання та ШІ якщо у вас є запитання чи відгуки!


Про авторів

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Майра Ладейра Танке є спеціалістом з машинного навчання в AWS. Маючи досвід роботи в галузі Data Science, вона має 9-річний досвід проектування та створення програм машинного навчання з клієнтами в різних галузях. Як технічний керівник, вона допомагає клієнтам прискорити досягнення бізнес-цінності за допомогою нових технологій та інноваційних рішень. У вільний час Майра любить подорожувати та проводити час із сім’єю в теплому місці.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Мані Хануджа є спеціалістом із штучного інтелекту та машинного навчання SA в Amazon Web Services (AWS). Вона допомагає клієнтам, які використовують машинне навчання, щоб вирішувати їхні бізнес-задачі за допомогою AWS. Вона проводить більшу частину свого часу, глибоко занурюючись і навчаючи клієнтів проектам AI/ML, пов’язаним з комп’ютерним баченням, обробкою природної мови, прогнозуванням, машинним навчанням на межі тощо. Вона захоплюється ML at edge, тому вона створила власну лабораторію з автономним комплектом і виробничою лінією для виробництва прототипів, де проводить багато свого вільного часу.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Девен Ци є інженером з розробки програмного забезпечення в AWS. Наразі вона бере участь у створенні колекції сервісів та інструментів платформи в AWS SageMaker, щоб допомогти клієнтам зробити їхні проекти ML успішними. Вона також прагне донести концепцію MLO до ширшої аудиторії. Поза роботою Дьюен любить грати на віолончелі.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Абхішек Агарвал є старшим менеджером із продуктів Amazon SageMaker. Він захоплюється роботою з клієнтами та робить машинне навчання доступнішим. У вільний час Абхішек любить малювати, їздити на велосипеді та вивчати інноваційні технології.

Експерименти Amazon SageMaker наступного покоління – організовуйте, відстежуйте та порівнюйте тренінги машинного навчання в масштабі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Дана Бенсон є інженером-програмістом, який працює в команді Amazon SageMaker Experiments, Lineage та Search. До того як приєднатися до AWS, Дана витрачала час на роботу з функцією розумного дому в Alexa та мобільне замовлення в Starbucks.

Часова мітка:

Більше від AWS Машинне навчання