

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 MIG 提交任務
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission"></a>

**Topics**
+ [

## 使用 Kubernetes YAML
](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-kubectl)
+ [

## 使用 HyperPod CLI
](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-cli)
+ [

## 使用 MIG 進行模型部署
](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-deployment)
+ [

## 使用 HyperPod CLI
](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli)

## 使用 Kubernetes YAML
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-kubectl"></a>

```
apiVersion: batch/v1
kind: Job
metadata:
  name: mig-job
  namespace: default
spec:
  template:
    spec:
      containers:
      - name: pytorch
        image: pytorch/pytorch:latest
        resources:
          requests:
            nvidia.com/mig-1g.5gb: 1
            cpu: "100m"
            memory: "128Mi"
          limits:
            nvidia.com/mig-1g.5gb: 1
      restartPolicy: Never
```

## 使用 HyperPod CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-cli"></a>

使用 HyperPod CLI 部署具有 MIG 支援的 JumpStart 模型。下列範例示範 GPU 分割的新 CLI 參數：

```
# Deploy JumpStart model with MIG
hyp create hyp-jumpstart-endpoint \
  --model-id deepseek-llm-r1-distill-qwen-1-5b \
  --instance-type ml.p5.48xlarge \
  --accelerator-partition-type mig-2g.10gb \
  --accelerator-partition-validation True \
  --endpoint-name my-endpoint \
  --tls-certificate-output-s3-uri s3://certificate-bucket/ \
  --namespace default
```

## 使用 MIG 進行模型部署
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-deployment"></a>

HyperPod 推論允許透過 Studio Classic `kubectl`和 HyperPod CLI 在 MIG 設定檔上部署模型。若要在 上部署 JumpStart 模型`kubectl`，CRDs具有稱為 的欄位`spec.server.acceleratorPartitionType`，可將模型部署到所需的 MIG 設定檔。我們會執行驗證，以確保模型可以部署在 CRD 中選取的 MIG 設定檔上。如果您想要停用 MIG 驗證檢查，請使用 `spec.server.validations.acceleratorPartitionValidation`來 `False`。

### JumpStart 模型
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-jumpstart"></a>

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name: deepseek-model
  namespace: default
spec:
  sageMakerEndpoint:
    name: deepseek-endpoint
  model:
    modelHubName: SageMakerPublicHub
    modelId: deepseek-llm-r1-distill-qwen-1-5b
  server:
    acceleratorPartitionType: mig-7g.40gb
    instanceType: ml.p4d.24xlarge
```

### 使用 InferenceEndpointConfig 從 Amazon S3 部署模型
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-s3"></a>

InferenceEndpointConfig 可讓您從 Amazon S3 部署自訂模型。若要在 MIG 上部署模型，請在 `requests`和 中`spec.worker.resources`提及 MIG 設定檔`limits`。請參閱以下簡單的部署：

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: custom-model
  namespace: default
spec:
  replicas: 1
  modelName: my-model
  endpointName: my-endpoint
  instanceType: ml.p4d.24xlarge
  modelSourceConfig:
    modelSourceType: s3
    s3Storage:
      bucketName: my-model-bucket
      region: us-east-2
    modelLocation: model-path
  worker:
    resources:
      requests:
        nvidia.com/mig-3g.20gb: 1
        cpu: "5600m"
        memory: "10Gi"
      limits:
        nvidia.com/mig-3g.20gb: 1
```

### 使用 InferenceEndpointConfig 從 FSx for Lustre 部署模型
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-fsx"></a>

InferenceEndpointConfig 可讓您從 FSx for Lustre 部署自訂模型。若要在 MIG 上部署模型，請在 `requests`和 中`spec.worker.resources`提及 MIG 設定檔`limits`。請參閱以下簡單的部署：

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: custom-model
  namespace: default
spec:
  replicas: 1
  modelName: my-model
  endpointName: my-endpoint
  instanceType: ml.p4d.24xlarge
  modelSourceConfig:
    modelSourceType: fsx
    fsxStorage:
      fileSystemId: fs-xxxxx
    modelLocation: location-on-fsx
  worker:
    resources:
      requests:
        nvidia.com/mig-3g.20gb: 1
        cpu: "5600m"
        memory: "10Gi"
      limits:
        nvidia.com/mig-3g.20gb: 1
