The scripts are in the repository, not in the installed package. Clone it,
then
cd recipes/05-export/bedrock-import before running the commands below. Browse this recipe on GitHub.Run it
The service role trusts Bedrock and reads the one bucket:
What you get
The published run (2026-09-20, us-east-1). The adapter iswhile-ai/text-to-sql-shop-nemotron-8b-r1,
one GRPO round on Nemotron-Nano-8B from the
text-to-SQL recipe; the vLLM rows are its
eval-nemotron-8b-r1 and eval-nemotron-8b-base files on the Hub, checked
in under rows/ so compare.py runs offline.
compare.py --check-published).
What it cost and what to know
Three facts the AWS documentation states in scattered places, checked here:
- Custom Model Import takes merged weights in the Hugging Face layout
(safetensors,
config.json, tokenizer files). A separate LoRA adapter is not accepted;merge_upload.pymerges it first. Supported architectures include Llama 2 to 3.3, Mistral, Mixtral, Qwen2, Qwen2.5, Qwen3 (Qwen3ForCausalLMand the MoE), GPT-OSS. Regions: us-east-1, us-east-2, us-west-2, eu-central-1. - An imported model refuses Converse even on a Llama architecture
(“This action doesn’t support the model that you provided”) and answers
InvokeModelwith the OpenAI chat-completion body. The SDK picks that route from the ARN, sobedrock:<arn>@<region>works anywhere a backend goes. Tool calling on imports is honored for GPT-OSS only. - An idle import is unloaded. The SDK waits through the restore (ten tries, fifteen seconds apart) and then says so in one sentence.
Next
-
Serve it to your users from While: register the ARN once and it answers at
https://models.withwhile.com/v1under your While key, from any OpenAI client orwai.Endpoint(name, url=..., api_key=...). The role it assumes is theWhileModelsInvokeshape in Your model and your key: -
Delete the import when you are done measuring:
aws bedrock delete-imported-model --model-identifier <name> --region us-east-1; storage is billed per unit per month. -
A Qwen3 adapter (
while-ai/airline-concise-4bonQwen/Qwen3-4B-Instruct-2507) takes the same path; its measurement iswai.simulateon the airline tasks rather thanrollout.py. -
The same held-out set on the platform: push the graded rows with
wai.export(..., push_to=)and the two runs sit side by side on the Runs page.