Generative Data Intelligence

Прискорення робочих процесів ML за допомогою локального режиму Amazon SageMaker Studio та підтримки Docker | Веб-сервіси Amazon

Дата:

Ми раді оголосити про дві нові можливості в Студія Amazon SageMaker що прискорить ітераційну розробку для практиків машинного навчання (ML): локальний режим і підтримка Docker. Розробка моделі ML часто передбачає повільні цикли повторення, коли розробники перемикаються між кодуванням, навчанням і розгортанням. Кожен крок вимагає очікування запуску віддалених обчислювальних ресурсів, що затримує перевірку реалізацій і отримання відгуків про зміни.

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

Підтримка локального режиму та Docker пропонує спрощений робочий процес для перевірки змін коду та створення прототипів моделей за допомогою локальних контейнерів, що працюють на ноутбуці SageMaker Studio

екземпляр. У цьому дописі ми допоможемо вам налаштувати локальний режим у SageMaker Studio, запустити зразкове навчальне завдання та розгорнути модель на Amazon SageMaker кінцева точка із блокнота SageMaker Studio.

Локальний режим SageMaker Studio

SageMaker Studio представляє локальний режим, який дає вам змогу запускати навчання SageMaker, робити висновок, пакетне перетворення та виконувати завдання обробки безпосередньо на екземплярах блокнота JupyterLab, редакторі коду або SageMaker Studio Classic, не потребуючи віддалених обчислювальних ресурсів. Переваги використання локального режиму включають:

  • Миттєва перевірка та тестування робочих процесів безпосередньо в інтегрованих середовищах розробки (IDE)
  • Швидша ітерація через локальні прогони для невеликих завдань для перевірки результатів і раннього виявлення проблем
  • Покращена ефективність розробки та налагодження завдяки виключенню очікування віддаленого навчання
  • Миттєвий відгук про зміни коду перед виконанням повних завдань у хмарі

На наступному малюнку показано робочий процес із використанням локального режиму на SageMaker.

Робочий процес у локальному режимі на SageMaker

Щоб використовувати локальний режим, установіть instance_type='local' під час виконання завдань SDK SageMaker Python, таких як навчання та висновки. Це запустить їх на примірниках, які використовуються вашими IDE SageMaker Studio, замість надання хмарних ресурсів.

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

Підтримка Docker у SageMaker Studio

SageMaker Studio тепер також дозволяє створювати та запускати контейнери Docker локально на вашому ноутбуці SageMaker Studio. Ця нова функція дозволяє створювати та перевіряти зображення Docker у SageMaker Studio перед використанням їх для навчання SageMaker і висновків.

Наступна діаграма ілюструє високорівневу оркестровку Docker у SageMaker Studio.

архітектура оркестровки Docker високого рівня в SageMaker Studio

Завдяки підтримці Docker у SageMaker Studio ви можете:

  • Створюйте контейнери Docker з інтегрованими моделями та залежностями безпосередньо в SageMaker Studio
  • Усуньте необхідність зовнішніх процесів збірки Docker, щоб спростити створення образу
  • Запустіть контейнери локально, щоб перевірити функціональність перед розгортанням моделей у виробництві
  • Повторно використовуйте локальні контейнери під час розгортання в SageMaker для навчання та розміщення

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

Передумови

Щоб використовувати локальний режим у програмах SageMaker Studio, необхідно виконати наступні попередні умови:

  • Для отримання зображень із Реєстр контейнерів Amazon Elastic (Amazon ECR), обліковий запис, на якому розміщено зображення ECR, повинен надавати дозвіл на доступ користувача Управління ідентифікацією і доступом (IAM) роль. Роль домену також має надавати доступ до Amazon ECR.
  • Щоб увімкнути локальний режим і можливості Docker, ви повинні встановити EnableDockerAccess значення параметра true для домену DockerSettings використання Інтерфейс командного рядка AWS (AWS CLI). Це дозволяє користувачам у домені використовувати локальний режим і функції Docker. За замовчуванням локальний режим і Docker вимкнено в SageMaker Studio. Будь-які існуючі програми SageMaker Studio потрібно буде перезапустити, щоб оновлення служби Docker набуло чинності. Нижче наведено приклад команди AWS CLI для оновлення домену SageMaker Studio:
