learning-unit/L1-30B-A5B
<p align="center"> <img src="banner.png" alt="L1-30B-A5B" style="width: 80%;"> </p>
LearningUnit 2.0 (L1-30B-A5B)
L1-30B-A5B is the Korean-locale medical foundation model from Lunit and Lunit Consortium. It is the 30B member of the L1 family, post-trained directly from Gravity-30B-A5B-Base, a sparse Mixture-of-Experts model developed by Trillion Labs and the Lunit Consortium.
L1-30B-A5B preserves the base model's GravityMoEForCausalLM architecture. GravityMoE is weight- and attention-compatible with DeepSeek-V3 while retaining its own Hugging Face architecture name and remote-code registration. Load the model with trust_remote_code=True.
- π°π· Korean clinical locale, trained natively β not machine-translated from English
- β‘ 5.34B active of 29.56B total (sparse MoE)
- π Reasons in
<think>...</think>before answering β budget 2048+ output tokens - π§ Multi-turn retrieval and tool-call trajectories with citation-grounded answers
- π 131,072-token context
π Benchmark
All numbers were produced with CoEval, Lunit's open-source medical LLM evaluation framework.
<p align="center"> <img src="efficiency.png" alt="Chat quality vs MCQA, bubble area = active parameters" style="width: 100%;"> </p>
Knowledge & reasoning
Chat quality
<p align="center"> <img src="healthbench.png" alt="HealthBench Main / Professional / Consensus" style="width: 100%;"> </p>
[!NOTE] HealthBench rubric items are graded by an LLM judge: `zai-org/GLM-5.2-FP8`, thinking disabled (chat_template_kwargs.enable_thinking: false). GLM was chosen because it grades more strictly than the GPT-family judges and keeps a GPT model from judging its own family.π Quickstart
β οΈ Required settings
`repetition_penalty = 1.05` β at the default 1.0 the model degenerates into repeated phrases on long clinical answers. It ships in generation_config.json, but any client that sets its own sampling parameters overrides that. It is not an OpenAI API parameter β through the OpenAI SDK it must go in extra_body or it is dropped silently.
System prompt β the identity line the model was aligned on, and the one every benchmark number below used. Task-specific prompts go after it, not instead of it.
client.chat.completions.create(
model="learning-unit/L1-30B-A5B",
messages=[{"role": "system", "content": "You are Chain-of-Evidence, a medical AI assistant developed by Lunit."}, *messages],
temperature=0.0, # 0.0 for benchmarks and deterministic clinical tasks
top_p=1.0,
max_tokens=32768,
extra_body={"repetition_penalty": 1.05},
)SGLang
Native GravityMoE support is being upstreamed to SGLang. Until that work is merged, use Trillion Labs' `sglang-gravity` fork, which registers GravityMoEForCausalLM on SGLang's DeepSeek-V3-compatible implementation.
pip install "sglang[all] @ git+https://github.com/trillion-labs/sglang-gravity.git#subdirectory=python"Launch the server with the same GravityMoE deployment path as the base model, substituting the L1 checkpoint:
python3 -m sglang.launch_server \
--model-path learning-unit/L1-30B-A5B \
--host 0.0.0.0 --port 30000 \
--tp 4 --context-length 131072 \
--trust-remote-code --dtype bfloat16Transformers
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
name = "learning-unit/L1-30B-A5B"
model = AutoModelForCausalLM.from_pretrained(name, torch_dtype=torch.bfloat16,
device_map="auto", trust_remote_code=True)
tok = AutoTokenizer.from_pretrained(name, trust_remote_code=True)
messages = [
{"role": "system", "content": "You are Chain-of-Evidence, a medical AI assistant developed by Lunit."},
{"role": "user", "content": "μ±μΈ νμμμ Obstructive sleep apneaκ° μμ¬λ λ, μ§λ¨μ μν΄ μ΄λ€ κ²μ¬λ₯Ό μννκ³ μ΄λ μ λ¬Έκ³Όλ‘ μλ’°νλ κ²μ΄ μ ν©νκ°μ?"},
]
inputs = tok([tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)],
return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=2048, do_sample=True, temperature=0.7,
repetition_penalty=1.05)
print(tok.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))π§ Tool use
Tool calling was trained end-to-end against Lunit's own RAG harness β the Chain-of-Evidence MCP servers, with tool schemas frozen at a snapshot. Two consequences:
- Handed a tool that looks nothing like a retrieval tool, the model often answers from parametric knowledge instead of calling it. Force it with
tool_choice: "required", or keep your schema close to what it knows: a query string plus optional filters, returning ranked passages with stable ids. - Citation markers index into what the retrieval tool returned that turn. With no retrieval tool attached they have nothing to point at.
π¬ Examples
Representative prompts per capability. π§ expects a retrieval tool call first.
π°π· Korean clinical practice
- κ΅μμ κ΅κ°κ³ μ β 65μΈ λ¨μ±, 3κ°μκ° κΈ°μΉ¨κ³Ό μ²΄μ€ κ°μ, 30κ°λ ν‘μ°λ ₯, νλΆ Xμ μ μ°μμ½ 3 cm κ²°μ . κ°μ₯ λ¨Όμ μνν κ²μ¬λ? β νλΆ CT β‘ κ°λ΄ μΈν¬κ²μ¬ β’ κΈ°κ΄μ§λ΄μκ²½ β£ PET-CT β€ κ²½νΌμ μΈμΉ¨ν‘μΈμκ²
- KTAS μκΈ λΆλ₯ β μ΄ νμμ KTAS μ€μ¦λ(1β5)λ₯Ό λΆλ₯νμΈμ. [νμ] 78μΈ μ¬μ±, 22μκ²½ κ°μκΈ° μ’μΈ‘ μλ©΄λ§λΉμ ꡬμμ₯μ , λν΅ νΈμ, κ³ νμ λ³λ ₯, BP 172/88, HR 92, SpOβ 98%, μμ λͺ λ£.
- μκΈμ€ κ°λ³μ§λ¨ β 54μΈ λ¨μ±, 2μκ° μ μμλ μλ³΅λΆ ν΅μ¦κ³Ό μμλ, 30κ°λ ν‘μ°Β·λΉλ¨, BP 148/92 HR 104, μ¬μ λ λ―ΈνμΈ. λμΉλ©΄ μ λλ μ§λ¨λΆν° μ°μ μμλ‘.
- μ²κ΅¬ κ΄λ ¨ μ 무 π§ β λ§μ± νΉλ°μ± λλλ¬κΈ°μ μ€λ§λ¦¬μ£Όλ§ κΈμ¬ μΈμ κΈ°μ€κ³Ό μΈμ ν¬μ¬ κΈ°κ°μ κ·Όκ±° κ³ μμ ν¨κ». / νλ κ°λ°λ¦° 75 mg μ²λ°©μ μλ³μ΄ M54.5 νλμΈ μ²κ΅¬ 건, λλ½λ μΈμ μλ³μ΄ μλμ§.
- μλ£ λ²λ Ή π§ β μ§λ£κΈ°λ‘λΆ λ³΄μ‘΄κΈ°κ°κ³Ό, μ μμ무기λ‘μ μΈλΆ ν΄λΌμ°λμ 보κ΄ν λμ μ건μ κ·Όκ±° μ‘°λ¬Έκ³Ό ν¨κ».
π§ Clinical reasoning
- Differential diagnosis β 45F with lupus nephritis on mycophenolate and prednisone, fever, dry cough, bilateral ground-glass opacities, CD4 180. Differential and workup?
- ADR causality β 80μΈ μ¬μ±, moxifloxacin 400 mg IV ν¬μ¬ μ€ μ μ μμκ° λ°μ, μ€λ¨ ν νΈμ , μ¬ν¬μ¬ μμ. WHO-UMC κΈ°μ€μΌλ‘ μΈκ³Όκ΄κ³ νκ°.
- Clinical calculation β 72μΈ λ¨μ±, 68 kg, Cr 1.4 mg/dL. Cockcroft-Gault λ‘ CrCl κ³μ° ν μν½μ¬λ° μ©λ μ‘°μ νμ μ¬λΆ.
π Evidence & communication
- Literature Q&A π§ β Does perioperative continuation of SGLT2 inhibitors increase euglycemic DKA risk? Cite every claim.
- Guideline Q&A π§ β 2ν λΉλ¨μμ SGLT2 μ΅μ μ λ₯Ό 1μ°¨ μ½μ λ‘ κ³ λ €ν μ μλ 쑰건μ μ§μΉ¨ κ·Όκ±°μ ν¨κ».
- Patient education β I use insulin daily. How should I store it at home?
- Clinical documentation β Overnight progress note from labs, vitals, and a stable nursing report.
β οΈ Limitations
- Not a substitute for professional medical judgment. Outputs may be wrong, incomplete, or outdated, and need review by a qualified clinician.
- Knowledge is frozen at the training cutoff β guidelines, κ³ μ, and drug approvals move. Korean reimbursement answers in particular must be re-verified against current notices.
- Thinking costs tokens.
<think>reasoning raises latency and token use. - Tool calling is harness-shaped. Quality degrades the further your tool schemas drift from the ones it was trained on. See Tool use above.
π Citation
@misc{lunit2026l1_30b,
title={L1-30B-A5B: A Korean-Locale Clinical Language Model by Lunit},
author={Lunit},
year={2026},
url={https://huggingface.co/learning-unit/L1-30B-A5B}
}π€ Acknowledgements
This work was supported by the Domain-Specific Foundation Model Project (μΈκ³΅μ§λ₯ νΉν νμ΄λ°μ΄μ λͺ¨λΈ νλ‘μ νΈ), funded by the Ministry of Science and ICT (κ³ΌνκΈ°μ μ 보ν΅μ λΆ) and managed by the National IT Industry Promotion Agency (NIPA).
L1-30B-A5B is a collaborative effort by the following consortium members:
Industry
- Lunit
- Trillion Labs
- SK Biopharmaceuticals
- Kakao Healthcare
- AIGEN Sciences
- D-Circle
- Rebellions
- Standigm
Academia
- Prof. Choi Yun-jae's Lab from KAIST
- Prof. Hong Seung-hoon's Lab from KAIST
- Prof. Jung Yu-seong's Lab from SNU
- Prof. Kim Hyun-woo's Lab from KAIST
- Prof. Kim Tae-gyun's Lab from KAIST
- Prof. Ye Jong-cheol's Lab from KAIST
Hospitals
- NHIS Ilsan Hospital
- Ewha Womans University Seoul Hospital
- Keimyung University Dongsan Medical Center
- Konyang University Hospital
- Korea University Research & Business Foundation
- Kyung Hee University Hospital at Gangdong
- Kyung Hee University Medical Center
- Pusan National University Yangsan Hospital
- Yongin Severance Hospital
<p align="center"> <img src="consortium.png" alt="Consortium Members" style="width: 80%;"> </p>
π License
This model is licensed under the Apache 2.0 License.
π¬ Contact
- Taesoo Kim (κΉνμ) β taesoo.kim@lunit.io
- Donggeun Yoo (μ λκ·Ό) β dgyoo@lunit.io
