Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon

Создатель мудреца Амазонки — это полностью управляемый сервис, который позволяет разработчикам и специалистам по обработке данных быстро и легко создавать, обучать и развертывать модели машинного обучения (ML) в любом масштабе. SageMaker упрощает развертывание моделей в рабочей среде напрямую через API-вызовы сервиса. Модели упаковываются в контейнеры для надежного и масштабируемого развертывания. Хотя он предоставляет различные точки входа, такие как SageMaker Python SDK, AWS SDK, консоль SageMaker и Студия Amazon SageMaker ноутбуков, чтобы упростить процесс обучения и развертывания моделей машинного обучения в большом масштабе, клиенты по-прежнему ищут лучшие способы развертывания своих моделей для тестирования на игровой площадке и оптимизации производственного развертывания.

Мы запускаем два новых способа упростить процесс упаковки и развертывания моделей с помощью SageMaker.

В этом посте мы представляем новый SDK SageMaker Python. ModelBuilder опыт, который направлен на то, чтобы свести к минимуму время обучения для новых пользователей SageMaker, таких как специалисты по обработке данных, а также помочь опытным инженерам MLOps максимально эффективно использовать услуги хостинга SageMaker. Он упрощает первоначальную настройку и развертывание, а также предоставляет рекомендации по использованию всех возможностей SageMaker. Мы предоставляем подробную информацию и примеры GitHub для этой новой возможности SageMaker.

Еще одним нововведением является использование нового интерактивного опыта развертывания в SageMaker Studio. Мы обсуждаем это во второй части.

Развертывание моделей на конечной точке SageMaker включает в себя ряд шагов по подготовке модели к размещению на конечной точке SageMaker. Это включает в себя получение артефактов модели в правильном формате и структуре, создание кода вывода и указание важных деталей, таких как URL-адрес изображения модели. Простой сервис хранения Amazon (Amazon S3) расположение артефактов модели, этапы сериализации и десериализации и необходимые Управление идентификацией и доступом AWS (IAM) для обеспечения соответствующих разрешений доступа. После этого конфигурация конечной точки требует определения типа вывода и настройки соответствующих параметров, таких как типы экземпляров, количество и распределение трафика между вариантами модели.

Чтобы еще больше помочь нашим клиентам при использовании хостинга SageMaker, мы представили новый ModelBuilder в SageMaker Python SDK, который обеспечивает следующие ключевые преимущества при развертывании моделей на конечных точках SageMaker:

  • Унифицирует процесс развертывания в разных платформах. – Новый опыт обеспечивает согласованный рабочий процесс для развертывания моделей, созданных с использованием различных платформ, таких как PyTorch, TensorFlow и XGBoost. Это упрощает процесс развертывания.
  • Автоматизирует развертывание модели – Такие задачи, как выбор подходящих контейнеров, захват зависимостей и обработка сериализации/десериализации, автоматизированы, что сокращает количество ручных усилий, необходимых для развертывания.
  • Обеспечивает плавный переход от локальной конечной точки к размещенной в SageMaker. – При минимальных изменениях кода модели можно легко перевести из локального тестирования в развертывание на конечной точке SageMaker. Живые журналы упрощают отладку.

В целом, SageMaker ModelBuilder упрощает и оптимизирует процесс упаковки модели для вывода SageMaker за счет обработки деталей низкого уровня и предоставляет инструменты для тестирования, проверки и оптимизации конечных точек. Это повышает производительность разработчиков и уменьшает количество ошибок.

В следующих разделах мы подробно углубимся в детали этой новой функции. Мы также обсудим, как развертывать модели на хостинге SageMaker с помощью ModelBuilder, что упрощает процесс. Затем мы познакомим вас с несколькими примерами различных платформ для развертывания как традиционных моделей машинного обучения, так и базовых моделей, обеспечивающих сценарии использования генерирующего искусственного интеллекта.

Знакомство с SageMaker ModelBuilder