aws sagemaker --region <REGION> 
update-domain --domain-id <DOMAIN-ID> 
--domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:CompleteLayerUpload",
        "ecr:UploadLayerPart",
        "ecr:InitiateLayerUpload",
        "ecr:BatchCheckLayerAvailability",
        "ecr:PutImage"
      ],
      "Resource": "arn:aws:ecr:us-east-2:123456789012:repository/<repositoryname>"
    },
    {
      "Effect": "Allow",
      "Action": "ecr:GetAuthorizationToken",
      "Resource": "*"
    }
  ]
}

Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму

SageMaker Studio JupyterLab і редактор коду (на основі Code-OSS, код Visual Studio – відкритий вихідний код), розширює SageMaker Studio, щоб ви могли писати, тестувати, налагоджувати та запускати свою аналітику та код ML за допомогою популярної легкої IDE. Докладніше про те, як почати роботу з SageMaker Studio IDE, див Підвищення продуктивності в Amazon SageMaker Studio: представлення JupyterLab Spaces і генеративних інструментів ШІ та Нове – редактор коду на основі Code-OSS VS Code Open Source, тепер доступний в Amazon SageMaker Studio. Виконайте наступні дії:

Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму

  • Створіть новий термінал.  Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму
  • Установіть Docker CLI та плагін Docker Compose, дотримуючись наведених нижче інструкцій GitHub репо. Якщо ланцюгові команди не вдаються, виконуйте команди одну за одною.

Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму Ви повинні оновити SageMaker SDK до останньої версії.

  • прогін pip install sagemaker -Uq в терміналі.

Лише для редактора коду вам потрібно налаштувати середовище Python для запуску в поточному терміналі.

  • У редакторі коду на меню Файл¸ вибрати переваги та Налаштування.

Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму

  • Знайдіть і виберіть Термінал: Виконати в каталозі файлів.

Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму

  • У редакторі коду або JupyterLab відкрийте scikit_learn_script_mode_local_training_and_serving папки та запустіть scikit_learn_script_mode_local_training_and_serving.py файлу.

Ви можете запустити сценарій, вибравши прогін у редакторі коду або за допомогою CLI в терміналі JupyterLab. Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму Ви зможете побачити, як модель тренується на місці. Потім ви локально розгортаєте модель на кінцевій точці SageMaker і обчислюєте середньоквадратичну помилку (RMSE). Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму Запускайте файли Python у просторах SageMaker Studio за допомогою локального режиму

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

Ви також можете використовувати блокнот у SageMaker Studio Classic для виконання невеликого навчального завдання CIFAR10 використовуючи локальний режим, розгорніть модель локально та виконайте висновок.

Налаштуйте свій блокнот

Щоб налаштувати блокнот, виконайте такі кроки:

  • Відкрийте SageMaker Studio Classic і клонуйте наступне GitHub репо.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • Відкрийте pytorch_local_mode_cifar10.ipynb notebook in blog/pytorch_cnn_cifar10.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • для зображеннявиберіть PyTorch 2.1.0 Python 3.10 CPU Optimized.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму Переконайтеся, що ваш блокнот відображає правильний екземпляр і вибір ядра. Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • Відкрийте термінал, вибравши Запустіть термінал у поточному образі SageMaker.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • Установіть Docker CLI та плагін Docker Compose, дотримуючись наведених нижче інструкцій GitHub репо.

Оскільки ви використовуєте Docker із SageMaker Studio Classic, видаліть sudo під час виконання команд, оскільки термінал уже працює під керуванням суперкористувача. Для SageMaker Studio Classic команди встановлення залежать від ОС образу програми SageMaker Studio. Наприклад, фреймворки на основі DLC базуються на Ubuntu, у якому працюватимуть наведені нижче інструкції. Однак для образу на основі Debian, як-от DataScience Images, ви повинні дотримуватися наведених нижче інструкцій GitHub репо. Якщо ланцюгові команди не вдаються, виконуйте команди одну за одною. Ви повинні побачити версію Docker. Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • Залиште вікно терміналу відкритим, поверніться до блокнота та почніть запускати його клітинку за клітинкою.

Обов’язково запустіть клітинку з pip install -U sagemaker тому ви використовуєте останню версію SageMaker Python SDK.

Місцеве навчання

