Start smaller, compare honestly
Begin with a 20B–32B dense or 20B–120B MoE candidate, then compare it against a larger quality reference on a frozen local clinical suite.
A reported 128 GB / $5,000 / 15–20 ICU beds system can be plausible as a compact unified-memory appliance. It is not, by itself, evidence of clinical capacity. The decisive variables are the exact model and quantization, p95 context and output length, KV-cache headroom, request mix, retrieval quality, validation, and safe failure behavior.
A 128 GB box may fit quantized weights. Runtime reserve, KV cache, OS memory, batches, and safety margin determine whether it can respond reliably under clinical use.
Begin with a 20B–32B dense or 20B–120B MoE candidate, then compare it against a larger quality reference on a frozen local clinical suite.
Long prompts cost prefill time; their KV state persists. Bed count is not concurrency. Measure tokens and arrival patterns.
A credible assistant also needs controlled RAG, structured validation, access control, auditability, and clinician review.
“Open-weight” is the operationally useful term: a hospital can run parameters in its own environment. It does not establish open-source provenance, clinical validation, unrestricted use, support, or security.
| Term | What is available | Deployment implication |
|---|---|---|
| Open source | Source code under an OSI-style license; ideally reproducible training code and data details for LLMs. | Software can be inspected and modified, but weights and training data may still be unavailable. |
| Open weights | Downloadable trained parameters; corpus, full training code, and reproducibility may be absent. | Enables on-prem inference or fine-tuning. License, use policy, redistribution, provenance, and support obligations remain. |
| Source-available / custom license | Weights and some code public under bespoke terms or an acceptable-use policy. | Legal review matters, especially for hospital use, redistribution, and geographic restrictions. |
| Closed model / API | Neither weights nor most internals are available. | The provider operates it; data residency and BAA or contract terms become central. |
License review target: counsel should approve the exact checkpoint license and revision hash, not merely a family name. OpenAI gpt-oss is open-weight under Apache 2.0 with a usage policy; Qwen3’s cited 235B checkpoint is Apache 2.0; Llama 4 uses Meta’s custom community license and has an EU restriction in its multimodal license grant; Gemma has its own terms and prohibited-use policy.
| Family / example | Architecture and size | Why it matters | 128 GB-class fit |
|---|---|---|---|
| gpt-oss-20b | MoE; 21B total / 3.6B active per token; 128K context | Tool use, structured outputs, reasoning workflow experiments; native MXFP4 weights stated at about 16 GB. | Comfortable; KV and concurrency headroom. |
| gpt-oss-120b | MoE; 117B total / 5.1B active; 128K context | Higher-capability reasoning and tool use; official MXFP4 model stated at about 80 GB. | Possible; remaining memory must cover everything else. |
| Qwen3 dense | 0.6B–32B dense range | Thinking/non-thinking modes, multilingual, agent/tool workflows, local deployment. | 14B–32B are strong operational baselines. |
| Qwen3-30B-A3B / 235B-A22B | MoE; largest: 235B total / 22B active; 94 layers, 128 experts / 8 active, GQA; 32K native / 131K YaRN | Strong agent and reasoning family. | 235B requires aggressive quantization with little practical headroom. |
| Gemma 3 4B / 12B / 27B | Dense multimodal; 128K context | Compact text/image, document understanding, summarization, multilingual use. | 12B / 27B practical; validate imaging separately. |
| Llama 3.3 70B | Dense; 128K context | Mature ecosystem; useful quality reference. | BF16 cannot fit one 128 GB box; 4-bit leaves much less headroom. |
| Llama 4 Scout | MoE; 109B total / 17B active; multimodal; 10M advertised context | Capable multimodal model with very long advertised context. | Loading is not serving; long context is KV-limited. Review license and eligibility. |
| DeepSeek-V3 | MoE; 671B total / 37B active; 128K context | Frontier open-weight reference; MLA/MoE and multi-token prediction. | Not a realistic single 128 GB target. |
If the smaller model has comparable clinician-review acceptance and materially better latency and concurrency, it is normally the better system. Public benchmarks do not substitute for ICU notes, local abbreviations, language mix, EHR exports, and known failure cases.
Parameter count drives weight storage, but it is not all of runtime memory. In MoE models, active parameters influence compute; all experts’ weights usually still need to be resident.
P = parameters; b = bits per stored weight. Overhead includes scales, zero points, metadata, unquantized tensors, runtime layout, and fragmentation.
| Model | BF16 / FP16 | 8-bit | 4-bit |
|---|---|---|---|
| 8B dense | 16 GB | 8 GB | 4 GB |
| 20B dense | 40 GB | 20 GB | 10 GB |
| 32B dense | 64 GB | 32 GB | 16 GB |
| 70B dense | 140 GB | 70 GB | 35 GB |
| 117B MoE | 234 GB | 117 GB | 58.5 GB |
| 235B MoE | 470 GB | 235 GB | 117.5 GB |
These are lower bounds, not provisioning figures. Add runtime work buffers, kernels, KV cache, framework reservations, OS memory, and fragmentation. Use measured model-file size plus loaded-server measurement. Highest precision that meets the latency/cost envelope is a starting point; task-specific validation must prove the quantized model preserves accuracy, calibration, JSON reliability, multilingual behavior, and rare-term handling.
Processes the prompt and creates KV cache. Long documents increase time to first token; attention work grows sharply with prompt length. Queueing, retrieval, and prompt construction also affect TTFT.
Generates one or a few tokens from cached history. Often memory-bandwidth limited; determines inter-token latency and streaming smoothness.
Set p95 TTFT, p95 total response time, p95 inter-token latency, availability, error rate, and queue duration. Test those against a realistic mixed clinical trace, not a favorable benchmark prompt.
Prior attention keys and values keep the model from recomputing the whole history for every next token. Context × simultaneous sequences is a durable memory claim.
PagedAttention allocates KV memory in blocks/pages on demand, reducing fragmentation and allowing block sharing. The original vLLM paper reported 2–4× throughput versus evaluated baselines at comparable latency; that is a historical paper result, not a guarantee. Continuous (in-flight) batching lets new requests join while older ones decode; prefix caching reuses identical prefixes and speeds prefill, not novel generation; chunked prefill prevents huge prompts from monopolizing decode traffic; speculative decoding is worthwhile only when acceptance rates and kernels prove favorable.
For standard Transformer GQA: L = layers; T = total cached tokens over concurrent sequences; Hkv = KV heads; Dh = head dimension; Bkv = bytes per KV value (2 for BF16/FP16, 1 for FP8). The 2 covers keys and values. MLA, sliding-window, and hybrid attention require a model-specific formula.
Worked example: an 80-layer GQA model with 8 KV heads, 128-dimensional heads, BF16/FP16 KV, and 8,192 tokens: 2 × 80 × 8,192 × 8 × 128 × 2 = 2.68 GB per active sequence. Eight simultaneous 8K-token conversations consume about 21.5 GB before allocator/runtime overhead. Doubling context or concurrency roughly doubles KV memory.
| Input | Fill in | Why it matters |
|---|---|---|
| Model and exact revision | Config, license, tokenizer, regression baseline | |
| Weight format and measured file size | Weight residency | |
| Accelerator / usable memory | Not nominal system RAM alone | |
| Framework memory reservation | Runtime, graphs, kernels, fragmentation | |
| Max prompt / output tokens | Prefill/decode time and total KV | |
| Mean / p95 input and output tokens | Real capacity, not theoretical maximum | |
| Concurrent active sequences | KV-cache demand | |
| Required p95 TTFT / ITL | Scheduler configuration | |
| Shared-prefix hit rate | Value of prefix caching | |
| Retrieval chunk count and token budget | Keeps RAG context bounded | |
| Failure behavior | Timeout, fallback, queue, clinician notification |
Provision with a measured peak under a realistic trace, not this formula alone.
For a low-concurrency hospital unit, one well-sized GPU or coherent-memory appliance is simpler than multi-GPU tensor parallelism. Add replicas for resilience before complexity unless a model simply cannot fit.
| Stack | Best fit | Watch-outs |
|---|---|---|
| vLLM | General-purpose high-throughput serving; OpenAI-compatible API; PagedAttention, continuous batching, prefix cache, speculative decoding, distributed execution. | Fast-moving releases: pin versions and benchmark exact model / quantization. |
| SGLang | Complex generation programs, structured agents, prefix-heavy workloads; RadixAttention KV reuse. | Validate checkpoint support and operational maturity. |
| TensorRT-LLM + Triton | NVIDIA-specific performance engineering where optimization effort is justified. | Engine builds, CUDA coupling, deployment complexity; strongest when hardware is fixed. |
| llama.cpp | Small/simple local service; CPU, Apple Silicon, AMD/HIP, Vulkan, hybrid CPU+GPU, GGUF. | Usually not first choice for high-concurrency GPU serving; excellent for prototypes and UMA devices. |
| Transformers | Reference implementation, testing, correctness baseline. | Usually not operational high-throughput server. |
| TGI / LMDeploy / Ollama / LM Studio | Useful alternatives by hardware and integration needs. | Test observability, concurrency control, auth, and exact model support—not convenience alone. |
Keep one reference stack (for example, Transformers) for repeatable regression tests and one serving stack (vLLM or TensorRT-LLM) for load tests.
Tensor parallelism splits layer matrices but adds frequent inter-GPU communication. Pipeline parallelism splits layers but causes bubbles and latency. Data parallelism is full replicas for throughput/availability. Expert parallelism distributes MoE experts with routing and network complexity.
VRAM is dedicated accelerator memory. System RAM overflow is generally slow. Unified memory shares a physical pool between CPU and GPU: it can hold larger models locally, but its capacity is shared and bandwidth can be far below datacenter HBM.
| Hardware | Memory | Bandwidth / power | Architectural meaning |
|---|---|---|---|
| NVIDIA DGX Spark / GB10 | 128 GB LPDDR5x unified | 273 GB/s; GB10 SoC TDP 140 W; 240 W external PSU | Plausible reading of a reported 128 GB appliance. Do not equate its bandwidth with HBM GPUs. |
| RTX 5090 | 32 GB GDDR7 | 575 W board power | Powerful consumer card; 32 GB constrains capacity and long-context concurrency. Multiple cards add chassis/power/topology complexity. |
| RTX PRO 6000 Blackwell | 96 GB GDDR7 ECC | 1,792 GB/s; up to 600 W | Strong single-GPU workstation option, closer to a production single-GPU footprint. |
| NVIDIA L40S | 48 GB GDDR6 ECC | 864 GB/s; 350 W | Mature PCIe option; two cards add memory but are not seamless without supported TP. |
| NVIDIA H200 | 141 GB HBM3e | 4.8 TB/s; up to 700 W | One accelerator with enough high-bandwidth memory for large work; costly server procurement. |
| AMD MI300X | 192 GB HBM3 | 5.3 TB/s; up to 750 W | High-capacity datacenter alternative with ECC/RAS; validate ROCm compatibility. |
| Ryzen AI Max+ 395 | Up to 128 GB unified LPDDR5x | 256 GB/s (AMD developer platform); 120 W | Compact lower-power alternative; up to 96 GB graphics memory. Better for experiments/smaller workloads than assumed datacenter serving. |
| Apple Silicon Mac Studio | Up to 512 GB unified | Up to 1.2 TB/s for M5 Ultra | Large local-memory alternative with Metal/llama.cpp-style stacks; different ecosystem from CUDA servers. |
The $5,000 claim: plausible for DGX Spark-class hardware. NVIDIA’s developer forum said Founders Edition MSRP moved from $3,999 to $4,699 in February 2026 due to memory supply constraints. Street price, tax, storage, service, support, and availability vary. Official GB10 documentation calls it 128 GB unified system memory, not discrete HBM VRAM; “models up to 200B” is a capacity claim, not a latency/concurrency claim.
A single box offers locality and simplicity but is a single point of failure. For 15–20 beds, two independent smaller replicas may give a better resilience story than one giant multi-GPU host. Decide whether the workload requires throughput, availability, or a larger model.
RAG gives the model evidence; it does not make it truthful. Constrained output can guarantee syntax; it cannot make a claim clinically true. Design every layer so uncertainty can surface safely.
Tool layer: narrow allow-list, patient/context binding, RBAC, parameter validation, least privilege, idempotency/confirmation for writes, timeout/retry, audit, and a strict line between recommendation and order.
No autonomous diagnoses, orders, medication changes, or high-risk recommendations.
Show sources and uncertainty; make “insufficient evidence” a valid answer.
De-identified historical cases, clinician adjudication, subgroups/languages, hard cases, abstention.
Freeze versions and revalidate model, prompt, index, embeddings, reranker, driver, and serving stack.
Start in shadow mode alongside normal workflow; audit disagreements and unsafe suggestions. Audit only what is necessary for safety: authorized identity, permitted patient/context IDs, checkpoint hash, prompt template, retrieval sources/versions, tool requests/results, response, validator result, clinician action, and timestamps. Avoid chain-of-thought logging by default: it can expand sensitive-data exposure without clinical value.
A fast model is not a deployment. Do not use price, parameter count, or tokens/sec as a shortcut around clinical quality and operational ownership.
| Gate | Pass condition |
|---|---|
| Intended use | Clear non-autonomous scope, owner, user, and clinician accountability. |
| Data / security | On-prem data flow, access control, segmentation, logging, retention, and incident response approved. |
| License | Exact weights/revision and dependencies approved for hospital use. |
| Clinical quality | Independent task-specific evaluation meets predeclared acceptance thresholds. |
| Safety | Grounding, abstention, validation, human review, escalation pass adversarial tests. |
| Performance | p95 TTFT/ITL, queue time, concurrency, and failure behavior meet workflow SLOs. |
| Reliability | Maintenance, rollback, monitoring, capacity, and failover are owned and rehearsed. |
| Economics | Includes hardware, support, power/cooling, storage, staff, validation, and refresh—not GPU price alone. |
Benchmark discipline: vendor numbers use favorable prompts, batches, precisions, hardware, and output lengths. Tokens/sec is incomplete without prompt length, output length, concurrency, quantization, TTFT, ITL, and percentile latency. Use dated reseller quotes with service/support terms.
Ask for traces and measurements on the exact release—not an assurance that it works in principle.
Use this sequence before a procurement or architecture review; it makes the memory and safety questions concrete before comparing vendor claims.
| Time | Focus | Outcome |
|---|---|---|
| 0–10 min | Executive takeaways and open weights | Separate local control from “open source” and clinical validation. |
| 10–20 min | Prefill, decode, KV cache, TTFT, ITL | Understand why context/concurrency—not beds—determine capacity. |
| 20–30 min | Memory formulas and worksheet | Challenge “it fits in 128 GB” claims. |
| 30–40 min | gpt-oss-20b, gpt-oss-120b, Qwen3 32B, Gemma 3 27B, 70B reference | Form a shortlist without treating leaderboards as clinical proof. |
| 40–50 min | vLLM / SGLang / TensorRT-LLM roles and hardware | Ask why a stack and topology were selected. |
| 50–60 min | Engineer questions and clinical controls | Turn the next meeting into a structured architecture review. |
Model availability, licensing, benchmarks, hardware pricing, and serving support change quickly. Re-check these before procurement or production design.