Новый ModelBuilder — это класс Python, ориентированный на использование моделей машинного обучения, созданных с использованием таких платформ, как XGBoost или PyTorch, и преобразование их в модели, готовые к развертыванию в SageMaker. ModelBuilder обеспечивает build() функция, которая генерирует артефакты в соответствии с модельным сервером, и deploy() функция для развертывания локально или на конечной точке SageMaker. Внедрение этой функции упрощает интеграцию моделей со средой SageMaker, оптимизируя их производительность и масштабируемость. На следующей диаграмме показано, как ModelBuilder работает на высоком уровне.

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Класс ModelBuilder

Ассоциация Модельстроитель class предоставляет различные варианты настройки. Однако для развертывания модели платформы построитель модели просто ожидает модель, входные данные, выходные данные и роль:

class ModelBuilder( model, # model id or model object role_arn, # IAM role schema_builder, # defines the input and output mode, # select between local deployment and depoy to SageMaker Endpoints ...
)

Строитель схем

Ассоциация Строитель схем class позволяет вам определить входные и выходные данные для вашей конечной точки. Это позволяет разработчику схемы генерировать соответствующие функции маршалинга для сериализации и десериализации входных и выходных данных. Следующий файл класса предоставляет все возможности настройки:

class SchemaBuilder( sample_input: Any, sample_output: Any, input_translator: CustomPayloadTranslator = None, output_translator: CustomPayloadTranslator = None
)

Однако в большинстве случаев сработает только выборочный ввод и вывод. Например:

input = "How is the demo going?"
output = "Comment la démo va-t-elle?"
schema = SchemaBuilder(input, output)

Предоставляя образец ввода и вывода, SchemaBuilder может автоматически определять необходимые преобразования, делая процесс интеграции более простым. Для более сложных случаев использования существует возможность предоставления пользовательских функций перевода как для ввода, так и для вывода, гарантируя, что более сложные структуры данных также могут эффективно обрабатываться. Мы продемонстрируем это в следующих разделах, развертывая различные модели с различными платформами, используя ModelBuilder.

Опыт локального режима

В этом примере мы используем ModelBuilder для локального развертывания модели XGBoost. Вы можете использовать режим для переключения между локальным тестированием и развертыванием на конечной точке SageMaker. Сначала мы обучаем модель XGBoost (локально или в SageMaker) и сохраняем артефакты модели в рабочем каталоге:

# Train the model
model = XGBClassifier()
model.fit(X_train, y_train)
model.save_model(model_dir + "/my_model.xgb")

Затем мы создаем объект ModelBuilder, передавая фактический объект модели, SchemaBuilder который использует образцы тестовых входных и выходных объектов (те же входные и выходные данные, которые мы использовали при обучении и тестировании модели) для вывода необходимой сериализации. Обратите внимание, что мы используем Mode.LOCAL_CONTAINER чтобы указать локальное развертывание. После этого мы вызываем строить функция для автоматического определения поддерживаемого образа контейнера платформы, а также сканирования зависимостей. См. следующий код:

model_builder_local = ModelBuilder( model=model, schema_builder=SchemaBuilder(X_test, y_pred), role_arn=execution_role, mode=Mode.LOCAL_CONTAINER
)
xgb_local_builder = model_builder_local.build()

Наконец, мы можем назвать deploy функция в объекте модели, которая также обеспечивает ведение журнала в реальном времени для упрощения отладки. Вам не нужно указывать тип или количество экземпляров, поскольку модель будет развернута локально. Если вы предоставили эти параметры, они будут проигнорированы. Эта функция вернет объект-предиктор, который мы можем использовать для прогнозирования на основе тестовых данных:

# note: all the serialization and deserialization is handled by the model builder.
predictor_local = xgb_local_builder.deploy(
# instance_type='ml.c5.xlarge',
# initial_instance_count=1
) # Make prediction for test data. predictor_local.predict(X_test)

При желании вы также можете управлять загрузкой модели, предварительной и постобработкой, используя InferenceSpec. Более подробную информацию мы предоставим позже в этом посте. С использованием LOCAL_CONTAINER — отличный способ протестировать ваш скрипт локально перед его развертыванием на конечной точке SageMaker.