Коли ви починаєте виконувати локальне завдання навчання SageMaker, ви побачите такі рядки журналу:

INFO:sagemaker.local.image:'Docker Compose' found using Docker CLI.
INFO:sagemaker.local.local_session:Starting training job

Це означає, що навчання проводилося локально за допомогою Docker.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

Будьте терплячі, поки pytorch-training:2.1-cpu-py310 Зображення Docker витягнуто. Через великий розмір (5.2 ГБ) це може зайняти кілька хвилин.

Зображення Docker зберігатимуться в кореневому томі примірника програми SageMaker Studio, який недоступний для кінцевих користувачів. Єдиний спосіб отримати доступ до образів Docker і взаємодіяти з ними — через доступні операції Docker API.

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

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

8zlz1zbfta-sagemaker-local exited with code 0
Aborting on container exit...
Container 8zlz1zbfta-sagemaker-local  Stopping
Container 8zlz1zbfta-sagemaker-local  Stopped
INFO:sagemaker.local.image:===== Job Complete =====

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

Локальний висновок

Виконайте такі дії:

  • Розгорніть кінцеву точку SageMaker за допомогою локального режиму SageMaker.

Будьте терплячі, поки pytorch-inference:2.1-cpu-py310 Зображення Docker витягнуто. Через великий розмір (4.32 ГБ) це може зайняти кілька хвилин.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • Викликати кінцеву точку SageMaker, розгорнуту локально, використовуючи тестові зображення.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

Ви зможете побачити передбачені класи: жаба, корабель, автомобіль і літак:

Predicted:  frog ship  car plane

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • Оскільки локальна кінцева точка SageMaker все ще працює, поверніться до відкритого вікна терміналу та перелічіть запущені контейнери:

docker ps

Ви зможете побачити біг pytorch-inference:2.1-cpu-py310 контейнер, що підтримує кінцеву точку SageMaker.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • Щоб вимкнути локальну кінцеву точку SageMaker і зупинити запущений контейнер, оскільки одночасно можна запускати лише одну локальну кінцеву точку, запустіть код очищення.

Симулюйте навчання та висновки в SageMaker Studio Classic за допомогою локального режиму

  • Щоб переконатися, що контейнер Docker не працює, ви можете перейти до відкритого вікна терміналу, запустити docker ps і переконатися, що запущених контейнерів немає.
  • Якщо ви бачите, що контейнер працює, біжіть docker stop <CONTAINER_ID> щоб зупинити це.

Поради щодо використання локального режиму SageMaker

Якщо ви використовуєте SageMaker вперше, зверніться до Тренувати моделі машинного навчання. Щоб дізнатися більше про розгортання моделей для висновку за допомогою SageMaker, див Розгортайте моделі для висновків.

Майте на увазі такі рекомендації:

  • Друк вхідних і вихідних файлів і папок, щоб зрозуміти набір даних і завантаження моделі
  • Використовуйте 1–2 епохи та невеликі набори даних для швидкого тестування
  • Попередньо встановіть залежності у Dockerfile, щоб оптимізувати налаштування середовища
  • Ізолюйте код серіалізації в кінцевих точках для налагодження

Налаштуйте встановлення Docker як конфігурацію життєвого циклу

Ви можете визначити процес встановлення Docker як сценарій налаштування життєвого циклу (LCC), щоб спростити налаштування щоразу, коли запускається новий простір SageMaker Studio. LCC — це сценарії, які SageMaker запускає під час таких подій, як створення простору. Зверніться до лабораторія Юпітера, Редактор кодуабо SageMaker Studio Classic Налаштування LCC (за допомогою docker install cli як посилання), щоб дізнатися більше.

Налаштуйте встановлення Docker як конфігурацію життєвого циклу

Налаштуйте встановлення Docker як конфігурацію життєвого циклу

Створюйте та тестуйте власні образи Docker у просторах SageMaker Studio

На цьому кроці ви встановлюєте Docker у простір програми JupyterLab (або редактор коду) і використовуєте Docker для створення, тестування та публікації власних зображень Docker за допомогою просторів SageMaker Studio. Пробіли використовуються для керування потребами в сховищі та ресурсах деяких програм SageMaker Studio. Кожен простір має зв’язок 1:1 із екземпляром програми. Кожна створена підтримувана програма отримує власний простір. Щоб дізнатися більше про простори SageMaker, див Підвищення продуктивності в Amazon SageMaker Studio: представлення JupyterLab Spaces і генеративних інструментів ШІ. Переконайтеся, що ви надали новий простір із принаймні 30 ГБ пам’яті, щоб забезпечити достатньо місця для зберігання зображень і артефактів Docker.

