Exam Room · Advanced Generative AI Developer

Cheat Sheet: Model Selection and Inference

· 18 min read

Generative AI Development · part of The Exam Room

A fast revision sheet for model choice and inference options across Amazon Bedrock and self-hosted SageMaker.

Services at a glance

Thing What it is Reach for it when
Amazon Nova Micro Text-only, lowest cost and latency in the family High-volume text tasks where speed and price win
Amazon Nova Lite / Pro Multimodal (text and image and video in), Pro is the higher-quality tier You need images or video understood; Pro when quality matters, Lite when cost does
Amazon Nova Canvas Image generation, legacy; EOL 30 Sep 2026 Nothing new; Stability AI took over the image slot
Amazon Nova Reel Video generation, legacy; EOL 30 Sep 2026 Nothing new; Luma Ray 2 took over the video slot
Amazon Titan Amazon text and embeddings models Embeddings for RAG and search; general text
Anthropic Claude Strong general reasoning and long context Complex reasoning, tool use, long documents
Meta Llama Open-weight text models on Bedrock Open-model preference within managed Bedrock
Mistral Efficient text models, some larger reasoning tiers Cost-efficient text; European provider preference
Cohere Text generation plus strong embed and rerank Embeddings and reranking for retrieval
AI21 Labs Jamba Long-context text models Long-context generation
Stability AI Image generation (Stable Image Core / Ultra, SD3.5 Large) The active text-to-image pick; us-west-2 for generation
Luma AI Ray 2 Short video generation, async job to S3 The active text-to-video pick; 5s or 9s, 540p or 720p
On-demand inference Pay per token, no commitment, quota-bound Spiky or unpredictable traffic; getting started
Provisioned Throughput Reserved model units per hour Steady high volume; the only path for some customised models
Batch inference Async S3-to-S3, roughly half the on-demand price Large offline jobs with no latency need
Cross-region inference profile Routes requests across regions for more throughput Bursty load that exceeds a single region’s quota
SageMaker hosting Self-host open or custom models on your endpoints Models not on Bedrock, or full control of serving
Intelligent Prompt Routing Routes within a model family to the cheapest tier meeting a quality bar Mixed request difficulty under one endpoint
AWS AppConfig Dynamic configuration a running service reads at request time, deployed with a bake time and CloudWatch-alarm rollback You want the model id, inference configuration, and prompt version held outside the code so a swap is a configuration deployment
AWS Well-Architected Tool, Generative AI Lens A structured review of a GenAI workload against the lens questions You need a tracked improvement plan with dated milestones over the workload, not a one-off opinion

Decision rules

  • If the task is text-only and high-volume, start at Nova Micro and only move up if quality falls short.
  • If input includes images or video, you need a multimodal model (Nova Lite/Pro, Claude, others), not Micro or Titan text.
  • If you need to generate images, reach for Stability; for video, Luma Ray 2. Nova Canvas and Nova Reel are legacy, reach end of life on 30 September 2026, and are not a choice for new work.
  • If you need embeddings for RAG, reach for Titan Embeddings or Cohere Embed, not a chat model.
  • If you are narrowing a shortlist, published performance benchmarks rank models against someone else’s tasks, so use them to cut the field; a Bedrock evaluation job over your own Golden datasetA versioned set of representative inputs with known-good expected outputs, run on every prompt or model change to catch regressions. settles which one ships.
  • Before any score is compared, run the limitation evaluation and drop the models that cannot do the job at all: context window, maximum output tokens, modalities, tool use, supported languages, region and cross-region availability, and whether the model supports fine-tuning and Provisioned Throughput.
  • If traffic is spiky and low commitment, use on-demand.
  • If volume is steady and high, price out Provisioned ThroughputReserved Bedrock capacity bought by the hour for a fixed term, paid for whether traffic fills it or not. against on-demand.
  • If you fine-tune a model on Bedrock, you must serve it on Provisioned Throughput; an imported model is different, billing by the Custom Model Units it occupies in five-minute windows and scaling to zero when idle.
  • If the job is large and offline with no latency need, use Batch inferenceSubmitting a bulk job of model calls to run asynchronously at a lower per-token price, trading immediacy for cost. for the discount.
  • If a single region’s throughput quota is the limit, enable a Cross-region inferenceLetting a request be served from any of several regions, raising effective throughput and riding out pressure in one of them. profile.
  • If data must stay in one geography, scope the inference profile to same-geography regions and check residency.
  • If the model is not on Bedrock, host it on SageMaker.
  • If a SageMaker endpoint sits idle between bursts, use serverless to scale to zero and accept cold starts.
  • If payloads are large or processing is slow, use SageMaker asynchronous inference with its queue.
  • If you score a whole dataset once with no live endpoint, use SageMaker batch transform.
  • If you host many models on shared infrastructure, use inference components for per-model resources and scaling, or a multi-model endpoint for a long tail of similar models sharing one container.
  • If requests vary in difficulty, put Intelligent Prompt Routing in front and let it pick the cheapest tier that clears the bar.
  • If failures are transient and sparse, retry with exponential backoff and jitter; if the dependency is failing most calls, open a circuit breaker and shed load until a probe says it has recovered.
  • If you run a circuit breaker, keep its state in a shared store such as DynamoDB, so every Lambda invocation and every Step Functions execution reads the same state; state held in process memory resets on the next cold start and each concurrent worker trips independently.

