Generated banner for Model Deployment
Generated logo for Model Deployment

Model Deployment

AWS LabsOfficialPublished by AWS Labs

  • Skill
  • Workflow
  • Cloud and DevOps
  • Apache-2.0
  • Low risk
  • Has scripts

From the author

Generates code that deploys fine-tuned models from SageMaker Serverless Model Customization to SageMaker endpoints or Bedrock. Use when the user says "deploy my model", "create an endpoint", "make it available", or asks about deployment options. Identifies the correct deployment pathway (Nova vs OSS), generates deployment code, and handles endpoint configuration.
— the description by AWS Labs

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill guides users through the deployment process for LoRA fine-tuned Nova and OSS models originally trained via SageMaker Serverless Model Customization. It identifies the correct deployment pathway, verifies model eligibility, presents target options (SageMaker or Bedrock), displays relevant license terms, and generates the necessary Python code or Jupyter notebooks to execute the deployment.

What it does

  • Identifies training job details and model types from SageMaker metadata.
  • Determines eligible deployment targets based on model characteristics.
  • Displays required license agreements for the specific model.
  • Generates deployment code as either a Python script or Jupyter notebook.
  • Provides post-deployment summaries including invocation samples and cleanup instructions.

When to use it

  • When you need to deploy a LoRA fine-tuned model to a SageMaker endpoint.
  • When you want to make a fine-tuned model available via Amazon Bedrock.
  • When you need to generate deployment code for Nova or OSS models.
  • When you are unsure which deployment target is appropriate for your fine-tuned model.

Advantages

  • Automates the identification of deployment pathways.
  • Ensures consistent configuration through standardized code templates.
  • Provides clear, step-by-step guidance for complex AWS deployments.
  • Integrates license verification into the deployment workflow.

Usage examples

“Deploy my fine-tuned model.”
The agent will ask for the training job name, identify the model type, and guide you through selecting a deployment target.
“Create an endpoint for my Nova model.”
The agent will verify the model's eligibility, display the license, and generate the deployment code for SageMaker or Bedrock.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/awslabs/model-deployment/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip model-deployment.zip -d .agents/skills

Documentation by AWS Labs

Model Deployment

Identifies the correct deployment pathway based on model characteristics and generates deployment code.

Scope

This skill supports deploying Nova and OSS models that were fine-tuned through SageMaker Serverless Model Customization only.

Not supported:

  • Base models (not fine-tuned)

  • Models fine-tuned through other processes

  • Full Fine-Tuning (FFT) — only LoRA fine-tuned models are supported

Prerequisites

  • The SDK environment has been verified (SDK version, region, execution role). If not done, activate the sdk-getting-started skill first.


Principles

  1. One thing at a time. Each response advances exactly one decision.

  2. Confirm before proceeding. Wait for the user to agree before moving on. But don't re-ask questions already answered in the conversation — use what you know.

  3. Don't read files until you need them. Only read pathway references after the pathway is confirmed.

  4. Use what you know. If conversation history or artifacts already answer a question, confirm your understanding instead of asking again.

Workflow

Step 1: Identify the Training Job

You need the training job name or ARN. Check the conversation history first — the user may have already mentioned it, or it may be available from earlier steps in the workflow (e.g., fine-tuning). If not, ask the user.

Once you have the training job name or ARN, use the AWS MCP tool to look it up:

  1. Use the AWS MCP tool describe-training-job and extract:

    • S3 output path (from ModelArtifacts.S3ModelArtifacts or OutputDataConfig.S3OutputPath)

    • IAM role ARN (from RoleArn)

    • Region

  2. Use the AWS MCP tool list-tags on the training job ARN and extract:

    • Model ID from the sagemaker-studio:jumpstart-model-id tag

  3. Determine the model type from the model ID:

    • Contains "nova" (nova-micro, nova-lite, nova-pro) → Nova

    • Llama, Mistral, Qwen, GPT-OSS, DeepSeek, etc. → OSS

Unsupported models: This skill only supports OSS and Nova models that were LoRA fine-tuned through SageMaker Serverless Model Customization. If the model doesn't match, tell the user this skill can't help and suggest the finetuning skill.