См. модель-строитель-xgboost.ipynb пример для проверки развертывания как локально, так и на конечной точке SageMaker, используя ModelBuilder.

Развертывание традиционных моделей на конечных точках SageMaker

В следующих примерах мы покажем, как использовать ModelBuilder для развертывания традиционных моделей машинного обучения.

Модели XGBoost

Как и в предыдущем разделе, вы можете развернуть модель XGBoost на конечной точке SageMaker, изменив mode параметр при создании ModelBuilder объект:

model_builder = ModelBuilder( model=model, schema_builder=SchemaBuilder(sample_input=sample_input, sample_output=sample_output), role_arn=execution_role, mode=Mode.SAGEMAKER_ENDPOINT
)
xgb_builder = model_builder.build()
predictor = xgb_builder.deploy( instance_type='ml.c5.xlarge', initial_instance_count=1
)

Обратите внимание: при развертывании на конечных точках SageMaker вам необходимо указать тип и количество экземпляров при вызове deploy функции.

См. модель-строитель-xgboost.ipynb пример развертывания модели XGBoost.

Модели Тритона

Вы можете использовать ModelBuilder для обслуживания моделей PyTorch на Сервер вывода Triton. Для этого вам необходимо указать model_server параметр как ModelServer.TRITON, передать модель и получить SchemaBuilder объект, для которого требуются образцы входных и выходных данных модели. ModelBuilder позаботится обо всем остальном за вас.

model_builder = ModelBuilder( model=model, schema_builder=SchemaBuilder(sample_input=sample_input, sample_output=sample_output), role_arn=execution_role, model_server=ModelServer.TRITON, mode=Mode.SAGEMAKER_ENDPOINT
) triton_builder = model_builder.build() predictor = triton_builder.deploy( instance_type='ml.g4dn.xlarge', initial_instance_count=1
)

Обратитесь к строитель-модель-triton.ipynb развернуть модель с помощью Triton.

Модели с обнимающими лицами

В этом примере мы покажем вам, как развернуть предварительно обученную модель трансформера, предоставленную Hugging Face, в SageMaker. Мы хотим использовать обнимающее лицо pipeline для загрузки модели, поэтому мы создаем специальную спецификацию вывода для ModelBuilder:

# custom inference spec with hugging face pipeline
class MyInferenceSpec(InferenceSpec): def load(self, model_dir: str): return pipeline("translation_en_to_fr", model="t5-small") def invoke(self, input, model): return model(input) inf_spec = MyInferenceSpec()

Мы также определяем ввод и вывод рабочей нагрузки вывода, определяя SchemaBuilder объект на основе ввода и вывода модели:

schema = SchemaBuilder(value,output)

Затем мы создаем ModelBuilder объект и разверните модель на конечной точке SageMaker, следуя той же логике, что показано в другом примере:

builder = ModelBuilder( inference_spec=inf_spec, mode=Mode.SAGEMAKER_ENDPOINT, # you can change it to Mode.LOCAL_CONTAINER for local testing schema_builder=schema, image_uri=image,
)
model = builder.build( role_arn=execution_role, sagemaker_session=sagemaker_session,
)
predictor = model.deploy( initial_instance_count=1, instance_type='ml.g5.2xlarge'
)

Обратитесь к модель-строитель-huggingface.ipynb для развертывания модели конвейера Hugging Face.

Развертывание базовых моделей на конечных точках SageMaker

В следующих примерах мы покажем, как использовать ModelBuilder для развертывания моделей фундамента. Как и в случае с моделями, упомянутыми ранее, все, что требуется, — это идентификатор модели.

Обниматься Face Hub

Если вы хотите развернуть базовую модель из Обниматься Face Hub, все, что вам нужно сделать, это передать предварительно обученный идентификатор модели. Например, следующий фрагмент кода развертывает мета-лама/Ллама-2-7b-hf моделировать локально. Вы можете изменить режим на Mode.SAGEMAKER_ENDPOINT для развертывания на конечных точках SageMaker.