Traps

  • Nova Micro is text-only; picking it for an image or video task is wrong.
  • Nova Canvas and Nova Reel are on the legacy list; an account with no recent history of calling them is refused access, and both are withdrawn entirely on 30 September 2026, so do not design new work around either.
  • Video generation is asynchronous: Ray 2 runs through StartAsyncInvoke and delivers to S3, so there is no synchronous response to wait on.
  • Provisioned Throughput is not just a cost lever; for some customised models it is the only serving path, not an optimisation.
  • Batch inference is asynchronous and offline; it does not lower latency for live requests.
  • Cross-region inference profiles move data across regions, which can breach a data-residency requirement.
  • On-demand is quota-bound; hitting throttling means raising quota or moving to Provisioned Throughput, not retrying blindly.
  • SageMaker serverless has cold starts; do not pick it when consistent low latency matters.
  • Enabling model access in the console is a prerequisite; a model you have not enabled will not answer.
  • Model availability differs by region; a model in one region may be absent in another.
  • Bigger is not automatically better; the smallest model that clears the quality bar is usually the right pick on cost and latency.
  • SageMaker batch transform has no persistent endpoint; do not use it for real-time serving.
  • Asynchronous inference is for large payloads and long jobs, not a substitute for provisioned real-time throughput.
  • Fine-tuning can change how you serve, and which way it lands depends on the base model: a custom Nova or Llama 3.3 70B goes on demand, a custom Llama 3.1 8B cannot.
  • A hardcoded model id looks like a one-line change and behaves like an eight-deploy one once eight services call Bedrock: eight code edits, eight reviews, eight releases, and a window where half the fleet is on each model. Held in AppConfig, the swap is one configuration deployment with a bake time and an automatic rollback.
  • Flattening per-model inference parameters into one shared blob breaks the models that do not share them; the parameter names and ranges differ by provider, so an indirection layer has to carry an inference configuration per model, not one global set.

Say it in one line

  1. Nova Micro is text-only; Lite and Pro are multimodal; Canvas and Reel are legacy, so images come from Stability AI and video from Luma Ray 2.
  2. Titan and Cohere give you embeddings; use them for RAG and search, not chat.
  3. On-demand charges per token with no commitment and is bound by service quotas.
  4. Provisioned Throughput reserves Model unitThe billing block Provisioned Throughput is sold in – one unit delivers a fixed tokens-per-minute rate for a specific model. per hour and is mandatory for some customised models, though not for one that offers on-demand custom serving, and not for an imported model.
  5. Batch inference is async S3-to-S3, roughly half price, and offline only.
  6. Cross-region inference profiles raise throughput by spreading load and can carry data-residency implications.
  7. Enabling model access and checking regional availability are prerequisites before any call.
  8. SageMaker real-time serves low-latency traffic on an always-on endpoint.
  9. SageMaker serverless scales to zero and trades cold starts for idle savings.
  10. SageMaker asynchronous inference queues large payloads and long-running jobs.
  11. SageMaker batch transform scores a dataset offline with no persistent endpoint.
  12. Inference components give each model on a shared endpoint its own CPU, memory, accelerators, copy count, and scaling (to zero copies); multi-model endpoints instead share one container, loading models into memory on demand at the cost of a cold-start penalty and a same-framework requirement.
  13. Intelligent Prompt Routing routes within a family to the cheapest tier that meets a quality bar.
  14. Pick the smallest model that clears the quality bar; move up only when it does not.

These posts are LLM-aided. Backbone, original writing, and structure by Craig. Research and editing by Craig + LLM. Proof-reading by Craig.