Step 2: Determine Eligible Deployment Targets

Use the following table:

Model TypeEligible Targets
OSSSageMaker, Bedrock
NovaSageMaker, Bedrock

If only one target is eligible, confirm it with the user. Use details from Step 5.

If multiple targets are eligible, help the user decide. Use details from Step 5.

If no targets are eligible, tell the user and explain why.

Step 3: Let the User Choose a Deployment Target

Present the eligible options to the user. Present these details to help them decide between SageMaker and Bedrock, if both are available options:

SageMaker Endpoint:

  • Dedicated compute resources for consistent performance

  • Control instance types and scaling

  • Best for predictable workloads with specific latency requirements

Bedrock:

  • Fully managed serverless inference

  • Auto-scales instantly with no capacity planning

  • Pay per request

  • Best for variable workloads with fluctuating demand

Do NOT make a recommendation. Let the user choose.

Do NOT mention technical details like merged/unmerged weights, reference files, or APIs, unless the user asks.

⏸ Wait for user to select a deployment option.

Step 4: Display License Agreement

Before proceeding to deployment, display the model's license or service terms to the user.

  1. Read references/model-licenses.md and look up the model by its model ID (determined in Step 1).

  2. Follow the instructions in the Notes column — use the exact phrasing provided.

  3. If the model ID is not found in the table, warn the user that you could not find license information for their model and recommend they verify the license independently before proceeding.

⏸ Wait for the user to confirm before proceeding.

Step 5: Follow Pathway Workflow

Read the reference file for the selected pathway and follow its instructions.

Model TypeDeployment TargetReference
OSSSageMakerreferences/deploy-oss-sagemaker.md
OSSBedrockreferences/deploy-oss-bedrock.md
NovaSageMakerreferences/deploy-nova-sagemaker.md
NovaBedrockreferences/deploy-nova-bedrock.md
Step 6: Post-Deployment Summary

After deployment completes, provide the user with a summary. Cover these topics, using details from the pathway reference doc you followed in Step 5:

  • What was deployed — endpoint or model name, ARN, status

  • How to use it — sample invoke code for the specific deployment target

  • Cost — billing model (instance-based vs. pay-per-request) and what to expect

  • Cleanup — how to delete the endpoint or model when done

Troubleshooting

How to check if a model was LoRA or FFT fine-tuned

If deployment fails unexpectedly, the model may have been full fine-tuned (FFT) rather than LoRA. To check, download the training job's hydra config from its S3 output path at .hydra/config.yaml:

  • peft_config populated (r, alpha, dropout, etc.) → LoRA (supported)

  • peft_config: null → FFT (not supported by this skill)

Files

references/deploy-nova-sagemaker.md

Deploy Nova LoRA to SageMaker

Scenario

  • Model Type: Nova

  • Fine-tuning Method: LoRA

  • Deployment Target: SageMaker Single Model Endpoint

  • Approach: SageMaker ModelBuilder

Overview

Deploys a Nova fine-tuned model to a SageMaker endpoint using ModelBuilder.

Nova deploys as a model-on-variant (no inference components), so you invoke the endpoint directly without specifying an InferenceComponentName.

Required inputs (collected in the steps below):

  • Training job name

  • Instance type

  • IAM execution role ARN

  • AWS region

  • Endpoint name

Prerequisites

Requires SageMaker Python SDK >= 3.7.0 (installed by Cell 1).

Workflow

Important Instructions
  • Make sure to use dedicated tools instead of bash commands whenever possible

Step 1: Gather Training Job Name

The training job name was identified in Step 1 of the main workflow. Confirm you have it.

Step 2: Determine Instance Type

For this step, you need: the instance type.

First, determine the Nova variant from the training job's model package. Use your AWS tool to run sagemaker describe-training-job for the training job name and extract the OutputModelPackageArn from the response. Then inspect the model package to find the hub_content_name (e.g., nova-textgeneration-micro).

Supported instances by Nova variant (smallest to largest). Larger instances support longer context lengths.