model_builder = ModelBuilder( model="meta-llama/Llama-2-7b-hf", schema_builder=SchemaBuilder(sample_input, sample_output), model_path="/home/ec2-user/SageMaker/LoadTestResources/meta-llama2-7b", #local path where artifacts will be saved mode=Mode.LOCAL_CONTAINER, env_vars={ # Llama 2 is a gated model and requires a Hugging Face Hub token. "HUGGING_FACE_HUB_TOKEN": "<YourHuggingFaceToken>" }
)
model = model_builder.build()
local_predictor = model.deploy()

Для закрытых моделей в Hugging Face Hub вам необходимо запросить доступ через Hugging Face Hub и использовать связанный ключ, передав его в качестве переменной среды. HUGGING_FACE_HUB_TOKEN. Некоторые модели Hugging Face могут требовать доверия к удаленному коду. Его также можно установить как переменную среды, используя HF_TRUST_REMOTE_CODE, По умолчанию, ModelBuilder будет использовать вывод генерации текста обнимающего лица (TGI) в качестве базового контейнера для моделей Hugging Face. Если вы хотите использовать вывод больших моделей AWS (LMI) контейнеры, вы можете настроить model_server параметр как ModelServer.DJL_SERVING когда вы настраиваете ModelBuilder объект.

Изящная особенность ModelBuilder это возможность запускать локальную настройку параметров контейнера при использовании LOCAL_CONTAINER режим. Эту функцию можно использовать, просто запустив tuned_model = model.tune().

Обратитесь к демо-модель-строитель-обнимающее лицо-llama2.ipynb для развертывания модели Hugging Face Hub.

SageMaker JumpStart

Amazon SageMaker JumpStart также предлагает ряд предварительно обученных базовых моделей. Как и при развертывании модели из Hugging Face Hub, требуется идентификатор модели. Развертывание модели SageMaker JumpStart на конечной точке SageMaker так же просто, как запуск следующего кода:

model_builder = ModelBuilder( model="huggingface-llm-falcon-7b-bf16", schema_builder=SchemaBuilder(sample_input, sample_output), role_arn=execution_role
) sm_ep_model = model_builder.build() predictor = sm_ep_model.deploy()

Информацию обо всех доступных идентификаторах моделей SageMaker JumpStart см. Встроенные алгоритмы с предварительно обученной таблицей моделей, Ссылаться на модель-строитель-джампстарт-falcon.ipynb для развертывания модели SageMaker JumpStart.

Компонент вывода

ModelBulder позволяет использовать новую возможность компонента вывода в SageMaker для развертывания моделей. Дополнительную информацию о компонентах вывода см. Сократите затраты на развертывание модели в среднем на 50 %, используя новейшие функции SageMaker. Вы можете использовать компоненты вывода для развертывания с помощью ModelBuilder указав endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED в deploy() метод. Вы также можете использовать tune() метод, который выбирает оптимальное количество ускорителей и модифицирует его при необходимости.

resource_requirements = ResourceRequirements( requests={ "num_accelerators": 4, "memory": 1024, "copies": 1, }, limits={},
) goldfinch_predictor_2 = model_2.deploy( mode=Mode.SAGEMAKER_ENDPOINT, endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED, ... )

Обратитесь к модель-строитель-вывод-компонент.ipynb развернуть модель в качестве компонента вывода.

Настройка класса ModelBuilder

Ассоциация ModelBuilder класс позволяет вам настроить загрузку модели, используя InferenceSpec.

Кроме того, вы можете управлять сериализацией и десериализацией полезных данных и ответов, а также настраивать предварительную и постобработку с помощью CustomPayloadTranslator. Кроме того, если вам нужно расширить наши готовые контейнеры для развертывания модели в SageMaker, вы можете использовать ModelBuilder управлять процессом упаковки модели. В следующем разделе мы предоставим более подробную информацию об этих возможностях.

Спецификация вывода

