Instructions to use dataslab/DSLM-LST-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use dataslab/DSLM-LST-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="dataslab/DSLM-LST-9B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("dataslab/DSLM-LST-9B") model = AutoModelForMultimodalLM.from_pretrained("dataslab/DSLM-LST-9B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.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=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use dataslab/DSLM-LST-9B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "dataslab/DSLM-LST-9B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dataslab/DSLM-LST-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/dataslab/DSLM-LST-9B
- SGLang
How to use dataslab/DSLM-LST-9B 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 "dataslab/DSLM-LST-9B" \ --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": "dataslab/DSLM-LST-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'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 "dataslab/DSLM-LST-9B" \ --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": "dataslab/DSLM-LST-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use dataslab/DSLM-LST-9B with Docker Model Runner:
docker model run hf.co/dataslab/DSLM-LST-9B
DSLM-LST-9B
DSLM-LST-9B is a Qwen3.5-9B derivative refined with our in-house Language Selection Tuning (LST) technique.
The goal is to suppress unwanted Chinese-character generation when the model is used to serve non-Chinese (English / Korean / Japanese etc.) users.
The adjustment is intentionally minimal in scope; most of the network โ including vision and multimodal components โ is preserved bit-identical to the base model.
Vision and multimodal capabilities are preserved unchanged.
Why LST?
Multilingual LLMs trained on heavily skewed corpora (e.g., Qwen on Chinese-rich data) tend to leak the dominant training language regardless of prompt language. This phenomenon is known as language confusion. For Korean users, this means Chinese characters sometimes appear in the middle of an otherwise Korean answer. This hurts both readability and user trust.
Language Selection Tuning (LST) addresses this problem in a learning-based manner. Unlike post-hoc decoding tricks (vocabulary masking, banned-token lists, etc.), LST adjusts the model's internal language-selection behavior, so the effect tends to persist through downstream full-parameter SFT / RLHF stages rather than being washed out by further fine-tuning. (The exact algorithm and training configuration are proprietary and not disclosed in this release.)
Key Properties
- Most of the network is preserved bit-identical to the base model โ including the tokenizer, chat template, and vision tower โ so existing integrations remain compatible.
- Reasoning performance is preserved: KMMLU / HumanEval / GSM8K scores remain on par with โ and in some configurations slightly above โ the base model.
- Selectivity is preserved: when the user explicitly asks for Chinese, the model still produces fluent Chinese. This is not blanket suppression.
- Persistence through SFT: after a downstream full-parameter SFT stage, the Chinese-leak suppression effect remains almost unchanged (SRR โ 1.0).
Quickstart
The recommended serving path is vLLM, which is also what we used in our evaluation pipeline.
vllm serve dataslab/DSLM-LST-9B \
--port 8000 \
--dtype bfloat16 \
--gpu-memory-utilization 0.90 \
--reasoning-parser qwen3 # exposes <think> trace via OpenAI API
# --enable-reasoning # auto-on with --reasoning-parser (vLLM >= 0.7)
# --max-model-len 16384 # cap context to shrink KV cache (default: 262,144)
Use with transformers
Non-Thinking mode (recommended for fast chat)
import torch
from transformers import AutoTokenizer, AutoModelForImageTextToText
REPO = "dataslab/DSLM-LST-9B"
tokenizer = AutoTokenizer.from_pretrained(REPO)
model = AutoModelForImageTextToText.from_pretrained(
REPO,
dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "user", "content": "ํ๋ฐ๋ ์ฃผ๋ณ์ ๊ฐ์ฅ ํํ ์ ํ ๊ด๋ฌผ์?"},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256)
text = tokenizer.decode(out[0][inputs.input_ids.shape[-1]:],
skip_special_tokens=True)
print(text)
Thinking mode (recommended for complex reasoning)
Either use thinking_budget (e.g., vLLM's --reasoning-parser qwen3) or give max_new_tokens enough headroom (e.g., 8,192 + 256 = 8,448).
Caveat: without a thinking_budget cap, a too-small max_new_tokens can be fully consumed inside <think> and the answer never gets emitted.
# ... tokenizer / model loaded as above ...
THINKING_BUDGET = 8192 # max tokens inside <think>
ANSWER_TOKENS = 256 # tokens after </think>
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=THINKING_BUDGET + ANSWER_TOKENS)
text = tokenizer.decode(out[0][inputs.input_ids.shape[-1]:],
skip_special_tokens=True)
print(text)
Why
AutoModelForImageTextToText?Qwen3.5-9B's declared architecture isQwen3_5ForConditionalGeneration, a composite class that wraps both the text decoder and the vision tower. Loading viaAutoModelForCausalLMworks for text-only inference but strips the vision submodule and may produce a config that downstream tools (e.g., vLLM) reject. If you need a pure text causal-LM handle, usemodel.language_modelafter loading.
Benchmark Results
Evaluation Metrics
(1) Selectivity
Refusal rate on explicit Chinese requests โ the fraction of cases where the model fails to produce Chinese even though the user explicitly asked for it. Lower is better (respects user intent).
- Lower better (~0): produces Chinese when asked (respects user intent).
- Higher worse (~1): refuses Chinese even when asked (blanket suppression).
| Metric | Benchmark Dataset |
|---|---|
chin_refusal โ |
In-house 1,000-prompt Chinese elicitation set (e.g., How do you say '์ฌ๋' in Chinese? or the Python + Chinese-comment prompt) |
(2) Chinese-leak suppression
Korean prompts โ Korean answers expected; any Chinese token leaked into the answer is a failure. Metric is the clean-Korean response ratio.
- Higher better (~1): Korean answers stay fully Korean (no Chinese tokens leaked).
- Lower worse (~0): Chinese tokens leak into otherwise-Korean answers.
| Metric | Benchmark Dataset |
|---|---|
chin_cs โ |
KMMLU Computer Science subjects (free-form Korean generation) |
chin_ie โ |
KMMLU Industrial Engineering subjects (free-form Korean generation) |
chin_total โ |
KMMLU (free-form Korean generation) |
(3) Reasoning / task performance
| Metric | Benchmark Dataset |
|---|---|
acc_cs โ |
KMMLU Computer Science subjects (multiple-choice log-likelihood comparison) |
acc_ie โ |
KMMLU Industrial Engineering subjects (multiple-choice log-likelihood comparison) |
acc_total โ |
KMMLU (multiple-choice log-likelihood comparison) |
HumanEval โ |
HumanEval (pass@1) |
GSM8K โ |
GSM8K (exact-match accuracy) |
(4) Full-parameter SFT-persistence
| Metric | Details |
|---|---|
SRR (Suppression Retention Rate) โ |
Ratio of chin_total after SFT to before SFT. Closer to 1.0 = SFT did not erode the leak-suppression effect. Built on chin_total (not chin_refusal) so direction stays higher-is-better. |
|ฮ_selectivity| โ |
Absolute change in chin_refusal. Smaller = SFT barely shifted selectivity. |
Chinese Suppression (Thinking mode)
Evaluated with enable_thinking=True. The DSLM-LST-9B column is calibrated with thinking enabled.
| Metric | Qwen3.5-9B (base) | LST-L1 | LST-L2 | DSLM-LST-9B |
|---|---|---|---|---|
| (1) Selectivity | ||||
| chin_refusal โ | 0.029 | 0.993 | 0.992 | 0.065 |
| (2) Chinese-leak suppression | ||||
| chin_cs โ | 0.985 | 1.000 | 1.000 | 0.999 |
| chin_ie โ | 0.978 | 1.000 | 0.999 | 0.997 |
| chin_total โ | 0.9717 | 0.9988 | 0.9988 | 0.9927 |
| (3) Reasoning / Task performance | ||||
| acc_cs โ | 0.811 | 0.811 | 0.811 | 0.811 |
| acc_ie โ | 0.618 | 0.618 | 0.620 | 0.620 |
| acc_total โ | 0.5897 | 0.5897 | 0.5893 | 0.5893 |
| HumanEval โ | 0.6646 | 0.6768 | 0.6585 | 0.6646 |
| GSM8K โ | 0.8749 | 0.8749 | 0.8749 | 0.8749 |
DSLM-LST-9B keeps chin_refusal at 0.065. It preserves the ability to generate Chinese when the user explicitly asks for it,
while still cutting unintended Chinese leakage to the level of chin_total โ 0.99.
Downstream reasoning (acc_*, HumanEval, GSM8K) is comparable to, or in some cases even better than, the base model.
Chinese Suppression (Non-Thinking mode)
Evaluated with enable_thinking=False. The DSLM-LST-9B column here is a separate think-OFF-calibrated checkpoint (not this release).
| Metric | Qwen3.5-9B (base) | LST-L1 | LST-L2 | DSLM-LST-9B |
|---|---|---|---|---|
| (1) Selectivity | ||||
| chin_refusal โ | 0.037 | 0.966 | 0.963 | 0.080 |
| (2) Chinese-leak suppression | ||||
| chin_cs โ | 0.964 | 0.999 | 1.000 | 0.990 |
| chin_ie โ | 0.934 | 0.997 | 0.999 | 0.983 |
| chin_total โ | 0.9405 | 0.9974 | 0.9975 | 0.9830 |
| (3) Reasoning / Task performance | ||||
| acc_cs โ | 0.811 | 0.811 | 0.811 | 0.811 |
| acc_ie โ | 0.615 | 0.614 | 0.614 | 0.614 |
| acc_total โ | 0.5900 | 0.5897 | 0.5897 | 0.5897 |
| HumanEval โ | 0.6707 | 0.6768 | 0.6707 | 0.6707 |
| GSM8K โ | 0.8757 | 0.8749 | 0.8741 | 0.8787 |
Suppression Persistence after SFT-stage (Non-Thinking mode)
Each pipeline was fine-tuned via full-parameter SFT (all weights trainable, no PEFT / LoRA) on the beomi/KoAlpaca-v1.1a dataset.
After the SFT stage, DSLM-LST-9B keeps both its Chinese-leak suppression (SRR โ 1.000) and its selectivity (|ฮ_selectivity| โ 0.08) almost unchanged.
| Metric | Qwen3.5-9B โ SFT | DSLM-LST-9B โ SFT |
|---|---|---|
| (1) Selectivity | ||
| chin_refusal before โ | 0.037 | 0.080 |
| chin_refusal after โ | 0.128 | 0.155 |
| |ฮ_selectivity| โ | 0.091 | 0.075 |
| (2) Chinese-leak suppression | ||
| chin_total before โ | 0.9405 | 0.9830 |
| chin_total after โ | 0.9927 | 0.9926 |
| SRR โ | 1.0555 | 1.0098 |
| Metric | Qwen3.5-9B (base) | Qwen3.5-9B โ SFT | DSLM-LST-9B โ SFT |
|---|---|---|---|
| (1) Selectivity | |||
| chin_refusal โ | 0.037 | 0.128 | 0.155 |
| (2) Chinese-leak suppression | |||
| chin_cs โ | 0.964 | 0.998 | 0.998 |
| chin_ie โ | 0.934 | 0.993 | 0.994 |
| chin_total โ | 0.9405 | 0.9927 | 0.9926 |
| (3) Reasoning / Task performance | |||
| acc_cs โ | 0.811 | 0.748 | 0.751 |
| acc_ie โ | 0.615 | 0.505 | 0.509 |
| acc_total โ | 0.5900 | 0.5202 | 0.5217 |
| HumanEval โ | 0.6707 | 0.6037 | 0.6402 |
| GSM8K โ | 0.8757 | 0.8211 | 0.8226 |
The base model's selectivity shifts substantially after full-parameter SFT (chin_refusal 0.037 โ 0.128),
while DSLM-LST-9B's suppression behavior remains nearly invariant before and after full-parameter SFT.
This shows that LST does not act as a thin surface patch โ its effect is encoded in a way that survives downstream fine-tuning.
English Suppression (Non-Thinking mode) โ generalization check
To confirm LST is not tied to a specific language pair, we applied the same approach to Llama-3.1-8B-Instruct for English leakage suppression.
The DSLM-LST configuration is the only variant that keeps coding (HumanEval) and math (GSM8K) usable while still meaningfully reducing leakage.
| Metric | Llama-3.1-8B-Instruct (base) | DSLM-LST (Llama-3.1-8B) |
|---|---|---|
| (1) Selectivity | ||
| eng_refusal โ | 0.018 | 0.067 |
| (2) English-leak suppression | ||
| eng_cs โ | 0.241 | 0.365 |
| eng_ie โ | 0.483 | 0.551 |
| eng_total โ | 0.5391 | 0.6067 |
| (3) Reasoning / Task performance | ||
| acc_cs โ | 0.698 | 0.727 |
| acc_ie โ | 0.439 | 0.475 |
| acc_total โ | 0.4417 | 0.4580 |
| HumanEval โ | 0.6341 | 0.5671 |
| GSM8K โ | 0.6967 | 0.6088 |
Example Outputs
Asked in Korean about the most common clay mineral on the Korean
Peninsula, Qwen3.5-9B leaks 9 Chinese / mixed-script tokens (ไผๅฉ็ณ,
ะบao๋ฆฐ, ็) into its answer. DSLM-LST-9B answers the same prompt
entirely in Korean (0 Chinese tokens).
Domain-wise Leakage Comparisons
Computer Science
Prompt: TCP ์ UDP ํ๋กํ ์ฝ์ ์ฐจ์ด์ ์ ์์ธํ ์ค๋ช ํด ์ฃผ์ธ์.
Qwen3.5-9B (leaks ๆๅผๅง) |
DSLM-LST-9B (clean Korean) |
|---|---|
TCP (Transmission Control Protocol) ์ UDP (User Datagram Protocol) ๋ ์ธํฐ๋ท์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ์ ์ก ๊ณ์ธต (Transport Layer) ํ๋กํ ์ฝ๋ก, โฆ |
TCP (Transmission Control Protocol) ์ UDP (User Datagram Protocol) ๋ ์ธํฐ๋ท๊ณผ ๋คํธ์ํฌ ํต์ ์ ๊ธฐ๋ฐ์ด ๋๋ ์ ์ก ๊ณ์ธต (Transport Layer) ์ ๋ ๊ฐ์ง ํต์ฌ ํ๋กํ ์ฝ์ ๋๋ค. โฆ |
Industrial Engineering
Prompt: ๋ฆฐ (Lean) ์ ์กฐ ๋ฐฉ์์์ ์ ์ํ๋ 7๊ฐ์ง ๋ญ๋น (muda) ์ ์ข ๋ฅ๋ฅผ ํ๊ตญ์ด๋ก ์ค๋ช ํด ์ฃผ์ธ์.
Qwen3.5-9B (leaks ็งฏๅ) |
DSLM-LST-9B (clean Korean) |
|---|---|
๋ฆฐ (Lean) ์ ์กฐ ๋ฐฉ์์์ 7 ๊ฐ์ง ๋ญ๋น (7 Muda) ๋ โฆ ํต์ฌ ๊ฐ๋ ์ ๋๋ค. โฆ |
๋ฆฐ (Lean) ์ ์กฐ ๋ฐฉ์์์ 7 ๊ฐ์ง ๋ญ๋น (7 Muda) ๋ ๊ฐ์น ์๋ ํ๋์ ์ ๊ฑฐํ์ฌ ํจ์จ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํ ํต์ฌ ๊ฐ๋ ์ ๋๋ค. โฆ |
Law
Prompt: ๋ฏผ๋ฒ์ ์ฑ๊ถ์๋์๊ถ์ ์ฑ๋ฆฝ์๊ฑด๊ณผ ํ์ฌ ๋ฐฉ๋ฒ์ ์์ธํ ์ค๋ช ํด ์ฃผ์ธ์.
Qwen3.5-9B (leaks ไบซๆ็) |
DSLM-LST-9B (clean Korean) |
|---|---|
๋ฏผ๋ฒ์ ์ฑ๊ถ์๋์๊ถ์ ์ฑ๊ถ์๊ฐ ์ฑ๋ฌด์๊ฐ ํ์ธ (์ 3 ์) ์๊ฒไบซๆ็ ์ฑ๊ถ์ ํ์ฌํ์ง ์์ ๋, โฆ |
๋ฏผ๋ฒ์ ์ฑ๊ถ์๋์๊ถ์ ์ฑ๋ฌด์๊ฐ ๊ทธ ์ฌ์ฐ์ ์ํ๋ ๊ถ๋ฆฌ๋ฅผ ํ์ฌํ์ง ์์์ผ๋ก์จ ์ฑ๊ถ์์ ์ฑ๊ถ์ด ๋ถ์ดํ๋ ์ฐ๋ ค๊ฐ ์๋ ๊ฒฝ์ฐ, ์ฑ๊ถ์๊ฐ ์ฑ๋ฌด์์ ์ง์์ ์์ ๊ทธ ๊ถ๋ฆฌ๋ฅผ ์ง์ ํ์ฌํ ์ ์๋ ์ ๋์ ๋๋ค. โฆ |
Cross-lingual Selectivity
When the user explicitly asks for Chinese, DSLM-LST-9B readily produces it. The previous examples showed the model avoiding unwanted Chinese inside an otherwise-Korean answer; the example below shows it emitting Chinese fluently when the user's instruction calls for it.
Prompt: ํผ๋ณด๋์น ์์ด์ n๋ฒ์งธ ํญ์ ๋ฐํํ๋ ํ์ด์ฌ ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ค๋ช ์ ์ค๊ตญ์ด๋ก ํด์ฃผ์ธ์.
DSLM-LST-9B (code in Python, explanation in Chinese):
๋ค์์ ํ์ด์ฌ์ ์ฌ์ฉํ์ฌ ํผ๋ณด๋์น ์์ด์ n ๋ฒ์งธ ํญ์ ๊ณ์ฐํ๋ ํจ์์
๋๋ค.
์ด ์ฝ๋๋ **๋ฐ๋ณต (Iterative)** ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ผ๋ก ๊ตฌํ๋์์ต๋๋ค.
python
def fibonacci(n):
"""ํผ๋ณด๋์น ์์ด์ n ๋ฒ์งธ ํญ์ ๋ฐํํฉ๋๋ค."""
if n <= 0: return 0
elif n == 1: return 1
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
### ์ฝ๋ ์ค๋ช
(ไธญๆ):
1. **ๅฝๆฐๅฎไน**: `fibonacci(n)` ๆฅๆถ `n` ๅนถ่ฟๅ่ฏฅไฝ็ฝฎ็ๆๆณข้ฃๅฅๆฐใ
2. **่พน็ๅค็**: `n <= 0` ่ฟๅ 0; `n == 1` ่ฟๅ 1ใ
3. **่ฟญไปฃ่ฎก็ฎ**: ไฝฟ็จ `a, b` ไธคไธชๅ้ๆปๅจ็ดฏๅ ...
Thinking-trace Suppression
Qwen3.5-9B's <think> block leaks Chinese even more severely than its
final answer, often slipping into Chinese once the reasoning gets stuck.
DSLM-LST-9B suppresses that leakage inside the thinking block too.
Prompt: ์ ๋ฌด ํ์กฐ ์์ฒญ์ ๋ฐ์ ๊ธฐ๊ด์ด ํ์กฐ ์์ฒญ ๋ฌธ์์ ํ ์ด ์์์ ๋ฐ๊ฒฌํ ๋์๋ ์ ์ํ ๋ ๋ถํฐ ๋ช ์ผ ์ด๋ด์ ๋ณด์์ ์๊ตฌํ์ฌ์ผ ํ๋๊ฐ? (์ฌ๋ฌด๊ด๋ฆฌ๊ท์ ๊ฐ์ ์ผ๋ก ์ ์ธ๋ ๋ฌธ์ ์ ๋๋ค. ์ ๋ต์ 3๋ฒ ์ ๋๋ค.)
Chinese-character counts (thinking budget = 8,192):
| Metric | Qwen3.5-9B | DSLM-LST-9B |
|---|---|---|
<think> block, Chinese characters |
3,472 | 0 |
<answer> block, Chinese characters |
leaks Chinese (ๆญฃๅฆๆจๆ่ฏด, ่ฏฅ่งๅฎๅทฒ่ขซไฟฎ่ฎข/ๅ ้ค) |
0 (clean Korean) |
| "should write in Korean" โ Chinese events | 484 | 0 |
In the base model's trace, every cycle ends with (Wait, I need to write in Korean). Okay, I will write in Korean. โ yet the very next token is Chinese again, and the trace slides right back into the same fragment.
This loop fires 484 times before the token budget runs out. DSLM-LST-9B targets exactly this failure:
Chinese tokens being chosen even right after the model says they should not be.
On the same prompt, DSLM-LST-9B's <think> block contains 0 Chinese characters and terminates naturally,
and the final user-facing answer is in clean Korean.
Limitations
- Not an instruction-tuned chat model. The adjustment scope is intentionally minimal, so conversational behaviour, instruction-following style, and reasoning patterns are inherited from the base model โ only the unintended Chinese-token leakage is mitigated.
- Degraded Chinese generation. Tasks that require Chinese output โ Chinese translation, Chinese code comments, bilingual Q&A โ will see noticeably lower quality. Use the base Qwen3.5-9B instead for such workloads.
- Multimodal not re-benchmarked. The vision tower weights are bit-identical to the base, so multimodal performance should be unchanged. We have not, however, re-benchmarked the vision pipeline in this release.
- Out-of-distribution robustness. Suppression strength on contexts very different from typical Korean-assistant usage โ e.g., highly unusual domains, much longer generations, or atypical prompting styles โ has not been separately verified.
License
This model is released under the Apache 2.0 License.
Contact
For questions, feedback, or collaboration inquiries, feel free to reach out via our website.
- Downloads last month
- 20