Nova Micro (nova-textgeneration-micro): ml.g5.12xlarge, ml.g5.24xlarge, ml.g6.12xlarge, ml.g6.24xlarge, ml.g6.48xlarge, ml.p5.48xlarge

Nova Lite (nova-textgeneration-lite): ml.g6.48xlarge, ml.p5.48xlarge

Nova Lite v2 (nova-textgeneration-lite-v2): ml.p5.48xlarge

Nova Pro (nova-textgeneration-pro): ml.g6.48xlarge, ml.p5.48xlarge

Present the supported instance types and ask which one the user would like to use. The larger instances will be more expensive, but have larger context windows.

⏸ Wait for user to confirm before moving on.

Step 3: Verify IAM Role

Use the IAM role from the training job (extracted in Step 1 of the main workflow via describe-training-job). This role should already have the necessary SageMaker and S3 permissions. Confirm with the user.

Step 4: Confirm Region

The region was identified in Step 1 of the main workflow. Nova deployment is only supported in: us-east-1, us-west-2, eu-west-2, ap-northeast-1. If the region isn't supported, tell the user that SageMaker deployment is not supported for this model in this region.

Step 5: Choose Endpoint Name

Suggest a name based on the model, e.g., nova-micro-deploy-<timestamp>. Ask the user to confirm or provide their own.

⏸ Wait for user before moving on.

Step 6: Confirm Configuration

"Here's the deployment setup:

  • Model: [base-model-name] fine-tuned with LoRA (e.g., "Nova Micro fine-tuned with LoRA")

  • Deployment target: SageMaker Endpoint

  • Training Job: [name]

  • Instance Type: [type]

  • IAM Role: [arn]

  • Region: [region]

  • Endpoint Name: [name]

Does this look right?"

⏸ Wait for user approval.

Step 7: Generate Code

Read ../references/code_output_guide.md for output format rules.

If a project directory already exists (from earlier in the workflow), use it. Otherwise, activate the directory-management skill to set one up.

⏸ Wait for user.

Code Structure

Markdown Header
{
  "cell_type": "markdown",
  "metadata": {},
  "source": [
    "# Deploy Nova Fine-Tuned Model to SageMaker"
  ]
}
Cells

Each cell's content comes from ../code_templates/deploy-nova-sagemaker.py, split on the # Cell N: comments. Each marker starts a new notebook cell — everything between one marker and the next becomes that cell's content.

  • Cell 1: Setup (pip install)

  • Cell 2: Configuration

  • Cell 3: Build Model

  • Cell 4: Deploy Endpoint

  • Cell 5: Test Inference

Placeholders

Cell 2:

  • [REGION] → AWS region

  • [TRAINING_JOB_NAME] → Training job name

  • [ROLE_ARN] → IAM execution role ARN

  • [INSTANCE_TYPE] → SageMaker instance type (e.g., ml.g5.12xlarge)

  • [ENDPOINT_NAME] → Endpoint name

Step 8: Provide Run Instructions

To run:
1. Cell 1 — install SDK packages, then restart the kernel before continuing
2. Cell 2 — set configuration values
3. Cell 3 — build model via ModelBuilder (~30s, creates SageMaker Model resource)
4. Cell 4 — deploy endpoint (waits for InService, ~10-15 min)
5. Cell 5 — test inference with a sample prompt

Common Issues

  • "No module named 'sagemaker.core'" or "No module named 'sagemaker.train'": Re-run Cell 1 to install the required packages, then restart the kernel.

  • "Must setup local AWS configuration with a region": Set AWS_DEFAULT_REGION env var or configure ~/.aws/config

  • "Cannot create already existing endpoint configuration": An endpoint with that name already exists. Use a different name or delete the existing one first.

  • Endpoint fails to reach InService: Check CloudWatch logs for the endpoint. Common causes: wrong instance type for the model size, or IAM role missing permissions.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Python

Security

What our scanner noticed· Low risk

  • Instructions that use the network
  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
AWS Labs
Publisher
AWS Labs (Official)
Source
awslabs/agent-plugins · plugins/sagemaker-ai/skills/model-deployment · commit fbefb37
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • NOTICE (added by AutoGineer from NOTICE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by AWS Labs.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download model-deployment.zip