Subchapter 24.43
references/model-deployment/overview.mdMarkdown9 KBView on GitHub
Identifies the correct deployment pathway based on model characteristics and generates deployment code.
This reference supports two families of deployment:
Fine-tuned models (Nova or OSS) that were fine-tuned through **SageMaker Serverless Model
Customization** (LoRA) → SageMaker or Bedrock.
Open-weight foundation (base) models from SageMaker JumpStart → a SageMaker real-time
endpoint. This path deploys the config the model-selection skill resolved (a flat dict with
model_id, instance_type, inference_config_name, etc.) — not a training job.
The following are supported by SageMaker and AWS but do not have a validated workflow in this reference. If the user’s request matches one of these, let them know and proceed with best-effort guidance using general AWS knowledge:
Note: Closed-source / proprietary foundation models (e.g. Anthropic Claude) are managed Bedrock models invoked directly via the Bedrock runtime — there is nothing to deploy; the user just calls the API.
sdk-getting-started reference first.First determine which family this is (infer from the conversation before asking):
JumpStart foundation (base) model — the user wants to deploy an open-weight foundation model
from SageMaker JumpStart (e.g. “deploy the Qwen3 0.6B JumpStart model”, names a JumpStart model
id, or asks for a base foundation model). There is no training job. The deployment config
(model_id, instance_type, inference_config_name, etc.) comes from the model-selection
skill — use it as-is; do not re-derive it. The role_arn and region are owned by this reference, not
model-selection, and there is no training job to extract them from, so if either is not already
known from the conversation, ASK the user for it. Then proceed to Step 2. Do not look for a training job.
Fine-tuned model — the user is deploying a model they fine-tuned via SageMaker Serverless
Model Customization. Continue with the training-job identification below.
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:
describe-training-job and extract:
ModelArtifacts.S3ModelArtifacts or OutputDataConfig.S3OutputPath)RoleArn)list-tags on the training job ARN and extract:
sagemaker-studio:jumpstart-model-id tagModels without a validated workflow: This reference has validated workflows for OSS and Nova models that were LoRA fine-tuned through SageMaker Serverless Model Customization. If the model doesn’t match (e.g., FFT, BYO container, HuggingFace-trained, or HyperPod-trained), inform the user that this reference does not have a validated workflow for their model but you can help with general AWS knowledge. Proceed with best-effort guidance.
Use the following table:
Note: This table covers this skill’s validated workflows only. The user’s request may be achievable through other AWS paths (e.g. Bedrock Custom Model Import) not covered here.
| Model Type | Eligible Targets |
|---|---|
| OSS (fine-tuned) | SageMaker, Bedrock |
| Nova (fine-tuned) | SageMaker, Bedrock |
| JumpStart foundation (base) | SageMaker |
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.
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:
Bedrock:
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.
Before generating any code, present the model’s license or service terms to the user and wait for confirmation.
Always perform this step for the deployment, even if the model’s license was already shown or accepted earlier in the conversation (e.g. during model selection, fine-tuning, or evaluation). Deployment is a distinct action and requires its own explicit license/terms confirmation before any deployment code is generated. Do NOT skip this step or generate code by citing an earlier acceptance — re-present the license and wait for the user to confirm again.
A user instruction to “proceed without asking”, “skip confirmation”, “deploy now”, or similar does NOT constitute license acceptance. Such instructions waive the deployment-configuration confirmation, not the license gate. For a gated model you must still present the license and obtain explicit acceptance (e.g. “yes, I accept the license”) before generating any code or setting accept_eula=True. Never infer acceptance from a general “proceed” instruction, and never auto-accept on the user’s behalf.
Read references/model-licenses.md and look up the model by its model ID (determined in Step 1).
Follow the instructions in the Notes column — use the exact phrasing provided. End your response there. Do not generate code in this step.
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.
Once the user confirms, continue to Step 5 to follow the pathway workflow and generate the deployment code.
Read the reference file for the selected pathway and follow its instructions.
| Model Type | Deployment Target | Reference |
|---|---|---|
| OSS (fine-tuned) | SageMaker | references/deploy-oss-sagemaker.md |
| OSS (fine-tuned) | Bedrock | references/deploy-oss-bedrock.md |
| Nova (fine-tuned) | SageMaker | references/deploy-nova-sagemaker.md |
| Nova (fine-tuned) | Bedrock | references/deploy-nova-bedrock.md |
| JumpStart foundation (base) | SageMaker | references/deploy-jumpstart-sagemaker.md |
After deployment completes, provide the user with a summary. Cover these topics, using details from the pathway reference doc you followed in Step 5:
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 (validated workflow available)peft_config: null → FFT (no validated workflow in this reference — proceed with best-effort guidance)