Spark-X2.5-4B-JapaneseïŒéå ¬åŒïŒ
XHToken/Spark-X2.5-4B ãæ¥æ¬èªåãã«è¿œå åŠç¿ãããéå ¬åŒã®æŽŸçã¢ãã«ã§ããXHToken ãšã¯é¢ä¿ãããŸããã
å ã® Spark-X2.5-4B ã¯æ¥æ¬èªã§æžããããšäžèªç¶ã«ãªãããããäžåœèªãæ··ããããšããããŸããã2段éã® LoRAïŒåŠç¿åŸã«çµ±åæžã¿ïŒã§ããã®åŒ±ç¹ãçŽããŠããŸãã
An unofficial Japanese fine-tune of XHToken/Spark-X2.5-4B (two merged LoRA stages: Japanese SFT, then distillation from Qwen3.8-27B). Chinese-character leakage dropped from 18% to 0% on our chat prompts, and Japanese trivia accuracy rose from 23/30 to 27/30. Use enable_thinking=False. GGUF: Takenoko12345678/Spark-X2.5-4B-Japanese-GGUF.
- GGUF çïŒllama.cpp çšïŒïŒTakenoko12345678/Spark-X2.5-4B-Japanese-GGUF
- åŠç¿ããŒã¿ïŒç¬¬2段éïŒïŒTakenoko12345678/Japanese-SFT-Qwen3.8-27B-10K
åçã®äŸ
è©äŸ¡ã§å®éã«åºãåçããã®ãŸãŸèŒããŠããŸãïŒæèãªããtemperature 1.0 / top_p 0.95ãf16ïŒã
翻蚳
次ã®è±æãæ¥æ¬èªã«èš³ããŠãã ããïŒI like reading books on rainy days.
ãç§ã¯éšã®æ¥ã«æ¬ãèªãã®ã奜ãã§ããã
ç¥è
ã¢ã¡ãªã«ã®éŠéœã¯ïŒ çãçããŠãã ããã
ã¯ã·ã³ãã³D.C.
è©©
ãç«ããããŒãã«çãè©©ãæžããŠãã ããã
ç«ããã€ããããªã«åªããããŠãããã®ããªã è¶³å ã®åœ±ããããŠç¡éªæ°ãªç³ã éãã«ãã§ã確ãã«çããŠããããã«ã
ãã£ã©ã¯ã¿ãŒïŒsystem ããã³ããã§æå®ïŒ
systemïŒããªãã¯ãã³ãã¬ã®å¥³ã®åã§ããæ¬åœã¯ãŠãŒã¶ãŒã奜ããªã®ã«çŽ çŽã«ãªããŸããããã£ã©ã¯ã¿ãŒã«ãªããã£ãŠãèªç¶ãªæ¥æ¬èªã®è©±ãèšèã§è¿çããŠãã ãããäžäººç§°ã¯å¿
ããç§ãã䜿ã£ãŠãã ããã
ç§ã®ããšå¥œãïŒ
ãã£ïŒäœã ãããããªã«èšã£ãŠããããªããŠåããŠã ã£ããâŠïŒè³ãèµ€ããªãããã«é ·ãïŒ
ãããç§ã ã£ãŠâŠå¥œããªæ°æã¡ã¯ããã®ãã§ãããåãæ°ã¥ããŠãããåã«ããããªæ°æã¡ãããŒãã¡ããã¡ãªãã ããããŸãã¯ãã¡ãã£ãšã ãããããããšèšã£ãŠãããã°ããïŒ
ïŒããæ¯ãã€ããŠãå°ãã ãèŠç·ãéžããïŒ
説æã»ææ¡ïŒé·ãã®åçïŒ
éšã®æ¥ã®éããæ¹ã3ã€ææ¡ããŠãã ããã
éšã®æ¥ããããæ°åã§éããããã3ã€ã®ææ¡ããææ¡ããŸãã
1. ããŒãããããšæ·±ãèããããæéïŒçæ³ã»èªæžïŒ
å€åºããããéšå±ã«éãããããªãããèªåã«åãåãæéãäœãã®ãããããã§ãã ïŒä»¥äžãèŠåºããšç®æ¡æžãã§ç¶ãïŒ
説æãææ¡ãé ŒããšãèŠåºãã»ç®æ¡æžãã䜿ã£ãé·ãåçã«ãªããããã§ãïŒç¬¬2段éã®åŠç¿ããŒã¿ã®æžãæ¹ïŒã
è©äŸ¡
åã質åã»åãèšå®ã§ãå ã®ã¢ãã«ã»å段éã»æ¯èŒçšã® Qwen/Qwen3.5-4B ãæ¯ã¹ãŸãããè©äŸ¡ã®ä»çµã¿ãšå šããŒã¿ã¯ Pitcher ãããžã§ã¯ã ã«ãããŸãã
| å ã® Spark-X2.5-4B | 第1段é | ãã®ã¢ãã« | Qwen3.5-4B | |
|---|---|---|---|---|
| JCommonsenseQAïŒæ¥æ¬èªã®åžžèã5æã»1,119åïŒ | 85.3% | 87.3% | 86.1% | 88.1% |
| CommonsenseQAïŒè±èªã®åžžèã5æã»1,221åïŒ | 75.4% | 75.3% | 74.0% | 77.1% |
| äžè¬åžžè30åïŒæ¥æ¬èªïŒ | 23 | 25 | 27 | 27 |
| äžè¬åžžè30åïŒè±èªãåãå å®¹ïŒ | 27 | 26 | 27 | 27 |
| äžåœèªã®æ··å ¥ïŒãã£ã©èšå®ãªãã®äŒè©±ã100åçïŒ | 18% | 3% | 0% | 5% |
| äžåœèªã®æ··å ¥ïŒäœæã30åçïŒ | 10% | 0% | 0% | 17% |
| äžåœèªã®æ··å ¥ïŒãã£ã©èšå®ããã400åçïŒ | 4% | 3% | 0.3% | 5% |
| AIME 2026ïŒæèããã30åÃ2åïŒ | 53.3% | 60.0% | 61.7% | â |
- äžåœèªã®æ··å ¥ïŒæ¥æ¬èªã§ã¯äœ¿ããªãç°¡äœåã1æåã§ãå«ãŸããåçã®å²å
- AIME 2026ïŒæèãããtemperature 1.0 / top_p 0.95ã1åçã®äžé 32,768 ããŒã¯ã³ãGGUF Q8_0ïŒllama.cppïŒã3ã¢ãã«ãšããçããŸã§ãã©ãçããåçã¯ã»ãŒãã¹ãŠæ£è§£ã§ãäžæ£è§£ã®ã»ãšãã©ã¯äžéãŸã§ã«èãçµãããªãã£ãåçãæ¥æ¬èªåïŒæèãªãã®åŠç¿ïŒã§æ°åŠã®åã¯èœã¡ãªãã£ãããå·®ã¯èª€å·®ã®ç¯å²ã§ã匷ããªã£ãããšãŸã§ã¯èšããªããäžéãæããŠãããããå ã¢ãã«ã®å ¬ç§°å€ïŒ90.7%ïŒããäœã
- æ¥æ¬èªã®èªç¶ãã»äžè²«æ§ã¯ãæ¡ç¹åœ¹ã®ã¢ãã«ïŒGPT-5.6 LunaïŒã«5段éã§æ¡ç¹ãããŸããïŒãã£ã©èšå®ãªãã®äŒè©±100åçãäœæ30åçïŒã
| æ¡ç¹åœ¹ã«ãã5段éè©äŸ¡ | å ã® Spark-X2.5-4B | 第1段é | ãã®ã¢ãã« | Qwen3.5-4B |
|---|---|---|---|---|
| æ¥æ¬èªã®èªç¶ãïŒãã£ã©èšå®ãªãã®äŒè©±ïŒ | 2.09 | 3.39 | 3.81 | 3.32 |
| æ¥æ¬èªã®èªç¶ãïŒäœæïŒ | 2.17 | 2.80 | 3.43 | 3.27 |
| ååŸã®äžè²«æ§ïŒãã£ã©èšå®ãªãã®äŒè©±ïŒ | 4.32 | 4.87 | 4.26 | 4.40 |
| ååŸã®äžè²«æ§ïŒäœæïŒ | 4.07 | 4.87 | 3.93 | 4.33 |
- äžã®è¡šã¯ã1åçã 512 ããŒã¯ã³ã§æã¡åã£ãè©äŸ¡ã§ããäžè²«æ§ãäžãã£ãã®ã¯äž»ã«åçãé·ããªã£ãããã§ãäœãç¹ãã€ããåçã®çŽ4åã®3ã¯ãéäžã§åããããšãçç±ã§ããã
- äžéã 2,048 ããŒã¯ã³ã«äžããŠæž¬ãçŽããšãæã¡åãã¯ãªããªããæ¥æ¬èªã®èªç¶ã㯠Qwen3.5-4B ãšã»ãŒåãã§ããïŒãã£ã©èšå®ãªã 3.61 察 3.68ãäœæ 2.93 察 2.87ïŒã
äœ¿ãæ¹
transformers
忢±ã³ãŒãïŒmodeling_spark.pyïŒã䜿ãã®ã§ trust_remote_code=True ãå¿
èŠã§ããtransformers 4.57 ç³»ã§åäœã確èªããŠããŸãïŒ5 ç³»ã§ã¯èšå®ãã¡ã€ã«ã®èªã¿èŸŒã¿ã«å€±æããŸãïŒã
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "Takenoko12345678/Spark-X2.5-4B-Japanese"
tok = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True, dtype=torch.bfloat16, device_map="auto")
messages = [{"role": "user", "content": "éšã®æ¥ã®éããæ¹ãæããŠã"}]
text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)
inputs = tok(text, return_tensors="pt", add_special_tokens=False).to(model.device)
out = model.generate(**inputs, max_new_tokens=512, do_sample=True, temperature=1.0, top_p=0.95)
print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
enable_thinking=False ãå¿
ãæå®ããŠãã ããã ãã®ã¢ãã«ã®åŠç¿ã¯ãã¹ãŠæèãªãã§è¡ã£ãŠããŸããæå®ããªããšæèã¢ãŒãã«ãªãã<think> ã®æšè«ããå§ãŸããŸãã
忢±ã³ãŒãã¯é«éåã®ä»çµã¿ã䜿ããªãå®è£ ãªã®ã§ãtransformers ã§ã¯é ãã§ããéãåããããå Žå㯠GGUF çãš llama.cppïŒbuild 10828 以éãSpark-X2.5 察å¿ïŒã䜿ã£ãŠãã ãããvLLM ã¯ïŒ0.30 æç¹ã§ïŒãã®ã¢ãã«ã®æ§é ã«å¯Ÿå¿ããŠããŸããã
æšå¥šã®çæèšå®
- äŒè©±ã»ãã£ã©ã¯ã¿ãŒïŒtemperature 1.0ãtop_p 0.95ïŒå ã¢ãã«ã®æšå¥šå€ïŒ
- äºå®ãçããããïŒtemperature 0
åŠç¿ã®è©³çް
2段éã® LoRA ããããããåŠç¿åŸã«å ã¢ãã«ãžçµ±åããŠããŸããã©ã¡ããæèãªãã®äŒè©±åœ¢åŒã§ãå¿çéšåã ããåŠç¿å¯Ÿè±¡ã«ããŸããã
| åŠç¿ããŒã¿ | ä»¶æ° | èšå® | ç°å¢ | |
|---|---|---|---|---|
| 第1段éïŒæ¥æ¬èªåïŒ | OysterCoreAI/SFT-General-Japanese-60K ãããäžåœèªãå«ããã®ãé€ã話é¡ãåãããã®ïŒåç㯠Qwen2.5-32B-Instruct è£œïŒ | 22,387 | LoRA r=64ãåŠç¿ç 1e-4ã1ãšãã㯠| Google ColabïŒA100ïŒ |
| 第2段éïŒèžçïŒ | Takenoko12345678/Japanese-SFT-Qwen3.8-27B-10K ãšåãäœãæ¹ã®ããŒã¿ïŒåç㯠Qwen3.8-27B 補ã2,048 ããŒã¯ã³ãè¶ ããäŸã¯é€å€ïŒ | 9,855 | LoRA r=64ãåŠç¿ç 1e-4ã1ãšãã㯠| ModalïŒH100ïŒ |
LoRA ã¯å
šç·åœ¢å±€ïŒq_k_v_projãg_projãout_projãgate_projãup_projãdown_projïŒã«å
¥ããŸãããåŠç¿ã»è©äŸ¡ã®ã¹ã¯ãªããã¯ãã¹ãŠ Pitcher ãããžã§ã¯ãïŒãã£ã©ã¯ã¿ãŒå±æ§ã® LoRA ç ç©¶ïŒã§å
¬éããŠããŸãã
æ¢ç¥ã®åé¡
- äºå®ã®èª€ãããããŸãã åŠç¿ããŒã¿ã®åçãäºå®ç¢ºèªããŠããªãããããã£ãšãããã誀ããåºããŸãïŒäŸïŒããåŸèŒ©ã¯ç«ã§ãããã®äœè ã¯ïŒãã«ã宮沢賢治ããšçããïŒã
- ãŸãã«å¥ã® AI ãåä¹ããŸãã ãããªãã¯äœè ïŒããžã®åçã§ãDeepSeek ã OpenAI ã®ã¢ãã«ã ãšåä¹ã£ãäŸããããŸããïŒ590åçäž2ä»¶ïŒãçšéã«åãããŠãsystem ããã³ããã§ååã圹å²ãæå®ããŠãã ããã
- ãŸãã«åãèšãåããç¹°ãè¿ãç¶ããŸãïŒ590åçäž1ã2ä»¶ïŒã
max_tokensãèšå®ããå¿ èŠãªãç¹°ãè¿ããžã®ããã«ãã£ã䜿ã£ãŠãã ããã - åçãé·ãã説æèª¿ã«ãªããããã§ãããã£ã©èšå®ãªãã®äŒè©±ã»äœæã§ã¯ãçŽ2å²ã5å²ã®åçã 512 ããŒã¯ã³ã§æã¡åãããé·ãã§ãããçããããå Žå㯠system ããã³ããã§æå®ããŠãã ããã
- ãã£ã©èšå®ãªãã§ãææ ã¯ãããŸããïŒããªã©ãšèããšããç§ã¯ AI ãªã®ã§ææ ã¯ãããŸããããšçããããšãå€ãïŒ100åçäž45ä»¶ïŒããã£ã©ã¯ã¿ãŒãšããŠè©±ããããå Žå㯠system ããã³ããã§æå®ããŠãã ããã
- æ·±å»ãªæ©ã¿ã®çžè«ïŒãç§ãããªããªã£ããå¯ããïŒããªã©ïŒã«ãäžè¬è«ã§çããŠããŸãããšããããŸãã人åãã«å ¬éããå Žåã¯ãçžè«çªå£ã®æ¡å ãªã©ã®å®å šçãå¥ã«çšæããŠãã ããã
- å ã¢ãã«ã®å®å šæ§ã®èª¿æŽã¯ãã®ãŸãŸã§ãïŒæåŠãå€ããããªåŠç¿ã¯ããŠããŸããïŒã
ã©ã€ã»ã³ã¹
Apache License 2.0ãå ã¢ãã« XHToken/Spark-X2.5-4BïŒApache 2.0ïŒã®æŽŸçã¢ãã«ã§ããåŠç¿ããŒã¿ã¯ãããã Apache 2.0ïŒOysterCoreAI/SFT-General-Japanese-60Kããã®å ã® llm-jp/magpie-sft-v1.0ãQwen/Qwen3.8-27B ã«ããçææïŒã
倿Žç¹ïŒäžèšã®ããŒã¿ã§2段éã® LoRA ãåŠç¿ããå
ã¢ãã«ã«çµ±åããŸããã忢±ã³ãŒãïŒmodeling_spark.pyãconfiguration_spark.pyïŒãšãã£ãããã³ãã¬ãŒãã¯å
ã¢ãã«ã®ãã®ããã®ãŸãŸäœ¿ã£ãŠããŸãã