hf-cloud-sagemaker-production-defaults
Этот скилл предназначен для последнего шага развёртывания модели в Amazon SageMaker, когда уже выбраны тип конечной точки, роль IAM, URI контейнерного образа и, если он нужен, версия inference AMI. Его задача — не оставить вызов create_endpoint в виде минимального демонстрационного примера, а сразу собрать рабочую конфигурацию с масштабированием, наблюдаемостью и едиными тегами. Скилл описывает три варианта: обычную real-time endpoint, real-time endpoint с масштабированием до нуля через inference components и асинхронную endpoint, которая также может работать с нулевым числом инстансов. Для обычного сценария deploy.py создаёт SageMaker Model с образом, переменными окружения, ролью исполнения и, при необходимости, артефактами в S3; затем endpoint configuration с типом инстанса, начальным количеством и опциональным data capture; после этого создаёт endpoint, target tracking для числа вызовов на инстанс и CloudWatch alarms для задержек, ошибок и platform overhead. Для inference-component сценария deploy_ic.py сохраняет тот же общий набор ресурсов, но переносит роль исполнения в endpoint configuration, включает ManagedInstanceScaling и связывает модель с inference component. В этом варианте целью autoscaling становится component, а не variant. Асинхронный путь покрывает deploy_async.py. Data capture выключен по умолчанию, поскольку запись запросов и ответов в S3 создаёт постоянные расходы; его можно включить явным флагом --enable-data-capture. Для созданных ресурсов используется согласованный набор тегов, включая CreatedBy=agentic-deploy-skills, чтобы позднее было проще найти их для очистки. Сценарий для vLLM принимает имя модели, URI образа, роль, тип инстанса, регион и переменные SM_VLLM_MODEL, SM_VLLM_HOST, SM_VLLM_TRUST_REMOTE_CODE и SM_VLLM_MAX_MODEL_LEN. Для TEI embedding-сценария применяются HF_MODEL_ID и подходящий CPU-инстанс, а inference-ami-version относится к vLLM и не требуется для TEI. Источник отдельно связывает URI образа с каталогом AWS Deep Learning Containers, роль — с IAM preflight, регион — с обнаружением контекста AWS, а остальные значения — с моделью, планом и пользовательским выбором. Скрипт создаёт ресурсы по порядку, обрабатывает ошибки, ждёт состояния InService до 30 минут, сообщает причины отказа, регистрирует autoscaling и alarms, печатает команду teardown и выводит JSON с именами endpoint, configuration и model для последующей автоматизации. Состояние InService само по себе не считается доказательством готовности: Java-слой MMS может отвечать на ping, пока Python worker перезапускается. Поэтому перед завершением нужен настоящий вызов endpoint с ожидаемым HTTP 200 и разумным телом ответа, а также просмотр CloudWatch log group на маркеры Worker died, Load model failed и ImportError. Для асинхронной endpoint проверяется результат в S3, а не только факт постановки задания. invoke_endpoint.py принимает JSON через --payload или --payload-file, проверяет его и печатает ответ; он также избегает проблемы UTF-8 BOM, из-за которой SageMaker отклоняет JSON с ошибкой Unexpected UTF-8 BOM. Для thinking-моделей и generative reranker источник рекомендует completions API с точным raw prompt, одним токеном, нулевой температурой и logprobs, а не chat API, когда важны управление шаблоном и оценка первого yes/no токена. Масштабирование real-time endpoint до нуля требует именно inference components: variant-scoped target не может опуститься ниже одного инстанса. При нулевом количестве копий первый запрос ждёт пробуждения, поэтому такой режим подходит для редкого или планового трафика, но не для интерактивного SLA без допуска многоминутного cold start. Источник также указывает, что загрузка модели из HF Hub может занять 5–15 и более минут, а предварительное размещение весов в S3 сокращает этот путь; веса при пробуждении после простоя снова участвуют в критическом пути. Таким образом, скилл полезен для согласованного production-паттерна SageMaker: он соединяет создание ресурсов, autoscaling, alarms, проверку реальным запросом, диагностику worker и безопасное различие между обычной endpoint, TEI, vLLM, async и scale-to-zero режимами.
Для чего подходит
- Настройка SageMaker endpoint
- Включение autoscaling и CloudWatch alarms
- Подготовка real-time и async inference
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/huggingface/skills/tree/main/skills/hf-cloud-sagemaker-production-defaults