Спецификация вывода предлагает дополнительный уровень настройки. Это позволяет вам определить, как загружается модель и как она будет обрабатывать входящие запросы на вывод. Через InferenceSpec, вы можете определить собственные процедуры загрузки для своих моделей, минуя механизмы загрузки по умолчанию. Эта гибкость особенно полезна при работе с нестандартными моделями или пользовательскими конвейерами вывода. Метод вызова можно настроить, что дает вам возможность настроить обработку входящих запросов моделью (предварительная и постобработка). Эта настройка может быть важна для обеспечения соответствия процесса вывода конкретным потребностям модели. См. следующий код:

class InferenceSpec(abc.ABC): @abc.abstractmethod def load(self, model_dir: str): pass @abc.abstractmethod def invoke(self, input_object: object, model: object): pass

Следующий код показывает пример использования этого класса:

class MyInferenceSpec(InferenceSpec): def load(self, model_dir: str): return // model object def invoke(self, input, model): return model(input)

CustomPayloadTranslator

При вызове конечных точек SageMaker данные отправляются через полезные данные HTTP с различными типами MIME. Например, изображение, отправленное в конечную точку для вывода, необходимо преобразовать в байты на стороне клиента и отправить через полезную нагрузку HTTP в конечную точку. Когда конечная точка получает полезную нагрузку, ей необходимо десериализовать строку байтов обратно к типу данных, ожидаемому моделью (также известному как десериализация на стороне сервера). После того как модель завершит прогнозирование, результаты необходимо сериализовать в байты, которые можно будет отправить обратно через полезную нагрузку HTTP пользователю или клиенту. Когда клиент получает байтовые данные ответа, ему необходимо выполнить десериализацию на стороне клиента, чтобы преобразовать байтовые данные обратно в ожидаемый формат данных, например JSON. Минимум, вам необходимо преобразовать данные для следующих (как пронумеровано на следующей схеме):

  1. Сериализация запроса на вывод (обрабатывается клиентом)
  2. Десериализация запроса вывода (обрабатывается сервером или алгоритмом)
  3. Вызов модели для полезной нагрузки
  4. Отправка полезных данных ответа обратно
  5. Сериализация ответа на вывод (обслуживается сервером или алгоритмом)
  6. Десериализация ответа на вывод (осуществляется клиентом)

На следующей диаграмме показан процесс сериализации и десериализации во время процесса вызова.

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

В следующем фрагменте кода мы покажем пример CustomPayloadTranslator когда необходима дополнительная настройка для обработки сериализации и десериализации на стороне клиента и сервера соответственно:

from sagemaker.serve import CustomPayloadTranslator # request translator
class MyRequestTranslator(CustomPayloadTranslator): # This function converts the payload to bytes - happens on client side def serialize_payload_to_bytes(self, payload: object) -> bytes: # converts the input payload to bytes ... ... return //return object as bytes # This function converts the bytes to payload - happens on server side def deserialize_payload_from_stream(self, stream) -> object: # convert bytes to in-memory object ... ... return //return in-memory object # response translator class MyResponseTranslator(CustomPayloadTranslator): # This function converts the payload to bytes - happens on server side def serialize_payload_to_bytes(self, payload: object) -> bytes: # converts the response payload to bytes ... ... return //return object as bytes # This function converts the bytes to payload - happens on client side def deserialize_payload_from_stream(self, stream) -> object: # convert bytes to in-memory object ... ... return //return in-memory object

В демо-модель-строитель-pytorch.ipynb блокноте мы демонстрируем, как легко развернуть модель PyTorch на конечной точке SageMaker с помощью ModelBuilder с CustomPayloadTranslator и InferenceSpec класса.

Этапная модель для развертывания

Если вы хотите подготовить модель для вывода или в реестре модели, вы можете использовать model.create() or model.register(). Включенная модель создается в службе, а затем ее можно развернуть позже. См. следующий код:

model_builder = ModelBuilder( model=model, schema_builder=SchemaBuilder(X_test, y_pred), role_arn=execution_role, )
deployable_model = model_builder.build() deployable_model.create() # deployable_model.register() for model registry

Используйте пользовательские контейнеры

