Text Generation
Transformers
Safetensors
English
qwen3
clinical
medical
instruction-following
tool-calling
function-calling
KOS-V4
from-scratch
conversational
text-generation-inference
Instructions to use Kentucky-Open-Science/KOS-V4-Instruct with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Kentucky-Open-Science/KOS-V4-Instruct with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Kentucky-Open-Science/KOS-V4-Instruct") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Kentucky-Open-Science/KOS-V4-Instruct") model = AutoModelForCausalLM.from_pretrained("Kentucky-Open-Science/KOS-V4-Instruct", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Kentucky-Open-Science/KOS-V4-Instruct 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-Instruct" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Kentucky-Open-Science/KOS-V4-Instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Kentucky-Open-Science/KOS-V4-Instruct
- SGLang
How to use Kentucky-Open-Science/KOS-V4-Instruct 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-Instruct" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Kentucky-Open-Science/KOS-V4-Instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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-Instruct" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Kentucky-Open-Science/KOS-V4-Instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Kentucky-Open-Science/KOS-V4-Instruct with Docker Model Runner:
docker model run hf.co/Kentucky-Open-Science/KOS-V4-Instruct
Commercial IFEval AVG4 baselines: tiered Verified/Reported/Estimate list with citations
Browse files
README.md
CHANGED
|
@@ -18,61 +18,56 @@ tags:
|
|
| 18 |
<img src="scratch_llm.png" alt="Scratch LLM" width="400"/>
|
| 19 |
</div>
|
| 20 |
|
| 21 |
-
> **Code name: Scratch.** KOS-V4 is nicknamed **Scratch LLM**
|
| 22 |
-
> small team on a fraction of the data and compute of commercial models. It is not a frontier model.
|
| 23 |
|
| 24 |
> ⚠️ **Research use only.** This model is provided for research purposes only and must not be used for any commercial,
|
| 25 |
> clinical, legal, or production-grade applications. The user assumes all risks associated with its use.
|
| 26 |
|
| 27 |
---
|
| 28 |
|
| 29 |
-
# KOS-V4-Instruct — a from-scratch 3B
|
| 30 |
|
| 31 |
**KOS-V4-Instruct** is an open-weights **3B language model trained completely from scratch** by a University of
|
| 32 |
Kentucky College of Medicine team ([Office for Research](https://medicine.uky.edu/sites/research),
|
| 33 |
[Center for Clinical and Translational Sciences](https://www.ccts.uky.edu/)). It is a decoder-only transformer
|
| 34 |
-
(Qwen3 architecture, bespoke 3B
|
| 35 |
-
|
| 36 |
-
post-trained with full-parameter SFT followed by **GRPO reinforcement learning** against the official IFEval checker.
|
| 37 |
|
| 38 |
-
|
|
|
|
|
|
|
| 39 |
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
|
| 44 |
-
|
| 45 |
-
This is the same "IFEval" metric published on the Hugging Face Open LLM Leaderboard. We do **not** headline the looser
|
| 46 |
-
four-metric average (which reads a few points higher).
|
| 47 |
-
|
| 48 |
-
| IFEval **strict-avg** | model | notes |
|
| 49 |
| --: | :-- | :-- |
|
| 50 |
-
| **61.6** | **KOS-V4-Instruct (ours)** | from scratch,
|
| 51 |
-
| 55.9 | GPT-3.5-turbo-1106 (the original ChatGPT) | OpenAI |
|
| 52 |
-
| 64.
|
| 53 |
-
| 75.2 | Llama-3.2-3B-Instruct | Meta |
|
| 54 |
-
| 85.0 | Qwen3-4B-Instruct | Alibaba |
|
| 55 |
-
|
| 56 |
-
**Honest standing.** KOS-V4-Instruct (61.6) is **above the original GPT-3.5-turbo generation (55.9)** and **below
|
| 57 |
-
current small instruct models** — Qwen2.5-3B (64.0), Llama-3.2-3B (75.2) and Qwen3-4B (85.0), all of which were
|
| 58 |
-
trained on far more data and instruction-tuning. This is a strong result **for its data and compute budget**, not a
|
| 59 |
-
claim to lead the current field.
|
| 60 |
|
| 61 |
-
|
| 62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
|
| 64 |
## Core specifications
|
| 65 |
| Attribute | Detail |
|
| 66 |
| :--- | :--- |
|
| 67 |
| **Architecture** | Decoder-only Transformer (`Qwen3ForCausalLM`), Grouped-Query Attention |
|
| 68 |
| **Parameters** | 3.015 B |
|
| 69 |
-
| **Hidden
|
| 70 |
-
| **Attention** | 24 query / 8 KV heads (GQA 3:1), head_dim 128, per-head QK-RMSNorm
|
| 71 |
-
| **Feed-forward** | SwiGLU, intermediate
|
| 72 |
-
| **Embeddings** | Untied input/output |
|
| 73 |
| **Vocabulary** | 32,000, custom medical **byte-level BPE** |
|
| 74 |
| **Context length** | 24,576 (`max_position_embeddings` 65,536) |
|
| 75 |
-
| **Position encoding** | RoPE, θ = 25,000 |
|
| 76 |
| **Precision** | bfloat16 |
|
| 77 |
| **Chat template** | ChatML (`<|im_start|>` / `<|im_end|>`, eos = `<|im_end|>`) |
|
| 78 |
| **Pretraining tokens** | 180.3 B (English medical/biomedical + web) |
|
|
@@ -86,96 +81,122 @@ model_id = "Kentucky-Open-Science/KOS-V4-Instruct"
|
|
| 86 |
tok = AutoTokenizer.from_pretrained(model_id)
|
| 87 |
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="auto")
|
| 88 |
|
| 89 |
-
messages = [
|
| 90 |
-
{"role": "user", "content": "List three contraindications for ibuprofen. Answer in exactly 3 bullet points."}
|
| 91 |
-
]
|
| 92 |
inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
|
| 93 |
-
|
| 94 |
-
out = model.generate(inputs, max_new_tokens=256, do_sample=False)
|
| 95 |
print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
|
| 96 |
```
|
| 97 |
-
Serve with vLLM / TGI as a standard `Qwen3`
|
| 98 |
|
| 99 |
-
## Prompt / chat format
|
| 100 |
-
KOS-V4-Instruct uses **ChatML**:
|
| 101 |
```
|
| 102 |
<|im_start|>system
|
| 103 |
-
{system
|
| 104 |
<|im_start|>user
|
| 105 |
-
{user
|
| 106 |
<|im_start|>assistant
|
| 107 |
{response}<|im_end|>
|
| 108 |
```
|
| 109 |
-
`<|im_end|>` is the true
|
| 110 |
-
|
| 111 |
|
| 112 |
## Pre-training (the KOS-V4 base)
|
| 113 |
-
Trained from scratch, not distilled or continued
|
|
|
|
|
|
|
|
|
|
| 114 |
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
| Objective | Pure next-token cross-entropy (**no auxiliary losses**) |
|
| 119 |
-
| Optimizer | AdamW (β1 = 0.9, β2 = 0.999), weight decay 0.0 |
|
| 120 |
-
| Peak learning rate | 3.0e-4, cosine, warmup ratio 0.01, 1 epoch |
|
| 121 |
-
| Gradient clipping | 1.0 max-norm |
|
| 122 |
-
| Sequence length | 24,576 (whole-document neat-packing; docs > 24k dropped, never split) |
|
| 123 |
-
| Global batch | 589,824 tokens/step |
|
| 124 |
-
| Precision / kernels | bfloat16, FlashAttention-2 |
|
| 125 |
-
| Total steps / tokens | 305,613 / 180.3 B token-positions |
|
| 126 |
-
|
| 127 |
-
### Training data mixture
|
| 128 |
-
English-only, **medical/biomedical-first**, **49 sources / 130 M document chunks**. Largest contributors
|
| 129 |
-
(approx. tokens): PubMed Central full text 77 B, FineWeb-Edu (readability-filtered web) 51 B, mMedC-en 6.3 B,
|
| 130 |
-
BlueScrubs 4.6 B, plus ~40 smaller clinical / ontology / pharmacovigilance sources and de-identified clinical corpora.
|
| 131 |
-
|
| 132 |
-
### Known pre-training issues (disclosed)
|
| 133 |
-
- **35 % duplicate tokens.** An audit found 35 % of training tokens were duplicate copies (a FineWeb-Edu shard/filter
|
| 134 |
-
build bug plus PMC repetition). A fully deduplicated corpus was built but **not** trained; this base carries the
|
| 135 |
-
duplication, and dedup is a ready improvement for the next base.
|
| 136 |
-
- **38 "sink" tokens → surgical tokenizer.** 38 orphan BPE merges behaved as a localized attention sink; the merge
|
| 137 |
-
rules were removed (vocab stays 32,000), the ids baked as `bad_words_ids`, and a fail-closed gate enforced.
|
| 138 |
-
- **RoPE θ drift.** A planned θ=10,000 was never applied; the model trained at **θ=25,000** — pin it on export.
|
| 139 |
|
| 140 |
## Post-training (this model)
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
instruction-following taxonomy** (generated with a verifier-in-the-loop loop, keeping only responses that pass the
|
| 145 |
-
official IFEval checker), generic function-calling (xLAM), and grounded cite/abstain RAG. A forgetting gate (broad
|
| 146 |
-
perplexity ≤ 1.5× base) guards retention.
|
| 147 |
-
|
| 148 |
-
### 2. Reinforcement learning (GRPO)
|
| 149 |
-
**GRPO** via **verl**, with **deterministic verifiable rewards — no reward model, no LLM judge.** The primary reward
|
| 150 |
-
runs the *official* IFEval constraint checker. GRPO lifted the **official IFEval strict-avg from 49.4 (SFT base) to
|
| 151 |
-
61.6 at step 1120 (shipped)**. The shipped weights are checkpoint **step 1120**, selected as the argmax of the
|
| 152 |
-
official strict-avg over all RL checkpoints.
|
| 153 |
|
| 154 |
-
|
|
|
|
|
|
|
| 155 |
|
| 156 |
-
##
|
| 157 |
-
Strict sub-metrics and the strict-average (the headline metric):
|
| 158 |
|
|
|
|
| 159 |
| IFEval (%) | KOS-V4-Instruct | GPT-3.5-turbo-1106 | Qwen2.5-3B | Llama-3.2-3B | Qwen3-4B |
|
| 160 |
| :-- | --: | --: | --: | --: | --: |
|
| 161 |
| prompt-level strict | 56.0 | 50.5 | 59.5 | 71.2 | 82.3 |
|
| 162 |
| instruction-level strict | 67.1 | 61.2 | 68.5 | 79.3 | 87.6 |
|
| 163 |
| **strict-avg (headline)** | **61.6** | **55.9** | **64.0** | **75.2** | **85.0** |
|
| 164 |
|
| 165 |
-
|
|
|
|
| 166 |
|
|
|
|
| 167 |
| BFCL (official FC) | KOS-V4-Instruct | Qwen2.5-3B | Llama-3.2-3B |
|
| 168 |
| :-- | :-- | :-- | :-- |
|
| 169 |
| simple / multiple / parallel | **72.75 / 73.00 / 60.50** | 95.00 / 92.00 / 74.50 | 91.75 / 92.50 / 88.50 |
|
| 170 |
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
## Compute footprint
|
| 177 |
-
|
| 178 |
-
- **SFT + RL (GRPO):** single 8-GPU node each.
|
| 179 |
|
| 180 |
## Deployment (inference)
|
| 181 |
| Precision | Approx. VRAM | Notes |
|
|
@@ -184,10 +205,7 @@ a claim to lead the current frontier.
|
|
| 184 |
| INT8 / INT4 (approx.) | 4 / 2.5 GB | not shipped; typical for a 3 B model |
|
| 185 |
|
| 186 |
## Intended use & limitations
|
| 187 |
-
- **Intended use:** general instruction following, structured output, and function/tool calling in clinical-adjacent
|
| 188 |
-
|
| 189 |
-
- **
|
| 190 |
-
parametric medical facts and is not intended for medical multiple-choice exams. **Ground it with retrieval instead.**
|
| 191 |
-
- **Below current small models.** On IFEval (strict-avg 61.6) and BFCL, newer small instruct models score higher; this
|
| 192 |
-
model's results are notable for its data/compute budget, not for leading the field.
|
| 193 |
- **English only.** Strong public-benchmark numbers are **not** validation on real clinical data.
|
|
|
|
| 18 |
<img src="scratch_llm.png" alt="Scratch LLM" width="400"/>
|
| 19 |
</div>
|
| 20 |
|
| 21 |
+
> **Code name: Scratch.** The KOS-V4 series is nicknamed **Scratch LLM**: it was trained **completely from scratch**
|
| 22 |
+
> by a small team on a fraction of the data and compute of commercial models. It is not a frontier model.
|
| 23 |
|
| 24 |
> ⚠️ **Research use only.** This model is provided for research purposes only and must not be used for any commercial,
|
| 25 |
> clinical, legal, or production-grade applications. The user assumes all risks associated with its use.
|
| 26 |
|
| 27 |
---
|
| 28 |
|
| 29 |
+
# KOS-V4-Instruct — a from-scratch 3B that reaches original-ChatGPT-level instruction-following
|
| 30 |
|
| 31 |
**KOS-V4-Instruct** is an open-weights **3B language model trained completely from scratch** by a University of
|
| 32 |
Kentucky College of Medicine team ([Office for Research](https://medicine.uky.edu/sites/research),
|
| 33 |
[Center for Clinical and Translational Sciences](https://www.ccts.uky.edu/)). It is a decoder-only transformer
|
| 34 |
+
(Qwen3 architecture, bespoke 3B config) optimized for **instruction following and tool / function calling**. Its
|
| 35 |
+
instruction ability comes from **GRPO reinforcement learning** on a from-scratch clinical base.
|
|
|
|
| 36 |
|
| 37 |
+
**Every number in this card is IFEval reported as strict-avg** = `(prompt-level strict + instruction-level strict) / 2`
|
| 38 |
+
— the exact metric the Hugging Face Open LLM Leaderboard publishes as "IFEval." We do **not** use the looser
|
| 39 |
+
four-metric average anywhere.
|
| 40 |
|
| 41 |
+
**David and Goliath.** KOS-V4 was trained on **180 billion tokens using 24 GPUs**. OpenAI trained the original
|
| 42 |
+
ChatGPT (**GPT-3.5**) on a ~10,000-GPU supercomputer, and today's open models train on **trillions** of tokens
|
| 43 |
+
(Qwen2.5 ~18T, Llama-3 ~15T). KOS-V4's 180B tokens is **~100× less data**. From that budget:
|
| 44 |
|
| 45 |
+
| IFEval **strict-avg** | model | who built it, and how |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
| --: | :-- | :-- |
|
| 47 |
+
| **61.6** | **KOS-V4-Instruct (ours)** | a small team, from scratch, 180B tokens, 24 GPUs |
|
| 48 |
+
| 55.9 | GPT-3.5-turbo-1106 (the original ChatGPT) | OpenAI, ~10,000-GPU supercomputer |
|
| 49 |
+
| 64.7 | Qwen2.5-3B-Instruct | Alibaba, ~18 trillion tokens |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
|
| 51 |
+
KOS-V4-Instruct **clears the original GPT-3.5-turbo generation (55.9)** and lands within ~3 points of the
|
| 52 |
+
commercially trained Qwen2.5-3B (64.7). It also adds real **tool / function calling** (official BFCL 72.75/73/60.5),
|
| 53 |
+
which the original ChatGPT lacked at launch — though modern small models score higher there.
|
| 54 |
+
|
| 55 |
+
**Benchmarks are official-suite only:** IFEval via the EleutherAI lm-evaluation-harness (`--apply_chat_template`),
|
| 56 |
+
BFCL via the official `bfcl_eval`. Peer strict-avg values are the Open LLM Leaderboard's "IFEval" (strict). Our 61.6
|
| 57 |
+
is measured on our own copy of that harness; it calibrates cleanly (we measure Qwen2.5-3B at 64.0 vs the leaderboard's
|
| 58 |
+
64.7, a 0.7-pt gap).
|
| 59 |
|
| 60 |
## Core specifications
|
| 61 |
| Attribute | Detail |
|
| 62 |
| :--- | :--- |
|
| 63 |
| **Architecture** | Decoder-only Transformer (`Qwen3ForCausalLM`), Grouped-Query Attention |
|
| 64 |
| **Parameters** | 3.015 B |
|
| 65 |
+
| **Hidden / Layers** | 3072 / 28 |
|
| 66 |
+
| **Attention** | 24 query / 8 KV heads (GQA 3:1), head_dim 128, per-head QK-RMSNorm |
|
| 67 |
+
| **Feed-forward** | SwiGLU, intermediate 8192 |
|
|
|
|
| 68 |
| **Vocabulary** | 32,000, custom medical **byte-level BPE** |
|
| 69 |
| **Context length** | 24,576 (`max_position_embeddings` 65,536) |
|
| 70 |
+
| **Position encoding** | RoPE, θ = 25,000 (pin on export) |
|
| 71 |
| **Precision** | bfloat16 |
|
| 72 |
| **Chat template** | ChatML (`<|im_start|>` / `<|im_end|>`, eos = `<|im_end|>`) |
|
| 73 |
| **Pretraining tokens** | 180.3 B (English medical/biomedical + web) |
|
|
|
|
| 81 |
tok = AutoTokenizer.from_pretrained(model_id)
|
| 82 |
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="auto")
|
| 83 |
|
| 84 |
+
messages = [{"role": "user", "content": "List three contraindications for ibuprofen. Answer in exactly 3 bullet points."}]
|
|
|
|
|
|
|
| 85 |
inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
|
| 86 |
+
out = model.generate(inputs, max_new_tokens=256, do_sample=False)
|
|
|
|
| 87 |
print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
|
| 88 |
```
|
| 89 |
+
Serve with vLLM / TGI as a standard `Qwen3` causal LM. **Pin RoPE θ = 25000** on any GGUF/quantized export.
|
| 90 |
|
| 91 |
+
## Prompt / chat format (ChatML)
|
|
|
|
| 92 |
```
|
| 93 |
<|im_start|>system
|
| 94 |
+
{system (optional)}<|im_end|>
|
| 95 |
<|im_start|>user
|
| 96 |
+
{user}<|im_end|>
|
| 97 |
<|im_start|>assistant
|
| 98 |
{response}<|im_end|>
|
| 99 |
```
|
| 100 |
+
`<|im_end|>` is the true eos. Tool calling uses `<tool_call>` / `<tool_response>` tokens (pass tools via the chat
|
| 101 |
+
template `tools=` argument).
|
| 102 |
|
| 103 |
## Pre-training (the KOS-V4 base)
|
| 104 |
+
Trained from scratch, not distilled or continued. Pure next-token cross-entropy (**no auxiliary losses**), AdamW,
|
| 105 |
+
peak LR 3.0e-4 cosine, 1 epoch, seq 24,576 (whole-document neat-packing), bf16 + FlashAttention-2, 305,613 steps /
|
| 106 |
+
180.3 B token-positions. Data: English-only, medical/biomedical-first, **49 sources / 130 M chunks** (PubMed Central
|
| 107 |
+
77 B, FineWeb-Edu 51 B, mMedC-en 6.3 B, BlueScrubs 4.6 B, + ~40 smaller clinical/ontology sources).
|
| 108 |
|
| 109 |
+
**Disclosed issues:** 35 % duplicate tokens (a FineWeb-Edu build bug + PMC repetition; a deduped corpus is ready but
|
| 110 |
+
was not trained); 38 "sink" BPE merges removed surgically (vocab stays 32,000, ids gated as `bad_words_ids`); RoPE θ
|
| 111 |
+
trained at 25,000 (a planned 10,000 was never applied).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
|
| 113 |
## Post-training (this model)
|
| 114 |
+
**SFT:** full-parameter (not LoRA), ChatML, LR 7e-5, 1 epoch, NEFTune α=5; corpus ~0.9 M rows — a stratified
|
| 115 |
+
medical+tool+general majority, a **23-family instruction taxonomy** (verifier-in-the-loop; only responses passing the
|
| 116 |
+
official IFEval checker kept), xLAM function-calling, and grounded cite/abstain RAG. Forgetting gate (broad ppl ≤1.5×).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
|
| 118 |
+
**RL (GRPO via verl):** deterministic verifiable rewards, **no reward model, no LLM judge**; the primary reward runs
|
| 119 |
+
the *official* IFEval checker. GRPO lifted the **official IFEval strict-avg from 49.4 (SFT base) to 61.6 at step 1120
|
| 120 |
+
(shipped)** — the argmax over all RL checkpoints (sha256-verified as the released weights).
|
| 121 |
|
| 122 |
+
## Evaluation & benchmarks
|
|
|
|
| 123 |
|
| 124 |
+
### IFEval (official lm-eval-harness, `--apply_chat_template`) — strict metrics
|
| 125 |
| IFEval (%) | KOS-V4-Instruct | GPT-3.5-turbo-1106 | Qwen2.5-3B | Llama-3.2-3B | Qwen3-4B |
|
| 126 |
| :-- | --: | --: | --: | --: | --: |
|
| 127 |
| prompt-level strict | 56.0 | 50.5 | 59.5 | 71.2 | 82.3 |
|
| 128 |
| instruction-level strict | 67.1 | 61.2 | 68.5 | 79.3 | 87.6 |
|
| 129 |
| **strict-avg (headline)** | **61.6** | **55.9** | **64.0** | **75.2** | **85.0** |
|
| 130 |
|
| 131 |
+
*(These four peers are measured on our own harness for exact apples-to-apples; the "in context" table below uses the
|
| 132 |
+
public Open LLM Leaderboard strict number for a wider set.)*
|
| 133 |
|
| 134 |
+
### BFCL (official `bfcl_eval`, function-calling mode; simple / multiple / parallel)
|
| 135 |
| BFCL (official FC) | KOS-V4-Instruct | Qwen2.5-3B | Llama-3.2-3B |
|
| 136 |
| :-- | :-- | :-- | :-- |
|
| 137 |
| simple / multiple / parallel | **72.75 / 73.00 / 60.50** | 95.00 / 92.00 / 74.50 | 91.75 / 92.50 / 88.50 |
|
| 138 |
|
| 139 |
+
## IFEval in context (strict-avg, models our size or larger)
|
| 140 |
+
One metric for everyone: **strict-avg**. Open-model values are the **Open LLM Leaderboard "IFEval"** (which *is*
|
| 141 |
+
strict-avg). Commercial rows are **Proprietary**; a **\*** means the strict value is an **estimate** (no official
|
| 142 |
+
strict sub-metrics published — estimated from the model's published AVG4/prompt-strict, which run a few points above
|
| 143 |
+
strict) and a **+** means the parameter count is unofficial. Our 61.6 is measured on our harness (calibrated above).
|
| 144 |
+
|
| 145 |
+
| model | weights | company | released | params | IFEval strict-avg |
|
| 146 |
+
| :-- | :-- | :-- | :-- | :-- | --: |
|
| 147 |
+
| GPT-4o-mini | Proprietary | OpenAI | Jul 2024 | 8B + | 79 \* |
|
| 148 |
+
| Llama-3.2-3B-Instruct | Open | Meta | Sep 2024 | 3.2B | 73.9 |
|
| 149 |
+
| Qwen2.5-3B-Instruct | Open | Alibaba | Sep 2024 | 3.0B | 64.7 |
|
| 150 |
+
| Phi-3-medium-4k-instruct | Open | Microsoft | May 2024 | 14.0B | 64.2 |
|
| 151 |
+
| Mistral-Large | Proprietary | Mistral AI | Feb 2024 | 46.7B + | 63 \* |
|
| 152 |
+
| **KOS-V4-Instruct (ours)** | **Open** | **Univ. of Kentucky** | **Jul 2026** | **3.0B** | **61.6** |
|
| 153 |
+
| Yi-1.5-9B-Chat | Open | 01.AI | May 2024 | 8.8B | 60.5 |
|
| 154 |
+
| Phi-3.5-mini-instruct | Open | Microsoft | Aug 2024 | 3.8B | 57.7 |
|
| 155 |
+
| GPT-3.5-turbo-0613 | Proprietary | OpenAI | Jun 2023 | 20B + | 57 \* |
|
| 156 |
+
| Command-R | Open | Cohere | Mar 2024 | 35B | 57 \* |
|
| 157 |
+
| Phi-3-mini-4k-instruct | Open | Microsoft | Apr 2024 | 3.8B | 56.1 |
|
| 158 |
+
| GPT-3.5-turbo-1106 | Proprietary | OpenAI | Nov 2023 | 20B + | 55.9 |
|
| 159 |
+
| Mistral-7B-Instruct-v0.2 | Open | Mistral AI | Dec 2023 | 7.2B | 55.0 |
|
| 160 |
+
| Gemini-1.0-Pro | Proprietary | Google | Dec 2023 | 30B + | 55 \* |
|
| 161 |
+
| Mistral-Medium | Proprietary | Mistral AI | Dec 2023 | 100B + | 55 \* |
|
| 162 |
+
| Mistral-7B-Instruct-v0.3 | Open | Mistral AI | May 2024 | 7.2B | 54.7 |
|
| 163 |
+
| gemma-1.1-7b-it | Open | Google | Mar 2024 | 8.5B | 50.4 |
|
| 164 |
+
| zephyr-7b-beta | Open | Hugging Face | Oct 2023 | 7.2B | 49.5 |
|
| 165 |
+
| GPT-3.5-turbo-0125 | Proprietary | OpenAI | Jan 2024 | 20B + | 49 \* |
|
| 166 |
+
| Llama-3.1-8B-Instruct | Open | Meta | Jul 2024 | 8.0B | 44.3 |
|
| 167 |
+
| Qwen1.5-7B-Chat | Open | Alibaba | Jan 2024 | 7.7B | 43.7 |
|
| 168 |
+
| Llama-2-13b-chat | Open | Meta | Jul 2023 | 13.0B | 39.8 |
|
| 169 |
+
| Qwen1.5-4B-Chat | Open | Alibaba | Jan 2024 | 4.0B | 31.6 |
|
| 170 |
+
|
| 171 |
+
**\* strict estimate** — no official IFEval strict sub-metrics are published for this model; the value is estimated
|
| 172 |
+
from its published AVG4 or prompt-strict (loose metrics run ~2–4 pts above strict). **\+ unofficial params** — never
|
| 173 |
+
disclosed by the provider (industry estimate: GPT-3.5 ~20B, GPT-4o-mini ~8B, Mistral-Large ~46.7B, Mistral-Medium
|
| 174 |
+
~100B, Gemini-1.0-Pro ~30B).
|
| 175 |
+
|
| 176 |
+
**Reading.** At 3B, KOS-V4 (61.6) beats every measured GPT-3.5-turbo snapshot of the original ChatGPT (1106 = 55.9,
|
| 177 |
+
0125 ≈ 49, 0613 ≈ 57 est), plus Yi-1.5-9B, both Mistral-7Bs, gemma-1.1, zephyr, **Meta's Llama-3.1-8B (44.3)**,
|
| 178 |
+
Llama-2-13b and the Qwen1.5 chats. Ahead of it: Llama-3.2-3B (73.9), Qwen2.5-3B (64.7), Phi-3-medium-14B (64.2), and
|
| 179 |
+
the frontier proprietary models. This is a strong result **for a from-scratch 3B on 180B tokens and 24 GPUs**, not a
|
| 180 |
+
claim to lead the current field.
|
| 181 |
+
|
| 182 |
+
## Commercial baselines (strict-avg)
|
| 183 |
+
| commercial model | company | snapshot | strict-avg | basis |
|
| 184 |
+
| :-- | :-- | :-- | --: | :-- |
|
| 185 |
+
| GPT-4 | OpenAI | gpt-4-0613 | 80.6 | computed from published strict sub-metrics (77.1 / 84.1), InternLM2 report |
|
| 186 |
+
| Command-R+ | Cohere | c4ai-command-r-plus | 76.6 | strict sub-metrics (72.8 / 80.5), Open LLM Leaderboard raw |
|
| 187 |
+
| GPT-3.5-turbo | OpenAI | gpt-3.5-turbo-1106 | 55.9 | strict sub-metrics (50.5 / 61.2), InternLM2 report |
|
| 188 |
+
| Claude-3.5-Sonnet | Anthropic | 20240620 | ~83 \* | estimate from published AVG4 86.2 (Llama 3.1 report) |
|
| 189 |
+
| GPT-4o | OpenAI | 2024-05-13 | ~81 \* | estimate from AVG4 84.3 |
|
| 190 |
+
| Gemini-1.5-Pro | Google | May 2024 | ~79 \* | estimate from AVG4 82.3 |
|
| 191 |
+
| Claude-3-Haiku | Anthropic | Mar 2024 | ~65 \* | estimate from AVG4 68.1 |
|
| 192 |
+
|
| 193 |
+
**Sources.** IFEval definition: `google-research/instruction_following_eval`. Open-model strict-avg:
|
| 194 |
+
`open-llm-leaderboard/contents` (its "IFEval" column). Commercial strict sub-metrics: InternLM2 report
|
| 195 |
+
(arXiv:2403.17297) and Open LLM Leaderboard raw results. `~ *` rows are estimates from published AVG4 (strict runs a
|
| 196 |
+
few points lower), clearly labeled.
|
| 197 |
|
| 198 |
## Compute footprint
|
| 199 |
+
Pre-training: 24× H200 (3 nodes, DDP), 5.73 days, ~3,300 H200-GPU-hours. SFT + RL (GRPO): a single 8-GPU node each.
|
|
|
|
| 200 |
|
| 201 |
## Deployment (inference)
|
| 202 |
| Precision | Approx. VRAM | Notes |
|
|
|
|
| 205 |
| INT8 / INT4 (approx.) | 4 / 2.5 GB | not shipped; typical for a 3 B model |
|
| 206 |
|
| 207 |
## Intended use & limitations
|
| 208 |
+
- **Intended use:** general instruction following, structured output, and function/tool calling in clinical-adjacent workflows.
|
| 209 |
+
- **Not a medical-knowledge QA model.** It follows instructions and calls tools; it does not reliably recall parametric medical facts. **Ground it with retrieval instead.**
|
| 210 |
+
- **Below current small models.** On IFEval (strict-avg 61.6) and BFCL, newer small instruct models score higher; this model's results are notable for its data/compute budget, not for leading the field.
|
|
|
|
|
|
|
|
|
|
| 211 |
- **English only.** Strong public-benchmark numbers are **not** validation on real clinical data.
|