Встановіть Docker всередині простору

Щоб інсталювати плагін Docker CLI та Docker Compose у просторі JupyterLab, виконайте наведені нижче команди. GitHub репо. Студія SageMaker підтримує лише Docker версії 20.10.X.

Створюйте образи Docker

Щоб підтвердити, що Docker встановлено та працює у вашому просторі JupyterLab, запустіть такий код:

# to verify docker service
sagemaker-user@default:~$ docker version
Client: Docker Engine - Community
Version:           24.0.7
API version:       1.41 (downgraded from 1.43)
Go version:        go1.20.10
Git commit:        afdd53b
Built:             Thu Oct 26 09:07:41 2023
OS/Arch:           linux/amd64
Context:           default

Server:
Engine:
Version:          20.10.25
API version:      1.41 (minimum version 1.12)
Go version:       go1.20.10
Git commit:       5df983c
Built:            Fri Oct 13 22:46:59 2023
OS/Arch:          linux/amd64
Experimental:     false
containerd:
Version:          1.7.2
GitCommit:        0cae528dd6cb557f7201036e9f43420650207b58
runc:
Version:          1.1.7
GitCommit:        f19387a6bec4944c770f7668ab51c4348d9c2f38
docker-init:
Version:          0.19.0
GitCommit:        de40ad0

Щоб створити власний образ Docker у просторі JupyterLab (або редактора коду), виконайте такі дії:

  • Створіть порожній Dockerfile:

touch Dockerfile

  • Відредагуйте Dockerfile за допомогою таких команд, які створюють простий образ веб-сервера колби з базового зображення python:3.10.13-bullseye, розміщеного на Докер-концентратор:
# Use the specified Python base image
FROM python:3.10.13-bullseye

# Create a code dir
RUN mkdir /code/

# Set the working directory in the container
WORKDIR /code

# Upgrade pip and install required packages
RUN python3 -m pip install --upgrade pip && 
python3 -m pip install flask

# Copy the app.py file to the container
COPY app.py /code/

# Set the command to run the app
ENTRYPOINT ["python", "app.py"]

У наведеному нижче коді показано вміст прикладу файлу програми flask app.py:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def hello():
return jsonify({"response": "Hello"})

if __name__ == '__main__':
app.run(host='0.0.0.0', port=6006)

Крім того, ви можете оновити довідкові команди Dockerfile, щоб включити пакети та артефакти на ваш вибір.

  • Створіть образ Docker за допомогою еталонного файлу Docker:

docker build --network sagemaker --tag myflaskapp:v1 --file ./Dockerfile .

Include --network sagemaker у вашій команді збірки докерів, інакше збірка завершиться помилкою. Контейнери не можна запускати в стандартних мостах Docker або користувацьких мережах Docker. Контейнери працюють у тій же мережі, що й контейнер програми SageMaker Studio. Користувачі можуть використовувати лише sagemaker для назви мережі.

  • Коли ваша збірка буде завершена, перевірте, чи існує зображення. Повторно позначте збірку як зображення ECR і натисніть. Якщо у вас виникли проблеми з дозволом, виконайте команду aws ecr get-login-password… і спробуйте повторно запустити Docker push/pull:
sagemaker-user@default:~$ docker image list
REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
myflaskapp      v1        d623f1538f20   27 minutes ago   489MB

sagemaker-user@default:~$ docker tag myflaskapp:v1 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

sagemaker-user@default:~$ docker image list
REPOSITORY                                                  TAG       IMAGE ID       CREATED          SIZE
123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp     latest    d623f1538f20   27 minutes ago   489MB
myflaskapp                                                  v1        d623f1538f20   27 minutes ago   489MB

sagemaker-user@default:~$ aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

sagemaker-user@default:~$ docker push 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:latest

Тестування зображень Docker