SageMaker предоставляет готовые образы Docker за встроенные алгоритмы и поддерживаемые структуры глубокого обучения, используемые для обучения и вывода. Если готовый контейнер SageMaker не соответствует всем вашим требованиям, вы можете расширить существующий образ в соответствии со своими потребностями. Расширяя предварительно созданный образ, вы можете использовать включенные библиотеки и настройки глубокого обучения без необходимости создавать образ с нуля. Дополнительные сведения о расширении готовых контейнеров см. в документе SageMaker. ModelBuilder поддерживает варианты использования при использовании собственных контейнеров, расширенных из наших готовых контейнеров Docker.

Чтобы использовать собственный образ контейнера в этом случае, вам необходимо задать поля image_uri и model_server при определении ModelBuilder:

model_builder = ModelBuilder( model=model, # Pass in the actual model object. its "predict" method will be invoked in the endpoint. schema_builder=SchemaBuilder(X_test, y_pred), # Pass in a "SchemaBuilder" which will use the sample test input and output objects to infer the serialization needed. role_arn=execution_role, image_uri=image_uri, # REQUIRED FOR BYOC: Passing in image hosted in personal ECR Repo model_server=ModelServer.TORCHSERVE, # REQUIRED FOR BYOC: Passing in model server of choice mode=Mode.SAGEMAKER_ENDPOINT, dependencies={"auto": True, "custom": ["protobuf==3.20.2"]}
)

Здесь image_uri будет образ контейнера ARN, который хранится в вашей учетной записи. Реестр Amazon Elastic Container (Amazon ECR). Репозиторий. Один из примеров показан следующим образом:

# Pulled the xgboost:1.7-1 DLC and pushed to personal ECR repo
image_uri = "<your_account_id>.dkr.ecr.us-west-2.amazonaws.com/my-byoc:xgb"

Когда image_uri устанавливается, во время ModelBuilder В процессе сборки он пропустит автоматическое обнаружение изображения, поскольку указан URI изображения. Если model_server не установлен в ModelBuilder, вы получите сообщение об ошибке проверки, например:

ValueError: Model_server must be set when image_uri is set. Supported model servers: {<ModelServer.TRITON: 5>, <ModelServer.DJL_SERVING: 4>, <ModelServer.TORCHSERVE: 1>}

На момент публикации этого поста ModelBuilder поддерживает доставку собственных контейнеров, расширенных из наших готовые образы контейнеров DLC или контейнеры, созданные с использованием серверов моделей, например Библиотека Deep Java (DJL), Вывод генерации текста (TGI), ФакелСервироватьи Сервер вывода Triton.

Пользовательские зависимости

При запуске ModelBuilder.build(), по умолчанию он автоматически записывает вашу среду Python в requirements.txt файл и устанавливает ту же зависимость в контейнер. Однако иногда ваша локальная среда Python будет конфликтовать со средой в контейнере. ModelBuilder предоставляет вам простой способ изменить захваченные зависимости для устранения таких конфликтов зависимостей, позволяя вам предоставлять свои собственные конфигурации в ModelBuilder. Обратите внимание, что это касается только TorchServe и Triton с InferenceSpec. Например, вы можете указать зависимости входных параметров, которые представляют собой словарь Python, в ModelBuilder следующим образом:

dependency_config = { "auto" = True, "requirements" = "/path/to/your/requirements.txt" "custom" = ["module>=1.2.3,<1.5", "boto3==1.16.*", "some_module@http://some/url"]
} ModelBuilder( # Other params dependencies=dependency_config,
).build()

Мы определяем следующие поля:

  • автоматический – Стоит ли пытаться автоматически фиксировать зависимости в вашей среде.
  • большого города, — Строка пути к своему requirements.txt файл. (Это необязательно.)
  • изготовленный на заказ – Список любых других пользовательских зависимостей, которые вы хотите добавить или изменить. (Это необязательно.)

Если один и тот же модуль указан в нескольких местах, custom будет иметь наивысший приоритет, тогда requirementsи auto будет иметь наименьший приоритет. Например, предположим, что во время автоопределения ModelBuilder детектирует numpy==1.25И requirements.txt предоставляется файл, который определяет numpy>=1.24,<1.26. Кроме того, существует пользовательская зависимость: custom = ["numpy==1.26.1"], В этом случае, numpy==1.26.1 будет выбран, когда мы установим зависимости в контейнер.

