Key takeaways
- AWS published the pattern on October 12, 2026. Its standard path packages a GGUF model for the AWS llama.cpp SageMaker container and accepts OpenAI-compatible Chat Completions payloads through InvokeEndpoint.
- The optional SemIf child image returns ordered option IDs, probabilities and raw logits without decoding an answer token. It is sample code that teams build and operate, not a new managed AWS decision-model API.
- On 231 serial JevBench tasks with Qwen3.5-4B Q4_K_M, AWS reports 77.5% accuracy and 1.715-second p50 on ml.c6i.8xlarge CPU, versus 77.9%, 0.352-second p50 and 0.599-second p95 on ml.g6e.xlarge GPU.
- The one-answer accuracy difference is not evidence that GPU improves model quality. AWS says the two llama.cpp builds disagreed on six hard tasks and labels the timing results measurements rather than service guarantees.
- Use fixed-option model scores as input to a policy, not as authorization. Pin the model and image digests, evaluate calibration and severe errors on your own labels, preserve abstention and deterministic fallbacks, and price continuously provisioned endpoint hours before deployment.
AWS published the SageMaker pattern on October 12
Amazon Web Services published a new implementation guide on October 12, 2026 for serving GGUF models with llama.cpp on Amazon SageMaker AI. The base path uses an AWS Deep Learning Container, stores model.tar.gz in Amazon S3, finds the first .gguf file under /opt/ml/model and maps SageMaker POST /invocations calls to llama-server at /v1/chat/completions.
This is an inference packaging and deployment pattern, not a new foundation model or hosted token API. The customer selects and packages the model, provisions a SageMaker real-time endpoint and pays for the supporting AWS resources. AWS does not announce a universal model ID, token price, SLA or automatic migration from another endpoint.
The standard path exposes chat completions through InvokeEndpoint
The standard container accepts an OpenAI-compatible messages array plus controls such as max_tokens and stream, then returns generated text under choices[0].message.content. AWS documents separate server-sagemaker-cpu-v1 and server-sagemaker-cuda-v1 image families. Those SageMaker variants implement /ping and /invocations; the similarly named EC2 images are not interchangeable.
A model can arrive as a SageMaker artifact in S3 or, when the endpoint has network egress, through SM_LLAMA_CPP_HF_REPO and SM_LLAMA_CPP_HF_FILE. The walkthrough tells operators to resolve an immutable container digest. Do the same for the GGUF file: preserve its checksum, tokenizer files, source revision, quantization and runtime configuration in the release record.
SemIf turns declared options into scores instead of prose
For fixed-choice tasks, the optional SemIf extension accepts a decision ID, unstructured state, a question and an ordered list of allowed options. Its response preserves those option IDs and returns conditional probabilities, raw option logits, prompt metadata and pinned model identity without generating an answer token. Candidate uses include support routing, incident priority, extraction from a known set and selecting a proposed agent action.
The default llama-server HTTP API does not expose the final-position logits and state operations SemIf needs. The sample therefore builds a child image in CodeBuild, stores it in ECR and replaces the entry point with a SageMaker-compatible adapter while retaining the AWS container’s compiled CPU or CUDA libraries. That makes SemIf an operator-owned extension, not a switch on the standard endpoint.
AWS reports a large latency gap on one 231-task test
AWS says it sent the same 231 public JevBench tasks serially to CPU and GPU endpoints using Qwen3.5-4B Q4_K_M. The ml.c6i.8xlarge CPU configuration used 32 threads, returned 231 valid responses, scored 179 correct or 77.5%, and measured 1.715-second client p50 and 19.291-second p95 latency. The ml.g6e.xlarge GPU endpoint returned 231 valid responses, scored 180 correct or 77.9%, and measured 0.352-second p50 and 0.599-second p95.
AWS describes the GPU result as 4.9 times faster at p50 and 32.2 times faster at p95. Those are provider-run measurements on one quantized model, benchmark, serial request pattern and pair of endpoint configurations. They include network latency and are not service guarantees. They do not establish production throughput, concurrency behavior, calibration, cold starts or cost per accepted decision.
The CPU and GPU builds changed six hard-task predictions
The two configurations produced different answers on six hard tasks because they used different llama.cpp builds. AWS explicitly says the one-answer accuracy difference should be treated as runtime variation rather than proof that GPU offload improves quality. Smaller 2B and 0.8B candidates reduced median latency but reportedly scored 66.7% and 58.4%, so the sample retains the 4B quantization as its quality-first default.
That is the right boundary for interpreting this benchmark. Hardware, quantization and runtime are part of the evaluated artifact. A production acceptance record should bind the model file, checksum, image digest, llama.cpp revision, CPU or GPU type, thread and offload settings, prompt builder and scoring code. Changing any of them calls for regression and calibration checks.
Instance pools are placement fallbacks, not load balancing
The GPU sample orders ml.g6e.xlarge, ml.g6.2xlarge, ml.g5.2xlarge and ml.g4dn.2xlarge in a SageMaker instance pool. AWS says SageMaker chose ml.g6e.xlarge and startup logs confirmed that all 34 layers were offloaded to an NVIDIA L40S. The pool helps endpoint creation select an available compatible type; it does not spread inference traffic across all four types.
The SemIf adapter serializes scoring around one stateful llama.cpp context and returns retryable HTTP 503 responses instead of allowing an unbounded in-container queue. Operators must measure concurrency and scale endpoint instances rather than infer parallelism from GPU capacity. They also need alarms for placement changes, 503 rates, queue time, latency tails, model load failures and fallback behavior.
Probabilities are not permissions or calibrated confidence
A normalized score over declared options is easier to validate than free-form text, but it does not establish real-world confidence. Distribution shift, incomplete options, ambiguous state, truncation and quantization can all produce a high score for a wrong choice. Measure calibration, class-level errors and abstention on labeled data from the intended workload, including rare and high-consequence cases.
Keep authorization and deterministic business rules outside the model. An agent-action score can propose a route, but a trusted policy layer must decide whether that action is allowed, whether required fields are present and whether a human must approve it. Include an explicit none-of-the-above or review path when the option set can be incomplete; do not force every request into one operational outcome.
What builders should do next
Trial the standard AWS llama.cpp container when you already operate SageMaker and need a pinned GGUF model behind an account-controlled real-time endpoint. Add the SemIf extension only when direct fixed-option scores justify owning a custom image and adapter. Start with a shadow route: record model proposals beside the current outcome without allowing them to trigger actions.
Freeze the complete artifact, evaluate representative and adversarial decisions, set per-class thresholds and abstention, then compare CPU and GPU on p50, p95, p99, throughput, severe-error rate and total hourly cost at realistic utilization. Constrain rollout behind deterministic policy and reversible cohorts; wait when calibration or cost is unresolved; reject autonomous use when a score would become permission for an irreversible or regulated action.
Copy-ready SageMaker decision-model launch record
Complete one record per model, runtime, endpoint configuration and decision workflow before enabling operational actions.
Entries stay in this browser tab and are not submitted to AccessAllGPT. Blank responses are copied as [Unresolved].
GGUF source, revision and checksum; tokenizer; quantization; AWS base-image URI and digest; child-image digest; llama.cpp and SemIf revisions.
State schema, question, stable option IDs, none-of-the-above path, output parser, thresholds, abstention and prohibited uses.
Frozen labeled set, difficult and shifted cases, repetitions, class metrics, calibration, severe errors, runtime-difference checks and acceptance gates.
Region, CPU or GPU type, instance pool order, threads, GPU layers, minimum and maximum instances, timeout, concurrency and 503 retry budget.
Current regional instance rates, expected provisioned hours, utilization, S3, ECR, CodeBuild, logs, network and cost per accepted decision.
Deterministic validation, authorization, human approvals, regulated outcomes, action limits, audit log and kill switch.
Cold start, p50/p95/p99, throughput, queueing, placement changes, monitoring, drift, incident owner, rollback and endpoint cleanup.
Trial, constrain, wait or reject; approved cohort; owner; evidence links; expiry; and model, runtime, price or policy revalidation triggers.
Primary sources
Browse the publication-wide evidence index →
- Deploy decision models with llama.cpp on Amazon SageMaker AIAmazon Web Services · Reviewed: October 12, 2026 publication date; llama.cpp SageMaker container path; OpenAI-compatible request contract; SemIf extension and decision schema; JevBench methodology and results; CPU and GPU configurations; deployment commands; instance pools; security and authorization cautions; cleanup · Retrieved · Supports: AWS published a managed SageMaker pattern for GGUF models using its llama.cpp Deep Learning Container and an optional SemIf child image, and reports provider-run CPU and GPU results on 231 public JevBench tasks.
- AWS Deep Learning Containers for llama.cppAmazon Web Services · Reviewed: Overview; supported deployment environments; SageMaker CPU and CUDA image families; image resolution guidance; supported models; configuration surface; container variants; changelog navigation · Retrieved · Supports: The live AWS documentation exposes separate SageMaker CPU and CUDA llama.cpp container families and provides the image and configuration surface referenced by the deployment walkthrough.
- SemIf decision model SageMaker sampleAWS Samples on GitHub · Reviewed: Public repository path; deployment scripts; CPU and GPU container variants; model packaging; digest-pinned image handling; standard endpoint invocation; SemIf request and response examples; benchmark assets; cleanup path · Retrieved · Supports: AWS links a public sample implementation containing the packaging, build, deployment, invocation and cleanup paths described in the October 12 walkthrough; it is example code rather than a managed decision API.
- Amazon SageMaker AI pricingAmazon Web Services · Reviewed: Pricing overview; on-demand and Savings Plans framing; real-time inference; hosting-instance and data-processing charges; regional price selection; free-tier boundaries; pricing calculator; examples and exclusions · Retrieved · Supports: AWS states that SageMaker AI charges for the resources used, with real-time endpoint cost depending on provisioned hosting instances and related processing; the decision-model post does not publish one universal per-decision price.
Limitations
AccessAllGPT performed a first-party desk review only. We did not receive an AWS account or credentials; clone and audit every sample file; download Qwen3.5-4B Q4_K_M; verify its license or checksum; build either container; provision ml.c6i.8xlarge or ml.g6e.xlarge; invoke SageMaker; reproduce the 231 JevBench tasks, accuracy or latency; test other Regions, instances, models, quantizations, prompts or concurrency; measure calibration, throughput, cold starts, security, reliability or cost; inspect an AWS bill; or obtain legal, safety or compliance advice. AWS produced the benchmark, selected the setup and published the interpretation. Instance availability, container images, repository contents and regional prices can change.
Disclosures
AccessAllGPT received no AWS account, credentials, credits, hardware, model files, benchmark data, briefing, review, payment or compensation for this article. AWS, the sample authors, llama.cpp, SemIf and Qwen did not sponsor, review or endorse it. AccessAllGPT did not test, score or rank the model, container or infrastructure. AccessAllGPT Research is operated by NeuralArc, is independent, and is not affiliated with AWS or organizations cited. Publication-wide relationships are listed on the disclosures page.
Further AccessAllGPT guidance
- Liquid AI Releases d1-3B and d1-omni-600M Decision Models
- AWS Adds GLM 5.3 to Amazon Bedrock
- Managed LLM API vs self-hosting
- Choose a Model Without Chasing the Leaderboard
- Design an Agent Benchmark That Predicts Production
- Human Approval Boundaries for AI Agents
- AccessAllGPT Research methodology
- Evidence standards
- Publication disclosures
Continue the research
Get evidence-led updates for teams making production AI decisions.