Встановлення Docker у просторі SageMaker Studio JupyterLab (або редактора коду) дає змогу тестувати попередньо створені або спеціальні зображення Docker як контейнери (або контейнеризовані програми). У цьому розділі ми використовуємо команду docker run для надання контейнерів Docker у просторі SageMaker Studio для тестування контейнерних робочих навантажень, таких як веб-сервіси REST і сценарії Python. Виконайте наступні дії:

sagemaker-user@default:~$ docker image list
REPOSITORY                                                  TAG       IMAGE ID       CREATED       SIZE

  • Якщо тестове зображення не існує, запустіть docker pull, щоб отримати зображення на вашій локальній машині:

sagemaker-user@default:~$ docker pull 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

  • Якщо у вас виникли проблеми з автентифікацією, виконайте такі команди:

aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

  • Створіть контейнер для перевірки робочого навантаження:

docker run --network sagemaker 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

Це відкриває новий екземпляр контейнера та запускає програму, визначену за допомогою ENTRYPOINT Docker:

sagemaker-user@default:~$ docker run --network sagemaker 905418447590.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
* Serving Flask app 'app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:6006
* Running on http://169.255.255.2:6006

  • Щоб перевірити, чи ваша веб-кінцева точка активна, перейдіть за URL-адресою https://<sagemaker-space-id>.studio.us-east-2.sagemaker.aws/jupyterlab/default/proxy/6006/.

Ви повинні побачити відповідь JSON, подібну до наступного знімка екрана.

Налаштуйте встановлення Docker як конфігурацію життєвого циклу

Прибирати

Щоб уникнути непотрібних витрат, видаліть ресурси, які ви створили під час виконання прикладів у цій публікації:

  1. У вашому домені SageMaker Studio виберіть Номер-студіо Classic на панелі навігації, а потім виберіть Стоп.
  2. У вашому домені SageMaker Studio виберіть лабораторія Юпітера or Редактор коду на панелі навігації виберіть свою програму, а потім виберіть Стоп.

Висновок

Локальний режим SageMaker Studio та підтримка Docker дозволяють розробникам швидше створювати, тестувати та повторювати впровадження ML, не виходячи з робочого простору. Забезпечуючи миттєвий доступ до тестових середовищ і результатів, ці можливості оптимізують робочі процеси та підвищують продуктивність. Спробуйте підтримку локальної моделі SageMaker Studio та Docker за допомогою нашої функція швидкої реєстрації, що дозволяє за лічені хвилини створити новий домен для окремих користувачів. Поділіться своїми думками в коментарях!


Про авторів

Швета СінгхШвета Сінгх є старшим менеджером із продуктів у команді платформи Amazon SageMaker Machine Learning (ML) в AWS, очолює SageMaker Python SDK. Понад 5 років вона працювала в Amazon на кількох посадах. Вона має ступінь бакалавра наук у галузі комп’ютерної інженерії та ступінь магістра наук у галузі фінансової інженерії Нью-Йоркського університету

Ейтан СелаЕйтан Села є спеціалістом із генеративного штучного інтелекту та машинного навчання, архітектором рішень у AWS. Він працює з клієнтами AWS, щоб надавати вказівки та технічну допомогу, допомагаючи їм створювати та використовувати рішення Generative AI та Machine Learning на AWS. У вільний час Ейтан любить бігати підтюпцем і читати останні статті про машинне навчання.

Пранав МуртіПранав Мурті є архітектором спеціалістів із штучного інтелекту та ML в AWS. Він зосереджується на допомозі клієнтам створювати, навчати, розгортати та переносити робочі навантаження машинного навчання (ML) на SageMaker. Раніше він працював у напівпровідниковій промисловості, розробляючи моделі великого комп’ютерного зору (CV) і обробки природної мови (NLP) для вдосконалення напівпровідникових процесів за допомогою найсучасніших методів машинного навчання. У вільний час любить грати в шахи та подорожувати. Ви можете знайти Pranav на LinkedIn.

Муфаддал РохавалаМуфаддал Рохавала є інженером-програмістом в AWS. Він працює над бібліотекою SDK SageMaker Python для Amazon SageMaker. У вільний час він любить подорожі, активний відпочинок і є футбольним уболівальником.

spot_img

Остання розвідка

spot_img

Зв'яжіться з нами!

Привіт! Чим я можу вам допомогти?