hf-cloud-serving-image-selection
Навык Hugging Face помогает выбрать serving container и актуальный image URI перед размещением модели на SageMaker endpoint. Его задача — предотвратить типичную ошибку, когда архитектура модели и код выглядят правильно, но контейнер, tag или региональный URI не подходят и endpoint заканчивает health-check failure. Источник требует не брать URI из памяти и не вставлять в deployment-код случайный hardcoded tag: сначала нужно открыть официальный каталог AWS Deep Learning Containers и выбрать образ для нужной семьи и платформы SageMaker. Главное правило — при совместимости выбирать Hugging Face-curated image, а не generic image только потому, что в generic-репозитории опубликована более новая версия движка. Для текстовых LLM используется huggingface-vllm, для мультимодальных сценариев — huggingface-vllm-omni, для embeddings и encoder cross-encoder reranker — TEI, для обычных classifier, NER, QA и summarization — Hugging Face Inference Toolkit CPU. Для diffusion источник направляет к DJL Inference, а при специальном запросе SGLang — к Hugging Face SGLang. Generic vLLM допустим только после подтверждённой несовместимости, отсутствия подходящего HF tag в целевом регионе без возможности mirror или при известной проблеме образа. Более высокий номер версии сам по себе не является основанием для fallback. Выбор reranker требует отдельной проверки архитектуры, а не доверия имени задачи. Encoder cross-encoder с архитектурой вида ForSequenceClassification относится к TEI; generative reranker на causal language model, например семейство Qwen3-Reranker, относится к Hugging Face vLLM. Перед созданием ресурсов источник предлагает одним HTTP GET прочитать config.json модели и проверить architectures. Если этого не сделать, можно потратить цикл создания endpoint на контейнер, который загрузит модель, но отвергнет её тип classifier. Порядок работы фиксирован: определить модель и регион, открыть раздел нужной семьи в AWS-каталоге, выбрать самый новый ряд с платформой SageMaker внутри этой семьи, заменить placeholder региона, передать URI в deploy.py или deploy_async.py и отдельно проверить требования окружения. Для TEI вариант выбирается по instance type: ml.g*, ml.p* и ml.inf* требуют GPU image, а ml.c*, ml.m* и ml.t* — CPU image. Для vLLM tag с cu130 или выше нужен InferenceAmiVersion al2-ami-sagemaker-inference-gpu-3-1; старые cu124/cu128 этого override не требуют. Это обязательная часть совместимости, а не косметический параметр. Для Hugging Face LLM источник перечисляет обязательные переменные SM_VLLM_MODEL, SM_VLLM_HOST со значением 0.0.0.0, SM_VLLM_TRUST_REMOTE_CODE и при необходимости HUGGING_FACE_HUB_TOKEN. Длину контекста, использование GPU, tensor parallel и dtype следует задавать осознанно, потому что defaults могут не соответствовать fine-tune или размеру инстанса. Небольшие embeddings не следует автоматически отправлять на GPU, а квоты SageMaker нужно проверять до рекомендации типа инстанса: нулевая GPU-квота приводит к ResourceLimitExceeded. Ограничения также являются частью выбора. VPC без NAT не сможет скачать образы из public.ecr.aws; региональные AWS ECR URI предпочтительнее, а mirror требует отдельного скрипта и доступов Docker/AWS. TGI в источнике считается непригодным для новых моделей и не должен выбираться по умолчанию. Известный дефект GPU-тегов huggingface-pytorch-inference с NCCL не исправляется перебором соседних tag; источник предлагает DJL или BYOC. Сам skill не создаёт endpoint и не подтверждает runtime-совместимость без проверки каталога, региона, config.json, квот, AMI и фактического cold start.
Для чего подходит
- Выбор image для LLM serving
- Подготовка embedding и reranking inference
- Настройка deployment в SageMaker
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/huggingface/skills/tree/main/skills/hf-cloud-serving-image-selection