Instructions to use Kentucky-Open-Science/KOS-V4-Base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Kentucky-Open-Science/KOS-V4-Base with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Kentucky-Open-Science/KOS-V4-Base")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Kentucky-Open-Science/KOS-V4-Base") model = AutoModelForCausalLM.from_pretrained("Kentucky-Open-Science/KOS-V4-Base") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Kentucky-Open-Science/KOS-V4-Base with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Kentucky-Open-Science/KOS-V4-Base" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Kentucky-Open-Science/KOS-V4-Base", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Kentucky-Open-Science/KOS-V4-Base
- SGLang
How to use Kentucky-Open-Science/KOS-V4-Base with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Kentucky-Open-Science/KOS-V4-Base" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Kentucky-Open-Science/KOS-V4-Base", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Kentucky-Open-Science/KOS-V4-Base" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Kentucky-Open-Science/KOS-V4-Base", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Kentucky-Open-Science/KOS-V4-Base with Docker Model Runner:
docker model run hf.co/Kentucky-Open-Science/KOS-V4-Base
- KOS-V4-Base β a from-scratch 3B medical foundation model
- Core specifications
- Quickstart (Hugging Face Transformers)
- Tokenizer
- Pre-training
- Pre-training datasets β 49 sources, ~180.3 B tokens, English-only
- Evaluation β 19-test suite, 75 metrics, vs a 16-model fleet
- Compute footprint
- Deployment (inference)
- Fine-tunes built on this base
- Intended use & limitations
- Core specifications
Code name: Scratch. The KOS-V4 series is nicknamed Scratch LLM: it was trained completely from scratch by a small team on a fraction of the data and compute of commercial models. It is not a frontier model.
β οΈ Research use only. This model is provided for research purposes only and must not be used for any commercial, clinical, legal, or production-grade applications. The user assumes all risks associated with its use.
KOS-V4-Base β a from-scratch 3B medical foundation model
KOS-V4-Base (kos-v4-pretrain) is an open-weights 3B language model trained completely from scratch by a
University of Kentucky College of Medicine team (Office for Research,
Center for Clinical and Translational Sciences). It is a decoder-only transformer (Qwen3
architecture, bespoke 3B config) β the pretrained foundation that
KOS-V4-Instruct is fine-tuned from. This is a
base model: it completes text; it is not instruction-tuned and has no chat template.
The headline. On held-out medical bits-per-byte (5-domain mean 0.4309) KOS-V4-Base ranks 1st of 17 across a 17-model benchmark pool β beating from-scratch and trillion-token peers alike (BPB is tokenizer-agnostic, so this is a fair cross-model comparison; the distillation confound flatters the trillion-token externals, so this is conservative).
Training-token budget of KOS-V4 (180.3 B tokens) against the comparator fleet (log scale). Every peer was trained on 1.7β200Γ more data (0.3β36 T tokens); the biomedical specialists additionally continue-pretrain on a multi-trillion-token general base. KOS-V4 is the small dot in the lower-left β the from-scratch 3B on a fraction of the budget.
Core specifications
| Attribute | Detail |
|---|---|
| Architecture | Decoder-only Transformer (Qwen3ForCausalLM), Grouped-Query Attention |
| Parameters | 3.015 B |
| Hidden / Layers | 3072 / 28 |
| Attention | 24 query / 8 KV heads (GQA 3:1), head_dim 128, per-head QK-RMSNorm |
| Feed-forward | SwiGLU, intermediate 8192 |
| Vocabulary | 32,000, custom medical byte-level BPE |
| Context length | 24,576 (max_position_embeddings 65,536) |
| Position encoding | RoPE, ΞΈ = 25,000 (pin on export) |
| Precision | bfloat16 |
| Objective | pure next-token cross-entropy β no auxiliary losses |
| Pretraining tokens | 180.3 B (English medical/biomedical + web) |
Quickstart (Hugging Face Transformers)
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "Kentucky-Open-Science/KOS-V4-Base"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="auto")
prompt = "The patient presented with acute chest pain and shortness of breath. The differential diagnosis includes"
inputs = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=128, do_sample=False)
print(tok.decode(out[0], skip_special_tokens=True))
Standard Qwen3ForCausalLM. This is a base (completion) model β no chat template. For instructions / tools use
KOS-V4-Instruct. Pin RoPE ΞΈ = 25000 on export;
add_bos_token=false; eos = <|endoftext|> (id 0).
Tokenizer
32,000-token byte-level BPE (BBPE), NFKC-normalized, full 256-byte alphabet (no out-of-vocabulary). The
vocabulary is 32,000 tokens with 100 reserved slots (<|reserved_0|> β¦ <|reserved_99|>) and a single special
token <|endoftext|> at id 0, which serves as EOS = BOS = PAD = UNK and the document separator. There are no
other special tokens β no chat / ChatML tokens; the base was not trained on any. add_bos_token = false. The 38
residual byte-fragment "sink" merges present at pretraining have been removed (corrected tokenizer); the
vocabulary stays 32,000. BPB is per-byte, so this does not confound cross-model comparison.
Where the tokenizer does well. On raw byte-compression efficiency (tokens-per-byte 0.2591) it ranks 4th of 17, essentially tied with the most byte-efficient general tokenizers (Llama-3 0.2573) β fewer tokens per document, a multiplicative saving on both training and inference. It deliberately does not optimize for whole-word medical vocabulary, so its medical single-token rate (T1b STRR) is the lowest in the pool β but that tradeoff is vindicated: despite the lowest single-token rate, the model still ranks 1st of 17 on held-out medical BPB and leads the pool on medical entity extraction. A high single-token rate is neither necessary for nor sufficient for strong downstream medical modeling.
Pre-training
Trained from scratch, not distilled or continued. Pure next-token cross-entropy (no auxiliary losses), full-parameter on the LlamaFactory trainer, AdamW, peak LR 3.0e-4 cosine (warmup 1%), grad-clip 1.0, 1 epoch, seq 24,576 (whole-document neat-packing; any doc > 24,576 tokens is dropped, never split; 4-D block-diagonal mask so there is no cross-document attention; position_ids reset per doc; 99.8% fill), bf16 + FlashAttention-2 + Liger kernels, gradient checkpointing off. 305,613 steps / 180.3 B token-positions (batch 589,824 tokens/step). Final train loss 1.6637. 24Γ H200 (3 nodes Γ 8), pure DDP, 5.73 days, ~3,300 H200-GPU-hours.
Representation health is handled data-side, not with geometric regularizers: corpus cleaning that removes structural sink tokens, source-balanced neat-packing, and train-time shuffle. KOS-V4-Base is a direct test of whether a clean tokenizer + a clean corpus β without auxiliary losses β yields healthy representations (the attention / geometry diagnostics below measure this).
Pre-training datasets β 49 sources, ~180.3 B tokens, English-only
Cleaned (ftfy β NFKC β whitelist; PMC body-only; radiology β natural-language headers; PHI-run collapse), single-phase. Token counts are char-estimates against the packed cache.
Backbone β biomedical literature + general web (~97% of tokens):
| source | tokens | source | tokens | |
|---|---|---|---|---|
| PubMed Central (pmc) | 76.97 B | mimic-iv discharge (PhysioNet) | 0.83 B | |
| FineWeb-Edu 350BT (FKβ€10) | 40.52 B | clinical_trials (ClinicalTrials.gov) | 0.72 B | |
| FineWeb-Edu 10BT | 10.38 B | wikipedia (sci/med subset) | 0.62 B | |
| mMedC-en | 6.33 B | mimic-iv radiology (PhysioNet) | 0.45 B | |
| BlueScrubs | 4.55 B | biorxiv / medrxiv | 0.41 B | |
| Hindawi OA journals | 2.93 B | s2orc | 1.21 B | |
| MeDAL (PubMed abstracts) | 2.49 B |
+ ~30 smaller sources: clinical narratives (open_patients, mimic-iv-ed, mimic-cxr, ctrate, coral, tcga_reports, mts_dialog), knowledge / guidelines (stackexchange-science 0.27 B, dailymed, cpg, gene_ontology, medlineplus, orphapacket, medmentions, trialgpt), pharmacovigilance / relational rendered to NL (ctd, faers, aeolus, onsides, sider, cdc_places, cbioportal, civic, ade_corpus_v2), and deliberate register-diversity (locus legal-code).
(A small number of additional sources with unresolved licenses are intentionally omitted from this list pending license verification; they will be added once resolved.)
Disclosed issue: ~35% of tokens are duplicates (a FineWeb-Edu sharding build bug + PMC repetition); a deduped
corpus (v4_dedup, 79.4 M docs, 0% dup) is ready but was not trained β this release is the original single-epoch corpus.
Governance: includes PhysioNet-credentialed, de-identified, redistribution-restricted clinical sources (MIMIC-IV discharge / radiology, MIMIC-CXR) β any downstream use must confirm PhysioNet DUA compliance.
Evaluation β 19-test suite, 75 metrics, vs a 16-model fleet
KOS-V4-Base is benchmarked as a from-scratch, single-epoch base against 16 external models trained on 1.7β200Γ more data (0.3β36 T tokens). Pool of 17 models, 95 ranked metrics. BPB (bits-per-byte) is tokenizer-agnostic and included as a ranked measure.
Tally: 20 outright rank-1 wins Β· 6 best-tied (frontier parity) Β· 9 top-3 Β· 60 trailing. Wins concentrate on held-out medical BPB (rank 1/17 mean), attention health, internal representation / spectral geometry, medical entity extraction, and reasoning discrimination.
Where it wins (rank-1 of 17): held-out medical BPB (T1 rad / cxr / clin / 5-domain mean 0.4309), long-context BPB (T10 L/2, L/4), attention health (T2 collapsed-head frac 0.0506, entropy-min, BOS-sink), medical entity extraction (RadGraph DR.1/2/3 macro-F1 0.7665 / 0.7990 / 0.8150; BLURB T7 BIOSSES / HoC), reasoning discrimination (T6b MedThink rank-1 0.9450), calibration (T9 mean ECE 0.1366). Notably, the clean-tokenizer + clean-corpus recipe produces healthy internals with no geometric regularizer: logit-lens decodability rises through depth (T3 final-lens accuracy 0.5715 vs BioMedLM 0.2903 β a top-3 placement) and the weight-matrix spectra are mature (T5 WeightWatcher median power-law Ξ± wins; safe / under-trained layer ratios place top-3). Beyond the 20 outright wins, KOS-V4-Base reaches frontier parity (best-tied) on 6 metrics (near-zero dead-neuron rate; saturated needle retrieval at several depths) and top-3 on 9 more.
Radiology and clinical text is its home turf β and there it beats every trillion-token model in the pool. On per-domain held-out BPB (lower = better) it ranks 1st of 17 on radiology reports (0.4761 vs Qwen3-4B/36 T 0.7995, Llama-3-8B 0.7444, Gemma-2-9B 0.7760), chest-X-ray reports (0.5887), and clinical narratives (0.3221); and 1st of 17 on radiology entity/relation extraction (RadGraph DR.1/2/3 macro-F1 0.7665 / 0.7990 / 0.8150). It trails on the general axes the trillion-token models saturate β biomedical literature (rank 17/17) and textbooks (rank 12/17) β but the clinical/radiology wins are decisive enough to carry the 5-domain BPB mean to rank 1/17. A 3 B model on 180 B tokens out-modeling 4β9 B models trained on 8β36 T tokens, specifically on the clinical text it was built for, is the payoff of a from-scratch clinical corpus.
Where it is weak:
- Closed-book medical MCQ (T6 β near-chance): as a 180 B-token base it does not reliably recall parametric medical facts; it is worst on the hardest professional/college splits (mmlu_professional_medicine 0.2096, mmlu_college_medicine 0.2312, both below BioMedLM). Token-volume + instruction-tuning bound.
- Long-context needle retrieval (T10): pool-relative trailing except at the saturated depths (it does beat BioMedLM on the 3-depth mean, 0.8667 vs 0.3667). Token-volume bound.
- Hallucination discipline (Med-HALT T8 FCT 0.0400 / NOTA 0.6600 / FQT 0.3868): all three trail the specialist BioMedLM (0.162 / 0.842 / 0.705) β a real-PubMed-format, instruction-format gap the SFT/RL line addresses.
- Effective-rank geometry (T4 RankMe 170.8 vs pool leaders' ~187) and the byte-level tokenizer single-token rate (T1b 0.0448 vs 0.0572): the model trades a little representational rank / single-token coverage for a smaller, byte-efficient vocabulary. (Anisotropy / isotropy also run high β a known BBPE base characteristic.)
- Demographic bias (T11 CrowS-Pairs |disparity| 1.0791 β rank 9/17, mid-pack, and notably more biased than the biomedical specialists BioMedLM 0.3705 / MedGemma 0.2978): the clean-corpus recipe did not remove social-stereotype bias. Treat generations as unaudited for fairness.
The token- and format-bound axes (T6 knowledge, T10 needle, Med-HALT NOTA / FQT, IFEval) scale with raw pretraining-token volume and instruction tuning β a token-budget gap rather than an architecture flaw; the format-bound ones are the job of the SFT/RL line (KOS-V4-Instruct). Bias and effective-rank are not simply token-budget artifacts and remain open limitations.
Apples-to-apples vs BioMedLM (the only non-commercial, biomedical-only peer; ~300 B PubMed tokens)
KOS-V4-Base wins 28 of 38 comparable cells. Selected:
| test | KOS-V4-Base | BioMedLM | Ξ |
|---|---|---|---|
| T1 BPB 5-corpus mean (lower = better) | 0.4309 | 0.9059 | β0.475 β |
| T2 collapsed-head frac (lower = better) | 0.0506 | 0.4844 | β0.434 β |
| RadGraph-XL macro-F1 (DR.1) | 0.7665 | 0.6196 | +0.147 β |
| RadGraph CXR macro-F1 (DR.2) | 0.7990 | 0.6304 | +0.169 β |
| T6b MedThink rank-1 | 0.9450 | 0.8250 | +0.120 β |
| T7 BLURB mean / 4 | 0.7465 | 0.6829 | +0.064 β |
| pubmedqa | 0.6980 | 0.4440 | +0.254 β |
| T3 final-lens accuracy (higher = better) | 0.5715 | 0.2903 | +0.281 β |
| T10 needle 3-depth mean (higher = better) | 0.8667 | 0.3667 | +0.500 β |
| T9 mean ECE (lower = better) | 0.1366 | 0.2231 | β0.086 β |
| T8 FCT (Med-HALT) | 0.0400 | 0.1620 | β0.122 β |
| T8 NOTA (Med-HALT) | 0.6600 | 0.8420 | β0.182 β |
| T8 FQT (Med-HALT) | 0.3868 | 0.7054 | β0.319 β |
| T4 RankMe effective rank (higher = better) | 170.8 | 186.8 | β16.0 β |
| T11 CrowS-Pairs |disparity| (lower = better) | 1.0791 | 0.3705 | +0.709 β |
KOS-V4-Base wins 28 of 38 comparable cells. Wins concentrate on attention pathology (T2), representation flow (T3), spectral health (T5), radiology entity extraction (Block C), and chemical/disease NER. Losses concentrate on corpus-volume- / instruction-format-bound axes (Med-HALT FCT / NOTA / FQT, long-form closed-book MCQ, BLURB linear probes at low token count) plus two that are not token-budget artifacts: lower effective rank (T4) and higher demographic-bias disparity (T11). BioMedLM is architecturally capped at 1024 context (GPT-2 learned positions); KOS-V4-Base (RoPE, 24,576) holds the long-context axis.
Compute footprint
Pre-training: 24Γ H200 (3 nodes, DDP), 5.73 days, ~3,300 H200-GPU-hours.
Deployment (inference)
| Precision | Approx. VRAM | Notes |
|---|---|---|
| bfloat16 | 7 GB | native weights (6.03 GB) + activations; a single 16 GB GPU is comfortable |
Fine-tunes built on this base
- KOS-V4-Instruct β instruction following + tool / function calling (IFEval 61.6, official BFCL 72.75 / 73 / 60.5) + GGUF.
Intended use & limitations
- Intended use: a base foundation for medical-NLP research and downstream fine-tuning. Strong on held-out medical BPB, attention / representation health, and medical entity extraction.
- Not a knowledge-QA model. As a base LM it does not reliably recall parametric medical facts (closed-book MCQ is near-chance) β fine-tune and/or ground it with retrieval.
- English only. Strong public-benchmark numbers are not validation on real clinical data.
- Measured demographic bias. On CrowS-Pairs (T11) the model is mid-pack (rank 9/17) and more biased than the biomedical specialists (|disparity| 1.0791 vs BioMedLM 0.37 / MedGemma 0.30). The clean-corpus recipe removes structural sink tokens but does not remove social-stereotype bias β outputs are unaudited for fairness.
- Measured hallucination weakness. Med-HALT (T8 FCT / NOTA / FQT) trails the specialist BioMedLM; the model may fabricate confidently.
- Not otherwise safety-tested. Beyond CrowS-Pairs and Med-HALT above, this model has not been red-teamed or evaluated for toxicity or clinical safety. It may produce harmful, biased, or medically inaccurate content.
- Downloads last month
- 11