```

### 使用 Studio Classic UI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio"></a>

#### 使用 MIG 部署 JumpStart 模型
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-deploy"></a>

1. 開啟 **Studio Classic** 並導覽至 **JumpStart**

1. 瀏覽或搜尋所需的模型 （例如「DeepSeek」、「Llama」等）

1. 按一下模型卡，然後選取**部署**

1. 在部署組態中：
   + 選擇 **HyperPod** 作為部署目標
   + 從下拉式清單中選取已啟用 MIG 的叢集
   + 在**執行個體組態**欄位中：
     + 選取執行個體類型 （例如 `ml.p4d.24xlarge`)
     + 從可用的選項中選擇 **GPU 分割區類型** 
     + 設定**執行個體計數**和**自動調整規模**設定

1. 檢閱並按一下**部署**

1. 在**端點**區段中監控部署進度

#### 模型組態選項
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-config"></a>

**端點設定：**
+ **端點名稱** - 部署的唯一識別符
+ **變體名稱** - 組態變體 （預設：AllTraffic)
+ **執行個體類型** - 必須支援 GPU 分割區 (p 系列）
+ **MIG 設定檔** - GPU 分割區
+ **初始執行個體計數** - 要部署的執行個體數量
+ **自動擴展** - 根據流量啟用動態擴展

**進階組態：**
+ **模型資料位置** - 自訂模型的 Amazon S3 路徑
+ **容器映像** - 自訂推論容器 （選用）
+ **環境變數** - 特定模型組態
+ **Amazon VPC 組態** - 網路隔離設定

#### 監控部署的模型
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-monitor"></a>

1. 導覽至 **Studio Classic** > **部署** > **端點**

1. 選取已啟用 MIG 的端點

1. 檢視指標，包括：
   + **MIG 使用率** - 每個 GPU 分割區使用量
   + **記憶體使用**量 - 每個 GPU 分割區
   + **推論延遲** - 請求處理時間
   + **輸送量** - 每秒請求數

1. 設定 **Amazon CloudWatch 警示**以進行自動監控

1. 根據 MIG 使用率設定**自動擴展政策** 

## 使用 HyperPod CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli"></a>

### JumpStart 部署
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli-jumpstart"></a>

HyperPod CLI JumpStart 命令包含兩個用於 MIG 支援的新欄位：
+ `--accelerator-partition-type` - 指定 MIG 組態 （例如 mig-4g.20gb)
+ `--accelerator-partition-validation` - 驗證模型和 MIG 設定檔之間的相容性 （預設值：true)

```
hyp create hyp-jumpstart-endpoint \
  --version 1.1 \
  --model-id deepseek-llm-r1-distill-qwen-1-5b \
  --instance-type ml.p4d.24xlarge \
  --endpoint-name js-test \
  --accelerator-partition-type "mig-4g.20gb" \
  --accelerator-partition-validation true \
  --tls-certificate-output-s3-uri s3://my-bucket/certs/
```

### 自訂端點部署
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli-custom"></a>

若要透過自訂端點部署，請使用現有欄位`--resources-requests`和 `--resources-limits` 來啟用 MIG 設定檔功能：

```
hyp create hyp-custom-endpoint \
  --namespace default \
  --metadata-name deepseek15b-mig-10-14-v2 \
  --endpoint-name deepseek15b-mig-endpoint \
  --instance-type ml.p4d.24xlarge \
  --model-name deepseek15b-mig \
  --model-source-type s3 \
  --model-location deep-seek-15b \
  --prefetch-enabled true \
  --tls-certificate-output-s3-uri s3://sagemaker-bucket \
  --image-uri lmcache/vllm-openai:v0.3.7 \
  --container-port 8080 \
  --model-volume-mount-path /opt/ml/model \
  --model-volume-mount-name model-weights \
  --s3-bucket-name model-storage-123456789 \
  --s3-region us-east-2 \
  --invocation-endpoint invocations \
  --resources-requests '{"cpu":"5600m","memory":"10Gi","nvidia.com/mig-3g.20gb":"1"}' \
  --resources-limits '{"nvidia.com/mig-3g.20gb":"1"}' \
  --env '{
    "OPTION_ROLLING_BATCH":"vllm",
    "SERVING_CHUNKED_READ_TIMEOUT":"480",
    "DJL_OFFLINE":"true",
    "NUM_SHARD":"1",
    "SAGEMAKER_PROGRAM":"inference.py",
    "SAGEMAKER_SUBMIT_DIRECTORY":"/opt/ml/model/code",
    "MODEL_CACHE_ROOT":"/opt/ml/model",
    "SAGEMAKER_MODEL_SERVER_WORKERS":"1",
    "SAGEMAKER_MODEL_SERVER_TIMEOUT":"3600",
    "OPTION_TRUST_REMOTE_CODE":"true",
    "OPTION_ENABLE_REASONING":"true",
    "OPTION_REASONING_PARSER":"deepseek_r1",
    "SAGEMAKER_CONTAINER_LOG_LEVEL":"20",
    "SAGEMAKER_ENV":"1"
  }'
```