Убирать

Когда вы закончите тестирование моделей, рекомендуется удалить конечную точку, чтобы сэкономить средства, если конечная точка больше не требуется. Вы можете следить за Убирать раздел в каждой демонстрационной записной книжке или используйте следующий код, чтобы удалить модель и конечную точку, созданную демонстрацией:

predictor.delete_model()
predictor.delete_endpoint()

Заключение

Новая возможность SageMaker ModelBuilder упрощает процесс развертывания моделей машинного обучения в рабочей среде SageMaker. Обрабатывая многие сложные детали за кулисами, ModelBuilder сокращает время обучения для новых пользователей и максимально повышает эффективность использования для опытных пользователей. Всего с помощью нескольких строк кода вы можете развернуть модели со встроенными платформами, такими как XGBoost, PyTorch, Triton и Hugging Face, а также модели, предоставленные SageMaker JumpStart, в надежные, масштабируемые конечные точки в SageMaker.

Мы призываем всех пользователей SageMaker опробовать эту новую возможность, обратившись к Модельстроитель страница документации. ModelBuilder теперь доступен всем пользователям SageMaker без дополнительной оплаты. Воспользуйтесь преимуществами этого упрощенного рабочего процесса, чтобы ускорить развертывание ваших моделей. Мы с нетерпением ждем возможности услышать, как ModelBuilder ускоряет жизненный цикл разработки вашей модели!

Особая благодарность Сирише Упадхьяяле, Раймонду Лю, Гэри Вангу, Дхавалу Пателю, Дипаку Гаргу и Раму Вегираджу.


Об авторах

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Мелани Ли, доктор философии, является старшим специалистом по искусственному интеллекту и машинному обучению TAM в AWS, базирующейся в Сиднее, Австралия. Она помогает корпоративным клиентам создавать решения с использованием передовых инструментов искусственного интеллекта и машинного обучения в AWS, а также предоставляет рекомендации по разработке и внедрению решений машинного обучения с учетом передового опыта. В свободное время она любит исследовать природу и проводить время с семьей и друзьями.

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Марк Карп является архитектором машинного обучения в команде Amazon SageMaker Service. Он фокусируется на помощи клиентам в проектировании, развертывании и управлении рабочими нагрузками машинного обучения в любом масштабе. В свободное время он любит путешествовать и исследовать новые места.

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Сэм Эдвардс— облачный инженер (AI/ML) в AWS Sydney, специализирующийся на машинном обучении и Amazon SageMaker. Он с энтузиазмом помогает клиентам решать проблемы, связанные с рабочими процессами машинного обучения, и создавать для них новые решения. Вне работы он любит заниматься ракетным спортом и путешествовать.

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Рагху Рамеша — старший архитектор решений машинного обучения в сервисной команде Amazon SageMaker. Он специализируется на оказании помощи клиентам в создании, развертывании и переносе рабочих нагрузок машинного обучения на SageMaker в любом масштабе. Он специализируется на машинном обучении, искусственном интеллекте и компьютерном зрении и имеет степень магистра компьютерных наук в Университете Техаса в Далласе. В свободное время увлекается путешествиями и фотографией.

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Шива Радж Котини работает главным менеджером по продукту в портфеле продуктов логического вывода Amazon SageMaker. Он занимается развертыванием моделей, настройкой производительности и оптимизацией в SageMaker для получения логических выводов.

Легко упаковывайте и развертывайте классические модели машинного обучения и LLM с помощью Amazon SageMaker, часть 1: Улучшения PySDK | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Мохан Ганди является старшим инженером-программистом в AWS. Он работает с AWS последние 10 лет и работал над различными сервисами AWS, такими как EMR, EFA и RDS. В настоящее время он сосредоточен на улучшении SageMaker Inference Experience. В свободное время любит пешие прогулки и марафоны.

Отметка времени:

Больше от Машинное обучение AWS