Subchapter 24.66
references/model-selection/overview.mdMarkdown7 KBView on GitHub
None — this skill can be entered directly.
Ambiguity gate: If it is unclear whether the user wants to fine-tune a model or deploy a base model as-is, you MUST ask before proceeding. Do not assume either path. Do NOT recommend, list, or name any models until this is resolved.
Recommend use-case-spec first: If no *_use_case_spec.md file exists for this use case, recommend creating one via references/use-case-specification/overview.md before filtering. This produces better results because the spec captures constraints that map to concrete filter values. If the user declines or provides a specific model name/ID, proceed without it. After making this recommendation, stop and wait for the user’s response. Do not continue with model selection in the same turn.
Base model filtering MUST use select-for-deployment: When making a final model selection or recommendation for deployment, you MUST follow references/select-for-deployment.md and use its scripts (get_deployable_models.py, filter_deployable_models.py). Do not make a final model selection or recommendation for deployment ad-hoc from your own knowledge.
Offer to create a use-case spec after filtering: If filtering was done without a spec, and no *_use_case_spec.md file exists for this use case, offer to create one to refine the criteria for future iterations.
No premature recommendations: You may provide an initial quick-filtered list of models based on what you know, but do NOT make a recommendation or suggest a specific model as “the best choice” until the full selection workflow (select-for-deployment scripts or Step 3A) has been followed. If you have NOT run get_deployable_models.py or get_model_names.py in this session, you MUST prefix any model list with:
⚠️ This is a preliminary list based on general knowledge. I have not yet queried all available models in your Hub. There may be better matches once we run the full selection workflow.
NEVER present a model list without stating whether it came from the Hub scripts or from static reference data.
Run:
python -c "import boto3; print(boto3.session.Session().region_name)"
None → STOP. Tell user: “Set your region via export AWS_DEFAULT_REGION=us-west-2 or aws configure.”List all available SageMaker Hubs in the user’s region by calling the SageMaker ListHubs API using the aws___call_aws tool.
From the results, filter out any hub whose HubDescription contains “AI Registry” — these do not contain JumpStart models.
The remaining hubs are eligible (e.g., SageMakerPublicHub and any private hubs).
If exactly one eligible hub exists, use it automatically — do not ask the user.
If multiple eligible hubs exist, present them to the user and ask which one to use. Example:
I found the following model hubs:
- SageMakerPublicHub — SageMaker Public Hub
- Private-Hub-XYZ — Private Hub models
Which hub would you like to use?
Store the selected hub name for use in subsequent steps.
Determine the user’s goal from the plan, conversation context, or use_case_spec.md (check the ## Intent section):
references/select-for-deployment.md and follow it through all steps (including hosting configuration selection). Then proceed to Step 4 below.If the intent is ambiguous, ask:
“Would you like to fine-tune a model, or deploy a base model as-is?”
First, retrieve all available SageMaker Hub model names by running: python model-selection/scripts/get_model_names.py <hub-name>. Note how many models the script returns.
Present all available models to the user with their licenses before making any recommendations. Cross-reference the model list with references/model-licenses.md and display each as <model name> - [<license>](<url>). For example: “Qwen3-4B - Apache 2.0 (opens in a new tab)“
Display every model — completeness is required:
get_model_names.py as its own separate line with its own license URL. The number of models you display MUST equal the number the script returned.Qwen3-32B text models vs. Qwen3-VL-27B vision models) are different models.Amazon Nova Lite vs. Amazon Nova Lite v2) are different models.If you already know the model the user wants to use (from conversation context or planning files), confirm that it’s in the list, display its license, and move on. Otherwise, help the user pick a model following the instructions in references/model-selection.md.
Important: Make sure to remember this list of available models when helping with model selection. Don’t recommend a model that’s not available to the user.
Present a summary to the user:
Here's what we've selected:
- Base model: [model name]
For the base model deployment path, also surface and carry forward the three fields resolved in
select-for-deployment.md Step 6:
- Model ID (Hub ID): [model_id]
- Instance type: [instance_type]
- Hosting configuration: [inference_config_name, or "none (base config)"]
model_id is the JumpStart Hub ID of the base model selected above (the (Hub ID) label is a
reminder to use that exact identifier, not a friendly name). model_id and instance_type are both
required; inference_config_name may be null when the model has no labeled configs. Carry all
three forward — do not drop any of them.
Ask if they’d like to proceed with this model.
references/model-selection.md — Fine-tuning model selection instructions and benchmark descriptionsreferences/select-for-deployment.md — Base model deployment selection sub-workflowreferences/model-licenses.md — Model license information for display during model selection