Text Generation
Transformers
Safetensors
Korean
English
qwen3_5_moe
image-text-to-text
korean
Mixture of Experts
lora
instruction-tuning
keural
conversational
Instructions to use Hikaf143/Keural-Nova-1.1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Hikaf143/Keural-Nova-1.1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Hikaf143/Keural-Nova-1.1") 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("Hikaf143/Keural-Nova-1.1") model = AutoModelForMultimodalLM.from_pretrained("Hikaf143/Keural-Nova-1.1", 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 Hikaf143/Keural-Nova-1.1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Hikaf143/Keural-Nova-1.1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Hikaf143/Keural-Nova-1.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Hikaf143/Keural-Nova-1.1
- SGLang
How to use Hikaf143/Keural-Nova-1.1 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 "Hikaf143/Keural-Nova-1.1" \ --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": "Hikaf143/Keural-Nova-1.1", "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 "Hikaf143/Keural-Nova-1.1" \ --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": "Hikaf143/Keural-Nova-1.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Hikaf143/Keural-Nova-1.1 with Docker Model Runner:
docker model run hf.co/Hikaf143/Keural-Nova-1.1
|
Download README.md from Hikaf143/Keural-Nova-1.1: direct link, hf CLI and curl.
- Browser
- Download file 7.17 kB
-
https://huggingface.co/Hikaf143/Keural-Nova-1.1/resolve/main/README.md
- Command line
-
hf download hf://Hikaf143/Keural-Nova-1.1/README.md
-
curl -L -o README.md https://huggingface.co/Hikaf143/Keural-Nova-1.1/resolve/main/README.md
7.17 kB
| license: apache-2.0 | |
| base_model: Qwen/Qwen3.6-35B-A3B | |
| language: | |
| - ko | |
| - en | |
| library_name: transformers | |
| pipeline_tag: text-generation | |
| tags: | |
| - korean | |
| - moe | |
| - lora | |
| - instruction-tuning | |
| - keural | |
| # Keural Nova 1.1 | |
| **Keural Nova** is a Korean-focused instruction-tuned model built by MKD on top of | |
| [Qwen/Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) (Apache 2.0), a | |
| 35B-parameter Mixture-of-Experts model with ~3B active parameters per token. Full credit for | |
| the base architecture and pretraining goes to the Qwen team at Alibaba Cloud — this release | |
| is a supervised fine-tune (LoRA, merged into the base weights) targeting Korean | |
| conversational quality, with an English/general replay mix to limit capability regression. | |
| **Version note:** v1.1 is the full-training endpoint (2 epochs, 15,846 optimizer steps). The | |
| sibling release **Keural Nova v1.0** is the end-of-epoch-1 checkpoint (7,500 steps, best | |
| held-out eval loss). The two make slightly different trade-offs — v1.1 scores marginally | |
| higher on HAE-RAE and MMLU, v1.0 on KoBEST and HumanEval — and we publish both transparently | |
| so users can pick empirically. | |
|  | |
|  | |
| ## Evaluation | |
| All numbers measured by us with lm-evaluation-harness 0.4.12 (vLLM backend, bf16, seed 42, | |
| default few-shot settings), same harness and settings for base and fine-tuned models. | |
| | Benchmark | Suite | Base model | v1.0 | **v1.1 (this model)** | Δ v1.1 vs base | | |
| |---|---|---:|---:|---:|---| | |
| | KoBEST | Korean | 62.88 | 68.82 | **67.29** | **+4.41** | | |
| | HAE-RAE | Korean | 75.53 | 73.42 | 74.52 | −1.01 | | |
| | KMMLU | Korean | 64.46 | 62.52 | 62.38 | −2.08 | | |
| | MMLU | General | 83.83 | 82.07 | 82.37 | −1.46 | | |
| | GSM8K (strict-match) | Math | 32.15* | 87.11 | **86.88** | +54.73* | | |
| | HumanEval (pass@1) | Code | 62.20 | 20.73 | 11.59 | **−50.61** | | |
| \* The base model's GSM8K score is heavily depressed by answer-format mismatch under | |
| strict-match extraction; the post-SFT jump is largely format compliance. Treat the delta as | |
| a formatting improvement, not a ~55-point reasoning gain. | |
| **Honest summary:** the fine-tune substantially improves Korean conversational/comprehension | |
| performance (KoBEST) and answer formatting, at the cost of small regressions on | |
| knowledge-recall benchmarks (KMMLU, HAE-RAE, MMLU) and a large regression on code | |
| generation — see Limitations. If your workload is Korean dialogue/comprehension, this model | |
| is the point of this release; if it is knowledge QA or coding, use the base model. | |
| ## Intended use & limitations | |
| - **Intended:** Korean conversational AI, Korean text comprehension and generation, | |
| bilingual (ko/en) assistant use, RAG-style grounded answering in Korean. | |
| - **NOT suitable for code generation.** HumanEval drops from 62.2 → 11.6 pass@1 (v1.0 | |
| retains 20.7). Root cause (identified, not speculative): a large fraction of code examples | |
| in one upstream training source had whitespace/indentation corrupted during that dataset's | |
| original export, and the model learned the corrupted formatting. A future release will | |
| address this with repaired data. | |
| - Knowledge-heavy benchmarks (KMMLU/HAE-RAE/MMLU) regress by ~1–2 points vs base. | |
| - **Context length:** SFT sequences were up to 8,192 tokens; the base architecture supports | |
| 262,144 tokens natively and **up to 1,000,000 tokens via YaRN** rope scaling. Extended-context | |
| **serving up to 1M tokens has been run in production** through MKD's OpenAI-compatible gateway | |
| (YaRN factor 4.0) and works. Note: long-context *answer accuracy* has not been measured with a | |
| dedicated benchmark (e.g., needle-in-a-haystack / RULER), so validate for your specific | |
| long-document workload. | |
| - The model inherits the base model's multimodal architecture (vision tower is present and | |
| untouched), but this fine-tune neither trained nor evaluated vision — treat it as a text | |
| model. | |
| ## Training details | |
| | | | | |
| |---|---| | |
| | Base model | Qwen/Qwen3.6-35B-A3B @ `995ad96e` | | |
| | Method | LoRA (rank 32, α 64, dropout 0.0), merged into base weights | | |
| | Adapted modules | attention (`q/k/v/o_proj`), Gated-DeltaNet linear attention (`in_proj_qkv/z/b/a`, `out_proj`), shared experts, **and all 256 routed experts per layer** (fused `gate_up_proj`/`down_proj` tensors via PEFT `target_parameters`) | | |
| | Deliberately frozen | MoE router (`mlp.gate`), `shared_expert_gate`, embeddings, LM head, vision tower | | |
| | Data | 253,528 examples (~85% Korean / 15% English replay), 13 sources, ChatML, empty-`<think>` (non-thinking) format | | |
| | Schedule | effective batch 32, LR 1e-4 cosine, warmup 5%, bf16, DeepSpeed ZeRO-2, 2× H200 | | |
| | This checkpoint | step 15,846 (2 full epochs) — final training state, train loss 0.688 | | |
| | Loss masking | assistant tokens only; empty think-block scaffold excluded from loss | | |
| Router-integrity and expert-targeting were verified programmatically before and after | |
| training (the router and gates are bit-identical to the base model in this release; the | |
| routed-expert weights are where most of the adaptation lives). | |
| ## Training data & licensing | |
| Sources (per-row license tags preserved from upstream): Korean conversation/RAG/QA and | |
| instruction data from the `mkd-chanwoo` keural datasets (CC BY 4.0 / MIT / Apache-2.0 / | |
| CC BY-SA 4.0 subsets only), plus eight sources from `Mkd-Yonas/keural-SFT-chatml-ko-v1` | |
| (MIT / Apache-2.0 / CC BY 4.0), plus English replay data (ultrachat, openorca, alpaca, | |
| magicoder, mathinstruct, gsm8k — MIT/CC BY 4.0). | |
| License mix of the final training set: CC BY 4.0 (105k rows), MIT (87k), Apache-2.0 (46k), | |
| CC BY-SA 4.0 (3.5k), unlabeled (13.7k — two Korean instruction subsets whose upstream rows | |
| carry `license: unknown`; upstream documentation states Apache-2.0, verification pending). | |
| **Excluded by policy:** all AI Hub-derived subsets (non-commercial research terms) were | |
| filtered out of training data. | |
| ## Usage | |
| ```python | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| model_id = "mkd-ai/Keural-Nova-v1.1" | |
| tok = AutoTokenizer.from_pretrained(model_id) | |
| model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="bfloat16", device_map="auto") | |
| messages = [{"role": "user", "content": "한국의 전통 발효 음식에 대해 설명해 주세요."}] | |
| inputs = tok.apply_chat_template(messages, add_generation_prompt=True, | |
| enable_thinking=False, return_tensors="pt").to(model.device) | |
| out = model.generate(inputs, max_new_tokens=512, temperature=0.7, top_p=0.95) | |
| print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True)) | |
| ``` | |
| vLLM serving (this is a fully merged model — no adapter loading needed): | |
| ```bash | |
| vllm serve mkd-ai/Keural-Nova-1.1 --tensor-parallel-size 2 --dtype bfloat16 | |
| ``` | |
| The model is trained in the base model's **non-thinking** chat format | |
| (`enable_thinking=False`); thinking-mode behavior is inherited from the base model untouched. | |
| ## Acknowledgements | |
| Built on **Qwen3.6-35B-A3B** by the Qwen team (Alibaba Cloud), released under Apache 2.0. | |
| Korean datasets curated by the MKD data team. Fine-tuning, evaluation, and release | |
| engineering by MKD. | |