Terapkan model dari JumpStart menggunakan kubectl - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terapkan model dari JumpStart menggunakan kubectl

Langkah-langkah berikut menunjukkan cara menerapkan JumpStart model ke HyperPod klaster menggunakan kubectl.

Instruksi berikut berisi sel kode dan perintah yang dirancang untuk berjalan di terminal. Pastikan Anda telah mengonfigurasi lingkungan Anda dengan AWS kredensyal sebelum menjalankan perintah ini.

Prasyarat

Sebelum memulai, verifikasi bahwa Anda telah:

Penyiapan dan konfigurasi

  1. PilihWilayah Anda.

    export REGION=<region>
  2. Lihat semua model dan HyperPod cluster hub SageMaker publik.

  3. Pilih JumpstartModel dari JumpstartPublic Hub. JumpstartPublic hub memiliki sejumlah besar model yang tersedia sehingga Anda dapat NextToken menggunakan daftar berulang semua model yang tersedia di hub publik.

    aws sagemaker list-hub-contents --hub-name SageMakerPublicHub --hub-content-type Model --query '{Models: HubContentSummaries[].{ModelId:HubContentName,Version:HubContentVersion}, NextToken: NextToken}' --output json
    export MODEL_ID="deepseek-llm-r1-distill-qwen-1-5b" export MODEL_VERSION="2.0.4"
  4. Konfigurasikan ID model dan nama cluster yang telah Anda pilih ke dalam variabel di bawah ini.

    catatan

    Periksa dengan admin klaster Anda untuk memastikan izin diberikan untuk peran atau pengguna ini. Anda dapat menjalankan !aws sts get-caller-identity --query "Arn" untuk memeriksa peran atau pengguna mana yang Anda gunakan di terminal Anda.

    aws sagemaker list-clusters --output table # Select the cluster name where you want to deploy the model. export HYPERPOD_CLUSTER_NAME="<insert cluster name here>" # Select the instance that is relevant for your model deployment and exists within the selected cluster. # List availble instances in your HyperPod cluster aws sagemaker describe-cluster --cluster-name=$HYPERPOD_CLUSTER_NAME --query "InstanceGroups[].{InstanceType:InstanceType,Count:CurrentCount}" --output table # List supported instance types for the selected model aws sagemaker describe-hub-content --hub-name SageMakerPublicHub --hub-content-type Model --hub-content-name "$MODEL_ID" --output json | jq -r '.HubContentDocument | fromjson | {Default: .DefaultInferenceInstanceType, Supported: .SupportedInferenceInstanceTypes}' # Select and instance type from the cluster that is compatible with the model. # Make sure that the selected instance is either default or supported instance type for the jumpstart model export INSTANCE_TYPE="<Instance_type_In_cluster"
  5. Konfirmasikan dengan admin cluster namespace mana yang diizinkan untuk Anda gunakan. Admin seharusnya telah membuat akun hyperpod-inference layanan di namespace Anda.

    export CLUSTER_NAMESPACE="default"
  6. Tetapkan nama untuk titik akhir dan objek kustom yang akan dibuat.

    export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
  7. Berikut ini adalah contoh untuk penerapan deepseek-llm-r1-distill-qwen-1-5b model dari Jumpstart. Buat file yaml penerapan serupa berdasarkan model yang dipilih pada langkah di atas.

    cat << EOF > jumpstart_model.yaml --- apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: JumpStartModel metadata: name: $SAGEMAKER_ENDPOINT_NAME namespace: $CLUSTER_NAMESPACE spec: sageMakerEndpoint: name: $SAGEMAKER_ENDPOINT_NAME model: modelHubName: SageMakerPublicHub modelId: $MODEL_ID modelVersion: $MODEL_VERSION server: instanceType: $INSTANCE_TYPE metrics: enabled: true environmentVariables: - name: SAMPLE_ENV_VAR value: "sample_value" maxDeployTimeInSeconds: 1800 autoScalingSpec: cloudWatchTrigger: name: "SageMaker-Invocations" namespace: "AWS/SageMaker" useCachedMetrics: false metricName: "Invocations" targetValue: 10 minValue: 0.0 metricCollectionPeriod: 30 metricStat: "Sum" metricType: "Average" dimensions: - name: "EndpointName" value: "$SAGEMAKER_ENDPOINT_NAME" - name: "VariantName" value: "AllTraffic" EOF

Deploy model Anda

Perbarui konfigurasi kubernetes Anda dan terapkan model Anda
  1. Konfigurasikan kubectl untuk terhubung ke HyperPod cluster yang diatur oleh Amazon EKS.

    export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \ --query 'Orchestrator.Eks.ClusterArn' --output text | \ cut -d'/' -f2) aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
  2. Terapkan JumpStart model Anda.

    kubectl apply -f jumpstart_model.yaml
Pantau status deployment model Anda
  1. Verifikasi bahwa model inferensi berhasil di-deploy

    kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  2. Verifikasi bahwa titik akhir berhasil dibuat.

    aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
  3. Panggil titik akhir model Anda. Anda dapat secara terprogram mengambil contoh muatan dari objek. JumpStartModel

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name $SAGEMAKER_ENDPOINT_NAME \ --content-type "application/json" \ --body '{"inputs": "What is AWS SageMaker?"}' \ --region $REGION \ --cli-binary-format raw-in-base64-out \ /dev/stdout

Mengelola deployment Anda

Hapus penerapan JumpStart model Anda setelah Anda tidak lagi membutuhkannya.

kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
Pemecahan Masalah

Gunakan perintah debugging ini jika penerapan Anda tidak berfungsi seperti yang diharapkan.

  1. Periksa status deployment Kubernetes. Perintah ini memeriksa objek deployment Kubernetes yang mendasari yang mengelola pod yang menjalankan model Anda. Gunakan ini untuk memecahkan masalah penjadwalan pod, alokasi sumber daya, dan masalah startup container.

    kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  2. Periksa status sumber daya JumpStart model Anda. Perintah ini memeriksa JumpStartModel sumber daya kustom yang mengelola konfigurasi model tingkat tinggi dan siklus hidup penerapan. Gunakan ini untuk memecahkan masalah khusus model seperti kesalahan konfigurasi atau masalah pembuatan titik akhir SageMaker AI.

    kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  3. Periksa status semua objek Kubernetes. Perintah ini memberikan gambaran menyeluruh dari semua resource Kubernetes terkait di namespace Anda. Gunakan ini untuk pemeriksaan kesehatan cepat untuk melihat status keseluruhan pod, layanan, penerapan, dan sumber daya khusus yang terkait dengan penerapan model Anda.

    kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE