MLOps є ключовою дисципліною, яка часто контролює шлях до виробництва моделей машинного навчання (ML). Цілком природно зосередитися на одній моделі, яку ви хочете навчити та розгорнути. Однак насправді ви, швидше за все, працюватимете з десятками чи навіть сотнями моделей, і процес може включати кілька складних кроків. Тому важливо мати інфраструктуру для відстеження, навчання, розгортання та моніторингу моделей різної складності в масштабі. Ось де на допомогу приходять інструменти MLOps. Інструменти MLOps допомагають вам багаторазово та надійно створювати та спрощувати ці процеси в робочий процес, адаптований для ML.
Трубопроводи Amazon SageMaker, особливістю Amazon SageMaker, це спеціальна служба оркестровки робочих процесів для ML, яка допомагає автоматизувати наскрізні робочі процеси ML у великому масштабі. Він спрощує розробку та підтримку моделей ML, надаючи централізовану платформу для керування такими завданнями, як підготовка даних, навчання моделей, налаштування та перевірка. SageMaker Pipelines може допомогти вам оптимізувати керування робочим процесом, прискорити експерименти та легше перенавчити моделі.
У цій публікації ми висвітлюємо нову захоплюючу функцію SageMaker Pipelines, відому як Вибіркове виконання. Ця нова функція дає змогу вибірково запускати певні частини робочого циклу машинного навчання, що призводить до значної економії часу та обчислювальних ресурсів завдяки обмеженню виконання кроками конвеєра в межах і усуває необхідність виконувати кроки поза межами області. Крім того, ми досліджуємо різні випадки використання, де стають очевидними переваги використання Selective Execution, що ще більше зміцнює його ціннісну пропозицію.
Огляд рішення
SageMaker Pipelines продовжує вдосконалювати свій досвід розробників, випускаючи Вибіркове виконання. Конструктори ML тепер мають можливість вибирати конкретні кроки для виконання в конвеєрі, усуваючи необхідність повторного запуску всього конвеєра. Ця функція дає змогу повторно запускати певні ділянки конвеєра, змінюючи параметри часу виконання, пов’язані з вибраними кроками.
Важливо зауважити, що вибрані кроки можуть покладатися на результати невибраних кроків. У таких випадках результати цих невибраних кроків повторно використовуються з контрольного прогону поточної версії конвеєра. Це означає, що еталонний прогін має бути вже завершено. Еталонним прогоном за замовчуванням є останній прогін поточної версії конвеєра, але ви також можете використовувати інший прогін поточної версії конвеєра як еталон.
Загальний стан еталонного прогону має бути Successful, не вдалося or Зупинено. Не може бути Робота коли вибіркове виконання намагається використати свої виходи. Використовуючи вибіркове виконання, ви можете вибрати будь-яку кількість кроків для виконання, якщо вони утворюють безперервну частину конвеєра.
Наступна діаграма ілюструє поведінку конвеєра при повному прогоні.
Наступна діаграма ілюструє поведінку конвеєра за допомогою вибіркового виконання.
У наступних розділах ми покажемо, як використовувати вибіркове виконання для різних сценаріїв, включаючи складні робочі процеси в конвеєрних прямих ациклічних графіках (DAG).
Передумови
Щоб почати експериментувати з вибірковим виконанням, нам потрібно спочатку налаштувати такі компоненти вашого середовища SageMaker:
- SageMaker Python SDK – Переконайтеся, що у вас є оновлення SageMaker Python SDK встановлено у вашому середовищі Python. Ви можете запустити наступну команду зі свого блокнота або терміналу, щоб установити або оновити версію SDK SageMaker Python до 2.162.0 або вище:
python3 -m pip install sagemaker>=2.162.0
orpip3 install sagemaker>=2.162.0
. - Доступ до SageMaker Studio (необов’язково) - Студія Amazon SageMaker може бути корисним для візуалізації конвеєрів і візуальної взаємодії з уже існуючими конвеєрами ARN. Якщо у вас немає доступу до SageMaker Studio або ви використовуєте блокноти на вимогу чи інші IDE, ви можете стежити за цією публікацією та взаємодіяти зі своїми конвеєрними ARN за допомогою Python SDK.
Зразок коду для повного наскрізного проходження доступний у GitHub репо.
Setup
З sagemaker>=1.162.0
Python SDK, ми представили SelectiveExecutionConfig
класу в складі в sagemaker.workflow.selective_execution_config
модуль. Функція вибіркового виконання покладається на ARN конвеєра, який раніше було позначено як Наступник, не вдалося or Зупинено. Наступний фрагмент коду демонструє, як імпортувати SelectiveExecutionConfig
класу, отримати еталонний ARN конвеєра та зібрати пов’язані кроки конвеєра та параметри часу виконання, що керують виконанням конвеєра:
import boto3
from sagemaker.workflow.pipeline import Pipeline
from sagemaker.workflow.selective_execution_config import SelectiveExecutionConfig sm_client = boto3.client('sagemaker')
# reference the name of your sample pipeline pipeline_name = "AbalonePipeline"
# filter for previous success pipeline execution arns
pipeline_executions = [_exec for _exec in Pipeline(name=pipeline_name).list_executions()['PipelineExecutionSummaries'] if _exec['PipelineExecutionStatus'] == "Succeeded"
]
# get the last successful execution
latest_pipeline_arn = pipeline_executions[0]['PipelineExecutionArn']
print(latest_pipeline_arn)
>>> arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/x62pbar3gs6h # list all steps of your sample pipeline
execution_steps = sm_client.list_pipeline_execution_steps( PipelineExecutionArn=latest_pipeline_arn
)['PipelineExecutionSteps']
print(execution_steps)
>>> [{'StepName': 'Abalone-Preprocess', 'StartTime': datetime.datetime(2023, 6, 27, 4, 41, 30, 519000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2023, 6, 27, 4, 41, 30, 986000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'AttemptCount': 0, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-1:123123123123:processing-job/pipelines-fvsmu7m7ki3q-Abalone-Preprocess-d68CecvHLU'}}, 'SelectiveExecutionResult': {'SourcePipelineExecutionArn': 'arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/ksm2mjwut6oz'}}, {'StepName': 'Abalone-Train', 'StartTime': datetime.datetime(2023, 6, 27, 4, 41, 31, 320000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2023, 6, 27, 4, 43, 58, 224000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'AttemptCount': 0, 'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-1:123123123123:training-job/pipelines-x62pbar3gs6h-Abalone-Train-PKhAc1Q6lx'}}}, {'StepName': 'Abalone-Evaluate', 'StartTime': datetime.datetime(2023, 6, 27, 4, 43, 59, 40000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2023, 6, 27, 4, 57, 43, 76000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'AttemptCount': 0, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-1:123123123123:processing-job/pipelines-x62pbar3gs6h-Abalone-Evaluate-vmkZDKDwhk'}}}, {'StepName': 'Abalone-MSECheck', 'StartTime': datetime.datetime(2023, 6, 27, 4, 57, 43, 821000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2023, 6, 27, 4, 57, 44, 124000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'AttemptCount': 0, 'Metadata': {'Condition': {'Outcome': 'True'}}}] # list all configureable pipeline parameters # params can be altered during selective execution
parameters = sm_client.list_pipeline_parameters_for_execution( PipelineExecutionArn=latest_pipeline_arn
)['PipelineParameters']
print(parameters)
>>> [{'Name': 'XGBNumRounds', 'Value': '120'}, {'Name': 'XGBSubSample', 'Value': '0.9'}, {'Name': 'XGBGamma', 'Value': '2'}, {'Name': 'TrainingInstanceCount', 'Value': '1'}, {'Name': 'XGBMinChildWeight', 'Value': '4'}, {'Name': 'XGBETA', 'Value': '0.25'}, {'Name': 'ApprovalStatus', 'Value': 'PendingManualApproval'}, {'Name': 'ProcessingInstanceCount', 'Value': '1'}, {'Name': 'ProcessingInstanceType', 'Value': 'ml.t3.medium'}, {'Name': 'MseThreshold', 'Value': '6'}, {'Name': 'ModelPath', 'Value': 's3://sagemaker-us-east-1-123123123123/Abalone/models/'}, {'Name': 'XGBMaxDepth', 'Value': '12'}, {'Name': 'TrainingInstanceType', 'Value': 'ml.c5.xlarge'}, {'Name': 'InputData', 'Value': 's3://sagemaker-us-east-1-123123123123/sample-dataset/abalone/abalone.csv'}]
Use cases
У цьому розділі ми представляємо кілька сценаріїв, коли вибіркове виконання потенційно може заощадити час і ресурси. Ми використовуємо типовий потік конвеєра, який включає такі кроки, як вилучення даних, навчання, оцінка, реєстрація моделі та розгортання, як довідник для демонстрації переваг вибіркового виконання.
SageMaker Pipelines дозволяє визначати параметри часу виконання для вашого конвеєра за допомогою параметрів конвеєра. Коли запускається новий запуск, він зазвичай запускає весь конвеєр від початку до кінця. Проте, якщо кешування кроків увімкнено, SageMaker Pipelines намагатиметься знайти попередній запуск поточного кроку конвеєра з тими самими значеннями атрибутів. Якщо збіг знайдено, SageMaker Pipelines використовуватиме результати попереднього запуску замість повторного обчислення кроку. Зауважте, що навіть якщо кешування кроків увімкнено, SageMaker Pipelines за замовчуванням виконуватиме весь робочий процес до кінця.
З випуском функції вибіркового виконання тепер ви можете повторно запустити весь робочий процес конвеєра або вибірково запустити підмножину кроків, використовуючи попередній ARN конвеєра. Це можна зробити навіть без увімкненого кешування кроків. Наступні випадки використання ілюструють різні способи використання вибіркового виконання.
Випадок використання 1: Виконайте один крок
Науковці даних часто зосереджуються на етапі навчання конвеєра MLOps і не хочуть турбуватися про етапи попередньої обробки чи розгортання. Вибіркове виконання дозволяє дослідникам даних зосередитися лише на етапі навчання та змінювати параметри навчання або гіперпараметри на ходу, щоб покращити модель. Це може заощадити час і зменшити витрати, оскільки обчислювальні ресурси використовуються лише для виконання вибраних користувачем кроків конвеєра. Перегляньте наступний код:
# select a reference pipeline arn and subset step to execute
selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/9e3ljoql7s0n", selected_steps=["Abalone-Train"]
) # start execution of pipeline subset
select_execution = pipeline.start( selective_execution_config=selective_execution_config, parameters={ "XGBNumRounds": 120, "XGBSubSample": 0.9, "XGBGamma": 2, "XGBMinChildWeight": 4, "XGBETA": 0.25, "XGBMaxDepth": 12 }
)
На наступних малюнках показано конвеєр з одним кроком у процесі, а потім завершенням.
Варіант використання 2: запустіть кілька послідовних кроків конвеєра
Продовжуючи попередній варіант використання, фахівець з даних хоче навчити нову модель і оцінити її продуктивність на основі золотого тестового набору даних. Ця оцінка має вирішальне значення для того, щоб переконатися, що модель відповідає суворим інструкціям щодо приймального тестування користувача (UAT) або розгортання у виробництві. Однак фахівець з даних не хоче запускати весь робочий процес конвеєра або розгортати модель. Вони можуть використовувати Selective Execution, щоб зосередитися виключно на етапах навчання та оцінювання, заощаджуючи час і ресурси, водночас отримуючи необхідні результати перевірки:
# select a reference pipeline arn and subset step to execute
selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/9e3ljoql7s0n", selected_steps=["Abalone-Train", "Abalone-Evaluate"]
) # start execution of pipeline subset
select_execution = pipeline.start( selective_execution_config=selective_execution_config, parameters={ "ProcessingInstanceType": "ml.t3.medium", "XGBNumRounds": 120, "XGBSubSample": 0.9, "XGBGamma": 2, "XGBMinChildWeight": 4, "XGBETA": 0.25, "XGBMaxDepth": 12 }
)
Випадок використання 3: оновіть і повторно запустіть невдалі кроки конвеєра
Ви можете використовувати вибіркове виконання, щоб повторно запустити невдалі кроки в конвеєрі або відновити виконання конвеєра з невдалого кроку. Це може бути корисним для усунення несправностей і налагодження невдалих кроків, оскільки дозволяє розробникам зосередитися на конкретних проблемах, які потрібно вирішити. Це може призвести до більш ефективного вирішення проблем і швидшого часу ітерації. У наступному прикладі показано, як можна повторно запустити лише невдалий крок конвеєра.
# select a previously failed pipeline arn
selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/fvsmu7m7ki3q", selected_steps=["Abalone-Evaluate"]
) # start execution of failed pipeline subset
select_execution = pipeline.start( selective_execution_config=selective_execution_config
)
Крім того, фахівець з даних може відновити конвеєр від невдалого кроку до кінця робочого циклу, вказавши невдалий крок і всі наступні кроки в SelectiveExecutionConfig
.
Випадок використання 4: покриття трубопроводу
У деяких трубопроводах певні гілки запускаються рідше, ніж інші. Наприклад, може існувати гілка, яка запускається лише тоді, коли виконується певна умова. Важливо ретельно перевірити ці гілки, щоб переконатися, що вони працюють належним чином, коли все ж виникне збій. Тестуючи ці рідше запущені гілки, розробники можуть переконатися, що їхній конвеєр надійний і що механізми обробки помилок ефективно підтримують бажаний робочий процес і дають надійні результати.
selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/9e3ljoql7s0n", selected_steps=["Abalone-Train", "Abalone-Evaluate", "Abalone-MSECheck", "Abalone-FailNotify"]
)
Висновок
У цій публікації ми обговорювали функцію вибіркового виконання SageMaker Pipelines, яка дає вам змогу вибірково запускати певні етапи робочих процесів машинного навчання. Ця можливість веде до значної економії часу та обчислювальних ресурсів. Ми надали зразок коду в GitHub репо який демонструє, як використовувати вибіркове виконання, і представляє різні сценарії, коли це може бути вигідним для користувачів. Якщо ви хочете дізнатися більше про вибіркове виконання, зверніться до нашого Посібник розробника та Довідковий посібник з API.
Щоб детальніше ознайомитися з доступними кроками в робочому процесі SageMaker Pipelines, див Конвеєр побудови моделі Amazon SageMaker та Робочі процеси SageMaker. Крім того, у Приклади AWS SageMaker Репозиторій GitHub. Ці ресурси можуть додатково покращити ваше розуміння та допомогти вам скористатися всім потенціалом конвеєрів SageMaker і вибіркового виконання у ваших поточних і майбутніх проектах ML.
Про авторів
Пранав Мурті є архітектором спеціалістів із штучного інтелекту та ML в AWS. Він зосереджується на допомозі клієнтам створювати, навчати, розгортати та переносити робочі навантаження машинного навчання (ML) на SageMaker. Раніше він працював у напівпровідниковій промисловості, розробляючи моделі великого комп’ютерного зору (CV) і обробки природної мови (NLP) для вдосконалення напівпровідникових процесів. У вільний час любить грати в шахи та подорожувати.
Ахіл Нумарсу є старшим технічним менеджером із продуктів, який зосереджений на тому, щоб допомогти командам прискорити результати МЛ за допомогою ефективних інструментів і сервісів у хмарі. Він любить грати в настільний теніс і є фанатом спорту.
Нішант Крішнамурті є старшим інженером з розробки програмного забезпечення Amazon Stores. Він має ступінь магістра з комп’ютерних наук і наразі зосереджується на прискоренні впровадження МЛ у різних організаціях Amazon шляхом створення та впровадження рішень МЛ на SageMaker.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- ChartPrime. Розвивайте свою торгову гру за допомогою ChartPrime. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/unlocking-efficiency-harnessing-the-power-of-selective-execution-in-amazon-sagemaker-pipelines/
- : має
- :є
- :де
- $UP
- 1
- 100
- 12
- 2023
- 25
- 27
- 30
- 31
- 7
- 9
- a
- здатність
- МЕНЮ
- прискорювати
- прискорення
- прийняття
- доступ
- ациклічні
- Додатково
- Прийняття
- Перевага
- вигідний
- Переваги
- проти
- AI / ML
- ВСІ
- дозволяє
- вже
- Також
- змінений
- Amazon
- Amazon SageMaker
- Трубопроводи Amazon SageMaker
- Amazon Web Services
- an
- та
- будь-який
- підходи
- ЕСТЬ
- AS
- асоційований
- At
- Спроби
- автоматизувати
- доступний
- AWS
- BE
- оскільки
- ставати
- було
- поведінка
- Філія
- гілки
- будувати
- будівельники
- Створюємо
- але
- by
- CAN
- не може
- можливості
- випадок
- випадків
- централізована
- певний
- Chess
- Вибирати
- клас
- хмара
- код
- приходить
- повний
- Зроблено
- комплекс
- складності
- Компоненти
- обчислення
- комп'ютер
- Інформатика
- Комп'ютерне бачення
- стан
- триває
- Коштувати
- вирішальне значення
- Поточний
- В даний час
- Клієнти
- дані
- Підготовка даних
- вчений даних
- дата, час
- дефолт
- визначати
- Ступінь
- демонструвати
- демонструє
- розгортання
- розгортання
- бажаний
- деталь
- Розробник
- розробників
- розвивається
- розробка
- різний
- прямий
- обговорювалися
- робить
- Ні
- зроблений
- Не знаю
- безліч
- під час
- легко
- фактично
- ефективність
- ефективний
- усуваючи
- повноваження
- включений
- дозволяє
- кінець
- кінець в кінець
- інженер
- підвищувати
- забезпечувати
- Весь
- Навколишнє середовище
- оцінювати
- оцінка
- Навіть
- очевидний
- приклад
- Приклади
- захоплюючий
- виконувати
- виконання
- очікуваний
- досвід
- дослідити
- видобуток
- не вдалося
- зазнає невдачі
- Провал
- вентилятор
- швидше
- особливість
- кілька
- цифри
- фільтрувати
- знайти
- закінчення
- Перший
- потік
- Сфокусувати
- увагу
- фокусується
- стежити
- після
- для
- форма
- знайдений
- Безкоштовна
- часто
- від
- Повний
- далі
- Крім того
- майбутнє
- збирати
- отримати
- отримання
- GitHub
- Золотий
- управління
- графіки
- керівні вказівки
- Запрягання
- Мати
- he
- допомога
- корисний
- допомогу
- допомагає
- вище
- його
- тримає
- Як
- How To
- Однак
- HTML
- HTTPS
- Сотні
- if
- ілюструє
- реалізація
- імпорт
- важливо
- удосконалювати
- in
- includes
- У тому числі
- промисловість
- Інфраструктура
- оновлювати
- встановлювати
- встановлений
- замість
- взаємодіяти
- взаємодіючих
- в
- введені
- залучати
- питання
- IT
- ітерація
- ЙОГО
- JPG
- просто
- ключ
- відомий
- мова
- великий
- останній
- останній
- вести
- Веде за собою
- УЧИТЬСЯ
- вивчення
- менше
- як
- Ймовірно
- обмежуючий
- список
- Довго
- машина
- навчання за допомогою машини
- підтримувати
- обслуговування
- управління
- позначено
- матч
- Може..
- засоби
- механізми
- середа
- відповідає
- метадані
- може бути
- мігрувати
- ML
- MLOps
- модель
- Моделі
- змінювати
- Модулі
- монітор
- більше
- більш ефективний
- множинний
- повинен
- ім'я
- Природний
- Обробка природних мов
- Необхідність
- Нові
- nlp
- ноутбук
- зараз
- номер
- of
- часто
- on
- On-Demand
- ONE
- тільки
- or
- оркестровка
- Інше
- інші
- наші
- з
- Результат
- Результати
- загальний
- параметри
- частина
- шлях
- продуктивність
- трубопровід
- місце
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- ігри
- частина
- пошта
- потенціал
- потенційно
- влада
- підготовка
- представити
- представлений
- попередній
- раніше
- попередній
- вирішення проблем
- процес
- процеси
- обробка
- виробляти
- Product
- Production
- проектів
- пропозиція
- за умови
- забезпечення
- Python
- Реальність
- зменшити
- Реєстрація
- звільнити
- надійний
- покладатися
- Сховище
- ресурс
- ресурси
- в результаті
- результати
- резюме
- суворий
- міцний
- прогін
- біг
- пробіжки
- мудрець
- Трубопроводи SageMaker
- то ж
- зберегти
- економія
- Економія
- шкала
- сценарії
- наука
- вчений
- Вчені
- сфера
- Sdk
- розділ
- розділам
- побачити
- обраний
- селективний
- напівпровідник
- обслуговування
- Послуги
- комплект
- Показувати
- демонстрація
- значний
- спростити
- один
- уривок
- Софтвер
- розробка програмного забезпечення
- виключно
- затвердіння
- Рішення
- деякі
- спеціаліст
- конкретний
- SPORTS
- Прожектор
- Стажування
- старт
- стан
- Крок
- заходи
- Як і раніше
- магазинів
- раціоналізувати
- студія
- успіх
- успішний
- такі
- таблиця
- з урахуванням
- Приймати
- завдання
- команди
- термінал
- тест
- Тестування
- ніж
- Що
- Команда
- їх
- потім
- Там.
- отже
- Ці
- вони
- це
- ретельно
- через
- час
- times
- до
- інструменти
- трек
- поїзд
- Навчання
- Подорож
- спрацьовує
- правда
- типовий
- типово
- розуміння
- розблокування
- Оновити
- оновлений
- модернізація
- використання
- використання випадку
- користувач
- користувачі
- використання
- використовувати
- використовує
- перевірка достовірності
- значення
- Цінності
- різний
- перевірити
- версія
- бачення
- покрокове керівництво
- хотіти
- хоче
- способи
- we
- Web
- веб-сервіси
- коли
- який
- в той час як
- волі
- з
- в
- без
- Work
- працював
- робочий
- Робочі процеси
- турбуватися
- б
- Ти
- вашу
- зефірнет