Skip to main content

Qwen3.5 122B A10B On Shadeform B300

Private Stack Exposure

Remote benchmark workers must reach the Metrum Insights control plane over a public URL. When you run a private or local stack, expose PostgREST before launch and use the public HTTPS URL for METRUM_PUBLIC_API_URL, INSIGHTS_API_URL, and INSIGHTS_CONTROL_PLANE_URL:

cloudflared tunnel --url http://localhost:${POSTGREST_PORT:-3000}
export METRUM_PUBLIC_API_URL="https://<cloudflared-host>.trycloudflare.com"
export INSIGHTS_API_URL="$METRUM_PUBLIC_API_URL"
export INSIGHTS_CONTROL_PLANE_URL="$METRUM_PUBLIC_API_URL"
curl -fsS "$METRUM_PUBLIC_API_URL/" >/dev/null

Do not give a remote worker localhost, 127.0.0.1, host.docker.internal, or a private-only DNS name. Keep the tunnel alive through onboarding, polling, result upload, and teardown; expose any private package/WebUI endpoint through a public URL too when the worker downloads artifacts from that stack.

This example shows the API shape for a metrumbench-llm run using:

  • provider: Shadeform
  • hardware: 1x B300, Ubuntu 24.04
  • model: Qwen/Qwen3.5-122B-A10B-FP8
  • framework: vLLM 0.20.1
  • API authentication: POST /rpc/mint_postgrest_write_jwt
  • required artifacts: Restic repo/auth plus the complete tagged Insights package set for the selected version tag

Use the full operator runbook when executing the run: docs/runbooks/gpu/b300/manual-shadeform-b300-qwen35-122b-a10b-curl-runbook.md.

Local Control Plane Exposure

For a local stack, expose PostgREST before provisioning the Shadeform instance. The remote worker cannot onboard against localhost.

cloudflared tunnel --url http://localhost:23040

Use the generated HTTPS URL as the public PostgREST URL for the provisioner and worker bootstrap path.

Mint The JWT

Use the database JWT minting RPC. Do not use local Python snippets or CLI token minting for this example.

curl -fsS -X POST "$METRUM_API_URL/rpc/mint_postgrest_write_jwt" \
-H "Content-Type: application/json" \
-d '{
"p_jwt_secret":"<PGRST_JWT_SECRET>",
"p_account_id":"<ACCOUNT_ID>",
"p_email":"<ACCOUNT_EMAIL>",
"p_expires_in_seconds":43200
}' | jq -er 'if type=="string" then . else .token end'

Use the returned bare JWT as Authorization: Bearer <METRUM_JWT_TOKEN> on subsequent PostgREST calls. The 12-hour TTL is intentional for large-model pulls, model load, and multi-scenario matrices.

Verify Worker Artifacts

Before provisioning paid capacity, verify Restic and the tagged package set. Do not use untagged, latest, partial, or ad hoc package contents.

RESTIC_REPOSITORY=<resolved, do not print> \
RESTIC_PASSWORD=<resolved, do not print> \
restic snapshots --tag "$INSIGHTS_PACKAGE_TAG" --json >/tmp/restic.snapshots.check.json

Expose the tagged package server to the worker when running from a local stack:

cloudflared tunnel --url http://localhost:25041

Verify the package surface before launch:

curl -fsS "https://<public-package-host-or-dns>/api/scripts/worker-startup.sh"
curl -fsS "https://<public-package-host-or-dns>/api/scripts/restic-restore.sh"
curl -fsS "https://<public-package-host-or-dns>/api/packages/"
curl -fsS "https://<public-package-host-or-dns>/api/packages/?tag=<INSIGHTS_PACKAGE_TAG>"
curl -fsS "https://<public-package-host-or-dns>/downloads/metrumbench-llm" \
-o /tmp/metrumbench-llm.b300.check

Runtime Contract

The model-server launch should resolve to the Qwen3.5 B300 vLLM recipe:

curl -fsS -X POST "$METRUM_API_URL/rpc/resolve_model_server_runtime_contract" \
-H "Authorization: Bearer <METRUM_JWT_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"p_framework_code":"vllm",
"p_framework_version":"0.20.1",
"p_model_identifier":"Qwen/Qwen3.5-122B-A10B-FP8",
"p_engine_args_set_code":"vllm-qwen35-122b-a10b-b300-fp8",
"p_bind_host":"0.0.0.0",
"p_port":8000,
"p_launch_adapter":"direct_process",
"p_container_image_override":""
}'

The resolved command must include the required FP8 and chunked-prefill args. For vLLM 0.20.1, --enable-chunked-prefill is a bare flag.

Required runtime environment values should be applied through the supported template/runtime contract, such as framework_command_templates.runtime_env:

VLLM_ATTENTION_BACKEND=FLASHINFER
VLLM_USE_DEEP_GEMM=1
VLLM_MULTI_STREAM_GEMM_TOKEN_THRESHOLD=256
VLLM_TORCH_COMPILE_LEVEL=O2

Submit The Cloud Execution

Create the project, workload, and scenario matrix using the same APIs described in Project Lifecycle and metrumbench-llm Workload And Scenario, then submit managed cloud executions. The intended matrix crosses ISL/OSL pairs 128/128, 128/1024, 1024/128, and 1024/1024 with concurrency 32, 128, 512, and 1024. Use scenario codes shaped as c<CONCURRENCY>-isl<ISL>-osl<OSL>.

Submit one reusable worker execution with auto_terminate=false, then dispatch the remaining scenario matrix to the same ready worker:

curl -fsS -X POST "$METRUM_API_URL/rpc/create_cloud_execution_request" \
-H "Authorization: Bearer <METRUM_JWT_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"p_owner_account_id":"<ACCOUNT_ID>",
"p_org_id":"<ORG_ID>",
"p_project_name":"Qwen3.5 122B A10B B300 metrumbench-llm",
"p_workload_code":"qwen35-122b-a10b-b300-vllm0201",
"p_config_code":"shadeform-b300",
"p_scenario_code":"<SCENARIO_CODE>",
"p_auto_terminate":false,
"p_hf_token_id":<HF_TOKEN_ID_OR_NULL>
}'

Patch startup_extra_args_cli before the provisioner picks up the request if you need a launch flag that is not represented in the engine args templates:

curl -fsS -X PATCH "$METRUM_API_URL/cloud_executions?execution_id=eq.<EXECUTION_ID>" \
-H "Authorization: Bearer <METRUM_JWT_TOKEN>" \
-H "Content-Type: application/json" \
-H "Prefer: return=representation" \
-d '{
"startup_extra_args_cli":"--enable-chunked-prefill"
}'

After readiness, dispatch additional scenarios with the run scenario execution API used by the current control plane, keeping the same server_hostname.

Monitor

curl -fsS "$METRUM_API_URL/cloud_provisioning_requests?request_id=eq.<REQUEST_ID>&select=request_id,status_code,error_message,updated_at" \
-H "Authorization: Bearer <METRUM_JWT_TOKEN>"
curl -fsS "$METRUM_API_URL/server_config_instances?hostname=eq.<HOSTNAME>&select=server_id,hostname,created_at" \
-H "Authorization: Bearer <METRUM_JWT_TOKEN>"
curl -fsS "$METRUM_API_URL/v_metrumbench_llm_outputs?job_id=eq.<JOB_ID>&limit=50" \
-H "Authorization: Bearer <METRUM_JWT_TOKEN>"

Stop Conditions

  • Stop if the public API URL points at localhost or 127.0.0.1.
  • Stop if Restic repo/auth cannot be resolved and queried.
  • Stop if the selected tagged Insights package set is incomplete.
  • Stop if no Shadeform B300 capacity is available.
  • Stop if server readiness fails after provisioning.
  • Stop if the resolved vLLM command or runtime environment does not match the required B300 Qwen FP8 contract.