Перейти к содержанию
Новое AiManual теперь в MAX Подписаться
Публикация AiManual

Деплой Kimi K3 на AWS: SageMaker HyperPod vs EKS — практическое руководство

Пошаговое руководство по развёртыванию Kimi K3 на AWS: сравниваем SageMaker HyperPod и EKS с Capacity Blocks. Конкретные YAML-манифесты, параметры vLLM (tensor-

Коротко

Что будет в материале

  1. 01

    Введение: почему деплой Kimi K3 требует особого подхода

  2. 02

    Архитектура Kimi K3 и требования к инфраструктуре

  3. 03

    Вариант 1: SageMaker HyperPod с Inference Operator

  4. 04

    Вариант 2: Amazon EKS с Capacity Blocks

Введение: почему деплой Kimi K3 требует особого подхода

Moonshot AI выпустила Kimi K3 - первую open-weight модель с 2.8 трлн параметров. Архитектура Mixture of Experts включает 896 экспертов, из которых 16 активны на каждый токен. Это ставит жёсткие требования к инфраструктуре: модель не помещается на одиночный GPU даже после агрессивного квантования. Для инженеров, планирующих внедрение, AWS предлагает два пути: управляемый SageMaker HyperPod с Inference Operator и самостоятельный Amazon EKS с Capacity Blocks. Оба варианта используют инстансы p6-b300 на базе 8×B300 Blackwell Ultra, vLLM-контейнер и MXFP4-квантование. Разница - в уровне контроля и операционной нагрузке.

Прямой ответ: SageMaker HyperPod снижает порог входа для команд без выделенной DevOps-группы, EKS даёт полный контроль над кластером ценой ручного управления. В этом руководстве разбираем оба подхода с конкретными конфигурациями, параметрами запуска vLLM и рекомендациями по выбору.

Если вы ещё не знакомы с архитектурой модели, начните с обзора Kimi K3: архитектура с 896 экспертами и стратегии инференса. Для критического анализа заявленных метрик читайте разбор отчёта Moonshot AI: ускорение 2.5× без доказательств.

Архитектура Kimi K3 и требования к инфраструктуре

Kimi K3 использует разреженную активацию экспертов: из 896 доступных экспертов на каждый токен срабатывают только 16. Это снижает вычислительную нагрузку, но предъявляет высокие требования к пропускной способности памяти - веса всех экспертов должны быть доступны в любой момент. Полный объём параметров в FP16 составляет около 5.6 ТБ. Без квантования для размещения потребовалось бы 30+ GPU H100 с 80 ГБ памяти каждый.

MXFP4-квантование сжимает модель до ~1.4 ТБ. Инстанс p6-b300 с восемью GPU B300 Blackwell Ultra даёт 1.536 ТБ HBM3e-памяти (8×192 ГБ). Оставшиеся 136 ГБ уходят на KV-кэш и служебные структуры. Tensor-parallel=8 распределяет модель по всем восьми GPU внутри инстанса - это минимальная конфигурация для работы.

Почему p6-b300 (8×B300 Blackwell Ultra) - минимальный порог

GPU B300 Blackwell Ultra оснащён 192 ГБ памяти HBM3e с пропускной способностью 8 ТБ/с. Восемь таких GPU в инстансе p6-b300 дают агрегированную пропускную способность 64 ТБ/с - критичный параметр для MoE-архитектуры, где эксперты постоянно подгружаются из памяти. Для сравнения: инстанс p5.48xlarge на H100 (8×80 ГБ) даёт только 640 ГБ суммарно. Даже с 4-битным квантованием модели потребовалось бы минимум три таких инстанса с InfiniBand-связью. p6-b300 решает задачу на одном узле.

MXFP4-квантование: баланс точности и производительности

MXFP4 - стандарт квантования для архитектуры Blackwell. В отличие от INT4, формат использует микроэкспоненту: блок из 32 значений получает общий 8-битный экспонентный коэффициент. Это сохраняет динамический диапазон и снижает деградацию точности на задачах с длинным контекстом. vLLM поддерживает MXFP4 начиная с версии 0.6.3 через бэкенд FP8 с аппаратным преобразованием на тензорных ядрах Blackwell. Ожидаемый рост перплексии на бенчмарках MMLU и HumanEval - в пределах 0.5-1.2% относительно FP16, что подтверждается ранними тестами сообщества.

Вариант 1: SageMaker HyperPod с Inference Operator

SageMaker HyperPod - управляемый сервис для распределённого обучения и инференса. Inference Operator автоматизирует оркестрацию: создаёт поды, распределяет модель по GPU, перезапускает упавшие реплики. Для Kimi K3 это означает, что команда не пишет Kubernetes-манифесты вручную - достаточно описать желаемое состояние.

Процесс состоит из трёх шагов. Создаёте кластер HyperPod с инстансами p6-b300 в регионе us-east-1 (доступность на август 2026). Устанавливаете Inference Operator через AWS Management Console или CLI. Применяете конфигурацию инференса с указанием образа vLLM и параметров модели.

Настройка Inference Operator для Kimi K3

Конфигурация Inference Operator задаётся в YAML. Ключевые поля: образ контейнера, переменные окружения для загрузки модели из HuggingFace или S3, ресурсные запросы. Для Kimi K3 обязательны специфичные парсеры - tool-call-parser и reasoning-parser, которые обрабатывают структурированные вызовы инструментов и цепочки рассуждений.

apiVersion: sagemaker.aws.amazon.com/v1
kind: InferenceComponent
metadata:
  name: kimi-k3-inference
spec:
  endpointName: kimi-k3-endpoint
  container:
    image: vllm/vllm-openai:latest
    env:
      - name: MODEL_ID
        value: "moonshotai/Kimi-K3-Instruct"
      - name: TENSOR_PARALLEL_SIZE
        value: "8"
      - name: DTYPE
        value: "auto"
      - name: TOOL_CALL_PARSER
        value: "kimi_k3"
      - name: REASONING_PARSER
        value: "kimi_k3"
      - name: MAX_MODEL_LEN
        value: "131072"
      - name: GPU_MEMORY_UTILIZATION
        value: "0.92"
    resources:
      requests:
        nvidia.com/gpu: 8
        memory: 1536Gi

Параметр TENSOR_PARALLEL_SIZE=8 распределяет модель по всем GPU инстанса. TOOL_CALL_PARSER и REASONING_PARSER со значением kimi_k3 активируют встроенные в vLLM обработчики для специфичного формата вывода Kimi K3. MAX_MODEL_LEN=131072 ограничивает контекстное окно для экономии KV-кэша - модель поддерживает до 1M токенов, но полное окно требует дополнительной памяти.

Автомасштабирование и отказоустойчивость

Inference Operator интегрируется с AWS Auto Scaling. При росте задержки выше порога (по умолчанию 500 мс на токен) добавляются новые реплики. При падении нагрузки лишние поды удаляются. Health checks проверяют доступность эндпоинта /health каждые 10 секунд. При отказе GPU или падении пода оператор автоматически перезапускает инференс на том же или соседнем инстансе. Среднее время восстановления - 45-90 секунд, включая загрузку модели из кэша.

Вариант 2: Amazon EKS с Capacity Blocks

EKS даёт полный контроль над Kubernetes-кластером. Для Kimi K3 критичен механизм Capacity Blocks - резервирование GPU-инстансов p6-b300 на заданный временной интервал. Без резервирования получить восемь B300 в одном регионе on-demand практически невозможно: спрос на Blackwell Ultra в 2026 году превышает предложение.

Процесс: создаёте EKS-кластер версии 1.31+, резервируете Capacity Block на 8+ часов, добавляете узлы с taint для гарантированного размещения подов инференса, разворачиваете vLLM через Helm-чарт или манифест.

Резервирование GPU через Capacity Blocks

Capacity Block бронируется через AWS CLI командой aws ec2 create-capacity-reservation. Указываете тип инстанса p6-b300.48xlarge, количество (минимум 1, для продакшена рекомендуется 2+), временной слот. Минимальная длительность бронирования - 8 часов, максимальная - 14 дней. На август 2026 доступны регионы us-east-1, us-west-2, eu-west-1. Стоимость резервирования фиксирована и не зависит от нагрузки - вы платите за инстансы, даже если они простаивают.

После создания Capacity Block в EKS добавляется managed node group с параметром capacity-reservation-id. Узлы автоматически получают taint capacity-block: reserved. Поды инференса должны иметь соответствующий toleration в спецификации.

Развертывание vLLM на EKS

Деплоймент vLLM на EKS требует ручной настройки PVC для кэширования модели, чтобы избежать загрузки 1.4 ТБ при каждом рестарте. Используйте EBS gp3 на 2 ТБ с provisioned IOPS 16000. Манифест деплоймента аналогичен конфигурации HyperPod, но добавляет toleration для Capacity Block и монтирование PVC.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kimi-k3-vllm
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kimi-k3
  template:
    metadata:
      labels:
        app: kimi-k3
    spec:
      tolerations:
        - key: "capacity-block"
          operator: "Equal"
          value: "reserved"
          effect: "NoSchedule"
      containers:
        - name: vllm
          image: vllm/vllm-openai:latest
          args:
            - "--model"
            - "moonshotai/Kimi-K3-Instruct"
            - "--tensor-parallel-size"
            - "8"
            - "--tool-call-parser"
            - "kimi_k3"
            - "--reasoning-parser"
            - "kimi_k3"
            - "--max-model-len"
            - "131072"
            - "--gpu-memory-utilization"
            - "0.92"
          resources:
            requests:
              nvidia.com/gpu: 8
              memory: 1536Gi
          volumeMounts:
            - name: model-cache
              mountPath: /root/.cache/huggingface
      volumes:
        - name: model-cache
          persistentVolumeClaim:
            claimName: kimi-k3-model-cache

HPA для инференса Kimi K3 настраивать не рекомендуется. Добавление новой реплики требует отдельного инстанса p6-b300 с собственным Capacity Block - масштабирование происходит не за секунды, а за часы. Для продакшена разумнее держать фиксированный пул из 2-3 реплик и балансировать нагрузку через Service типа ClusterIP с внутренним раунд-робином.

Сравнение SageMaker HyperPod и EKS: что выбрать?

Выбор сводится к приоритетам команды. HyperPod снижает операционную нагрузку: не нужно управлять Kubernetes, настраивать PVC, следить за taint и toleration. EKS даёт гибкость: кастомные сетевые политики, интеграция с Istio, тонкая настройка планировщика.

Критерий SageMaker HyperPod Amazon EKS + Capacity Blocks
Настройка YAML-конфигурация Inference Operator, 30-60 минут до первого инференса Полный Kubernetes-стек: кластер, узлы, PVC, деплоймент - 2-4 часа
Масштабирование Автоматическое по задержке, добавление реплик за 5-10 минут Ручное, требует резервирования Capacity Block на 8+ часов
Мониторинг CloudWatch + встроенные метрики инференса Prometheus + Grafana, настройка дашбордов вручную
Стоимость управления Надбавка HyperPod (~15% к стоимости инстансов) Стоимость EKS-кластера ($0.10/час) + трудозатраты DevOps
Кастомизация Ограничена параметрами Inference Operator Полный контроль: сеть, безопасность, кастомные операторы
Отказоустойчивость Автоматический перезапуск, 45-90 секунд восстановления Ручная настройка PodDisruptionBudget, liveness-проб

Стоимость: скрытые расходы и оптимизация

Основная статья расходов - инстансы p6-b300. On-demand цена на август 2026: $48.96/час в us-east-1. При круглосуточной работе одного инстанса это ~$35 800/месяц. Capacity Block даёт скидку 15-20% относительно on-demand, но обязывает платить за зарезервированное время независимо от фактической утилизации. HyperPod добавляет 15% к стоимости инстансов, но включает автоматизацию и поддержку.

Скрытые расходы EKS: хранение образа модели в ECR ($0.10/ГБ/месяц, для 1.4 ТБ это $143/месяц), межзональный трафик при Multi-AZ развёртывании ($0.01/ГБ), EBS для PVC ($0.08/ГБ/месяц для gp3). HyperPod включает кэширование модели без дополнительной платы. Для команды из двух инженеров, тратящих 40 часов в месяц на управление EKS-кластером, трудозатраты могут превысить надбавку HyperPod.

Заключение: практические рекомендации и следующие шаги

Оба подхода рабочие. SageMaker HyperPod выбирайте, если у вас нет выделенной DevOps-команды и нужен быстрый выход в продакшен. EKS с Capacity Blocks - если требуется интеграция с существующей Kubernetes-инфраструктурой, кастомные сетевые политики или тонкая настройка планировщика GPU.

Конкретный план действий: протестируйте оба варианта на тестовых данных объёмом 1000 запросов. Сравните медианную задержку, p99 и стоимость инференса на токен. HyperPod разворачивается быстрее и даёт предсказуемый результат, EKS требует больше усилий на старте, но окупается при сложных пайплайнах. Изучите документацию vLLM по парсерам kimi_k3 - от них зависит корректность обработки вызовов инструментов. Для глубокого понимания архитектуры модели рекомендуем разбор релиза весов Kimi K3: требования к железу и практические сценарии.

Подписаться на канал