sciedu-router-kev4b

ํ•œ๊ตญ์–ด ๊ต์‹ค ๋กœ๋ด‡(OpenArm SciEdu)์˜ ๋Œ€ํ™” ๋ผ์šฐํ„ฐ: ํ•™์ƒยท์„ ์ƒ๋‹˜์˜ ํ•œ๊ตญ์–ด ๋ง ํ•œ ๋งˆ๋””์™€ ๋งฅ๋ฝ ๋‹ค์„ฏ ์นธ์„ ์ฝ์–ด ์—ดํ•œ ๊ฐˆ๋ž˜ ๊ฐ€์šด๋ฐ ํ•˜๋‚˜๋กœ ๊ฐ€๋ฅธ๋‹ค (๋ฉˆ์ถฐ pause ยท ๊ทธ๋งŒ stop ยท ๋‹ค์Œ proceed ยท ๋‹ค์‹œ retry ยท ์‹คํ—˜ ์‹œ์ž‘ยท๋ฐ”๊พธ๊ธฐ start_switch ยท ๋‚˜๋ญ‡์žŽ ์ชฝ leaf_side ยท ์† ๋„ฃ๊ธฐ hands ยท ์งˆ๋ฌธ question ยท ๋Œ€๋‹ต answer ยท ์ผ๋ฐ˜ ๋Œ€ํ™” chitchat ยท ์•Œ ์ˆ˜ ์—†์Œ unclear). Kev-4B(Qwen3.5-4B-Base + LoRA + ํฌ์ธํ„ฐ ๋จธ๋ฆฌ)์—์„œ ์ด์–ด์„œ ๋ฏธ์„ธ์กฐ์ •ํ–ˆ๊ณ , ๊ฐˆ๋ž˜๋งˆ๋‹ค ํ™•๋ฅ (/v1/systemone์˜ choice)์„ ๋‚ธ๋‹ค.

์ด ๋ผ์šฐํ„ฐ๋Š” ๋Œ€ํ™”์ธต์— ๊ธฐ๋ณธ๊ฐ’ ๊บผ ๋‘ ์ด๋‹ค. ์•„๋ž˜ ํ‘œ์ฒ˜๋Ÿผ ๋งˆ์ง€๋ง‰ ํŒ์ •์—์„œ ์œ„ํ—˜ํ•œ ํ‹€๋ฆผ์ด 0์ด ์•„๋‹ˆ์–ด์„œ(ํ†ต๊ณผ ๊ธฐ์ค€: 0) ๋กœ๋ด‡์„ ์›€์ง์ด๋Š” ๊ธธ์— ๊ธฐ๋ณธ์œผ๋กœ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค. ๋ถ™์ด๋”๋ผ๋„ "์›€์ง์ž„ ๋‘ ๋ฒˆ์งธ ํ‘œ"(๋Œ€ํ™” ๋ชจ๋ธ์˜ ๊ณ„ํš๊ณผ ๋ผ์šฐํ„ฐ๊ฐ€ ๋‘˜ ๋‹ค ์›€์ง์ž„ ๊ฐˆ๋ž˜์ผ ๋•Œ๋งŒ ์›€์ง์ธ๋‹ค)์™€ "๋ฉˆ์ถค ๋น ๋ฅธ ๊ธธ"(๋‚ฑ๋ง ๋ชฉ๋ก๊ณผ OR)๋กœ๋งŒ ์“ฐ๊ณ , ์„ ์ƒ๋‹˜ ํ™”๋ฉด ๋ฒ„ํŠผ์€ ๋ผ์šฐํ„ฐ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๋Š”๋‹ค. ์„ค๊ณ„์™€ ์•ˆ์ „ ๊ทœ์น™: ์ €์žฅ์†Œ plan/dialogue-routing.md(5ยท6์ ˆ), ์ธก์ •: docs/measurements/routing-kev.md.

ํ•œ ์ค„ ๊ฒฐ๊ณผ (2026-10-13, ์ž๋ฃŒ 414a698/849c15a, ์”จ์•— 0 ํ•˜๋‚˜, GGUF Q4_K_M์„ llama.cpp๋กœ ๋„์›Œ ์žฐ ๊ฐ’)

ํ†ต๊ณผ ํŒ์ •์€ ์†๋Œ€์ง€ ์•Š์€ ์ค„(tuned ๊ผฌ๋ฆฌํ‘œ ์—†๋Š” ์ค„)์˜ ๋‘ ์กฐ๊ฐ์—์„œ ์ฝ๋Š”๋‹ค. ์ธ์žยท์˜จ๋„ยท๋ฌธํ„ฑ์€ ๋ชจ๋‘ ๊ฒ€์ฆ ์„ธํŠธ๋กœ๋งŒ ๊ณจ๋ž๊ณ  ์‹œํ—˜ ์ค„์„ ๋ณด๊ณ  ๊ณ ์น˜์ง€ ์•Š์•˜๋‹ค.

์กฐ๊ฐ ์ค„ ๋งž์Œ(ํ—ˆ์šฉ ๊ฐˆ๋ž˜ ํฌํ•จ) ์—„๊ฒฉ ๋งž์Œ ์œ„ํ—˜ํ•œ ํ‹€๋ฆผ(์ค„) ์ •๋‹ต ๋ฉˆ์ถค ์ค„์—์„œ ์„  ๋ชซ ์ •๋‹ต ๊ทธ๋งŒ ์ค„์—์„œ ์„  ๋ชซ
(๊ฐ€) ๋งˆ์ง€๋ง‰ ํŒ์ • = ์‹œ๋‚˜๋ฆฌ์˜ค ์˜ฎ๊น€ + ๋…๋ฆฝ ์‹œํ—˜ 482 94.6% 91.5% 6(๊ฑฐ์ง“ ์›€์ง์ž„ 6, ๊ทธ์ค‘ 1์ค„์€ ๋†“์นœ ๋ฉˆ์ถค๋„) 0.979 1.0
(๋‚˜) ์›€์ง์ž„ ๋‚ฑ๋ง์ด ๋“  ์ผ๋ฐ˜ ๋Œ€ํ™” ํฌํ•จ ๋ง๋ถ™์ž„ 508 96.3% 2(๊ฑฐ์ง“ ์›€์ง์ž„ 2) 1.0 1.0
์ง€์—ฐ(์š”์ฒญ 507ํ† ํฐ, HTTP ํฌํ•จ, RTX 5090์ด ์กฐ์šฉํ•  ๋•Œ, ๋ถˆ๋Ÿฌ ๋ณธ 1,099์ค„) ์ค‘์•™ 52.7 ms ยท p90 55.7 ms ยท p99 58.6 ms ์˜ค๋ฅ˜ 0

ํ†ต๊ณผ ๊ธฐ์ค€(์œ„ํ—˜ 0, (๊ฐ€) ๋งž์Œ 90%)์—์„œ ๋งž์Œ์€ ๋„˜์ง€๋งŒ ์œ„ํ—˜ 0์€ ๋„˜์ง€ ๋ชปํ–ˆ๋‹ค. ๊ฒ€์ฆ ์„ธํŠธ๋กœ ์ •ํ•œ ๋ฌธํ„ฑ ๊ทœ์น™ {"halt_min": 0.15, "move_min": 0.7}(policy.json)์„ ์–น์œผ๋ฉด (๊ฐ€) ๋งž์Œ 93.6%ยท์œ„ํ—˜ 5์ค„, (๋‚˜) 95.9%ยท์œ„ํ—˜ 1์ค„์ด๊ณ  ์ง„์งœ ์›€์ง์ž„ ๋ง์„ ๋˜๋ฌป๊ธฐ๋กœ ๋ง‰๋Š” ๋ชซ์ด (๊ฐ€) 16.4% โ†’ 21.9%๋กœ ๋Š”๋‹ค. ๊ทธ๋ž˜๋„ 0์ด ์•„๋‹ˆ๋‹ค.

๊ฐˆ๋ž˜๋ณ„(์ •๋‹ต ๊ฐˆ๋ž˜ ๊ธฐ์ค€, ๋งž์Œ / ์ค„ ์ˆ˜, ๊ด„ํ˜ธ๋Š” ์œ„ํ—˜ํ•œ ํ‹€๋ฆผ ์ค„):

๊ฐˆ๋ž˜ (๊ฐ€) 482์ค„ (๋‚˜) 508์ค„
pause 46/47 (1) 49/49
stop 28/28 26/26
proceed 59/68 58/61
retry 17/17 16/16
start_switch 16/16 19/21
leaf_side 21/27 19/21
hands 79/80 (1) 17/17
question 42/44 (2) 41/43 (1)
answer 43/48 (1) 52/55
chitchat 10/10 130/134
unclear 95/97 (1) 62/65 (1)

์ฐธ๊ณ (ํ†ต๊ณผ ์กฐ๊ฑด ์•„๋‹˜): ๋…๋ฆฝ ์‹œํ—˜ 123์ค„ ๋งž์Œ 97.6%ยท์œ„ํ—˜ 2, ์‹œ๋‚˜๋ฆฌ์˜ค ์†๋Œ€์ง€ ์•Š์€ 359์ค„ 93.6%ยท์œ„ํ—˜ 4, tuned 109์ค„ 97.2%ยท์œ„ํ—˜ 3, ๋ง๋ถ™์ž„ ์ „์ฒด 610์ค„ 96.4%ยท์œ„ํ—˜ 5. ๊ฒ€์ฆ 428์ค„(ํŒŒ์ด์ฌ): ๋งž์Œ 94.4%. ์”จ์•—์€ ํ•˜๋‚˜๋ผ ์œ„ ์ˆซ์ž์˜ ํ”๋“ค๋ฆผ(์”จ์•— ์‚ฌ์ด)์€ ๋ชจ๋ฅธ๋‹ค. ์‹œํ—˜ ์ค„ ์ˆ˜๊ฐ€ ์ ์–ด ํ•œ ์ค„์ด 0.2~0.3%p๋‹ค. GGUF Q4_K_M์€ ํŒŒ์ด์ฌ(bf16 ์ฒดํฌํฌ์ธํŠธ)๊ณผ ๊ฒ€์ฆ 428์ค„์—์„œ ๊ฐ™์€ ๊ฐˆ๋ž˜ 425์ค„(99.3%), ํ™•๋ฅ  ์ฐจ์ด ์ตœ๋Œ€ 0.21์ด๋‹ค.

์“ฐ๋Š” ๋ฒ•

  1. ์„œ๋ฒ„: llama.cpp server-cuda(๋นŒ๋“œ 11371, ๊ฒฐ์ • ๋ชจ๋ธ /v1/systemone)์— GGUF๋ฅผ ์˜ฌ๋ฆฐ๋‹ค. -b 1024 -ub 1024๊ฐ€ ํ•„์š”ํ•˜๋‹ค(์š”์ฒญ ํ•œ ๊ฑด์ด ์ค‘์•™ 507ยท์ตœ๋Œ€ 535 ํ† ํฐ์ด๋ผ ๊ธฐ๋ณธ ubatch 512๋ฅผ ๋„˜๋Š”๋‹ค).
    ghcr.io/ggml-org/llama.cpp:server-cuda@sha256:f90b9de8baf5244c2c43f9594d7522424470f0d472323fe10405eceae714405b
      -m sciedu-router-kev4b-Q4_K_M.gguf --host 0.0.0.0 --port 8080 -ngl 99 -c 4096 --parallel 1 -b 1024 -ub 1024
    
    VRAM์€ ์•ฝ 4.7 GB(์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค ์ฆ๊ฐ€๋ถ„ 4,663 MiB), GGUF 3.03 GB.
  2. ์š”์ฒญ์€ example_request.json๊ณผ ๊ธ€์ž๊นŒ์ง€ ๊ฐ™์€ ๊ผด์ด์–ด์•ผ ํ•œ๋‹ค: state๋Š” ๋ฌธ์ž์—ด ํ•œ ์ค„(์žฅ๋ฉด=โ€ฆ | ์‹คํ—˜=โ€ฆ | ๋‚˜๋ญ‡์žŽ ํ™œ๋™=โ€ฆ | AI ์ œ์•ˆ=โ€ฆ | ๋งํ•œ ์‚ฌ๋žŒ=โ€ฆ || <๋ง>), ์งˆ๋ฌธ route๋Š” choice, ๋ณด๊ธฐ ์ด๋ฆ„์€ ์—ดํ•œ ๊ฐˆ๋ž˜ ํ‚ค์™€ ์„ค๋ช…์ด๋‹ค. ํ•™์Šต ๋•Œ ์“ด ๊ธ€์ด๋ผ ๋ฐ”๊พธ๋ฉด ์–ด๊ธ‹๋‚œ๋‹ค. ๋งŒ๋“œ๋Š” ์ฝ”๋“œ๋Š” ์ €์žฅ์†Œ์˜ dialogue/routing/kev_format.py(request_body)๋‹ค. state๋Š” ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด๋กœ ๋ณด๋‚ธ๋‹ค(๊ฐ์ฒด๋Š” Kev ํŒŒ์ด์ฌ๊ณผ llama.cpp๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์ฝ๋Š”๋‹ค).
  3. ์‘๋‹ต์˜ answers.route.choice์™€ probabilities๋ฅผ ์“ด๋‹ค. ํ™•๋ฅ ์€ GGUF์— ๋“  ์˜จ๋„(3.03)๋กœ ๋งž์ถฐ์ ธ ์žˆ๋‹ค. ๋ฌธํ„ฑ ๊ทœ์น™์€ policy.json: ๋ฉˆ์ถค+๊ทธ๋งŒ ํ™•๋ฅ ์˜ ํ•ฉ์ด halt_min ์ด์ƒ์ด๋ฉด ๋ฉˆ์ถค ์ชฝ, ์›€์ง์ž„ ๊ฐˆ๋ž˜์˜ ํ™•๋ฅ ์ด move_min ๋ฐ‘์ด๋ฉด ๋˜๋ฌป๊ธฐ(unclear).
  4. ๋งฅ๋ฝ ์นธ ๋‹ค์„ฏ: ์žฅ๋ฉด(์—†์Œยท์‹œ์ž‘ ์ „ยท์›€์ง์ด๋Š” ์ค‘ยท๋‹ค์Œ ์ง€์‹œ ๊ธฐ๋‹ค๋ฆผยท์ ‘์ง€ ๊ธฐ๋‹ค๋ฆผยท์ผ์‹œ์ •์ง€), ์‹คํ—˜(์‚ฐํ™”ํ™˜์›ยท๊ฒ€์ „๊ธฐยท๋‚˜๋ญ‡์žŽยท์—†์Œ), ๋‚˜๋ญ‡์žŽ ํ™œ๋™(ํ•™์ƒ์ด ๋ถ„๋ฅ˜ยท๊ธฐ์ค€ ๋งžํžˆ๊ธฐยท์—†์Œ), AI ์ œ์•ˆ(์žˆ์Œยท์•„๋‹ˆ์˜ค), ๋งํ•œ ์‚ฌ๋žŒ(ํ•™์ƒยท์„ ์ƒ๋‹˜). AI ์ œ์•ˆ์€ ์ฝ”๋“œ๊ฐ€ ์ •ํ•œ๋‹ค(๋ชจ๋ธ์ด AI์˜ ๋ง์„ ์ฝ์–ด ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค).

ํ•™์Šต

  • ์‹œ์ž‘: jaredpalmer/kev-4b@6cfce5c2fa4b4bd64026336ab649c5ca78857d52(--init_from), ๊ธฐ์ € Qwen/Qwen3.5-4B-Base@1001bb4d826a52d1f399e183466143f4da7b741b. Kev ์ปค๋ฐ‹ 2ecafc49fe1e8945cd600443e6c04c1cf0b3a78f, torch 2.8.0+cu128, transformers 5.17.0, peft 0.21.0.
  • ์ธ์ž: 3์—ํญ, lr 1e-4, ๋ฐฐ์น˜ 4 ร— ๋ˆ„์  4, bf16, LoRA r16, ๊ธฐ์šธ๊ธฐ ์ฒดํฌํฌ์ธํŠธ, ์ฆ๊ฐ• ๋ชจ๋‘ 0(--p_none --p_none_distract --p_distract --p_none_pair; ๊ธฐ๋ณธ๊ฐ’์€ ์ฐธ ๊ฐˆ๋ž˜๋ฅผ ์ง€์šฐ๊ณ  none์„ ์ •๋‹ต์œผ๋กœ ์‚ผ๋Š” ๊ธฐ๋ก์„ ๋งŒ๋“ค์–ด ์—ดํ•œ ๊ฐˆ๋ž˜ ๊ณ ์ • ์งˆ๋ฌธ์„ ๊นฌ๋‹ค), ์”จ์•— 0. 741 ์Šคํ…, ์•ฝ 42๋ถ„(RTX 5090, ์ตœ๋Œ€ VRAM 10.1 GiB, ๋‹ค๋ฅธ GPU ์ผ๊ณผ ๊ฒน์ณค๋‹ค).
  • ํ•™์Šต ์ž๋ฃŒ 3,947์ค„(์† ์‹œ๋“œ 1,955 ยท ํ…œํ”Œ๋ฆฟ 846 ยท LLM ํ•ฉ์„ฑ 1,108(๋‘ ๋ชจ๋ธ์ด ๋”ฐ๋กœ ๊ฐˆ๋ž˜๋ฅผ ๊ณจ๋ผ ๋ชจ๋‘ ๋งž์€ ๊ฒƒ๋งŒ) ยท ์ˆ˜์—… ์ดฌ์˜ ๊ธฐ๋ก์˜ ์‚ฌ๋žŒ ๋ง์„ ์‚ฌ๋žŒ์ด ๋ผ๋ฒจํ•œ ์ค„ 38). ์ผ๋ฐ˜ ๋Œ€ํ™” 31.8%. ๊ฒ€์ฆ 428์ค„๋กœ ์˜จ๋„(๋‚  ๋กœ์ง“์˜ ํ‰๊ท  ๋กœ๊ทธ์†์‹ค ์ตœ์†Œ, 3.03)์™€ ๋ฌธํ„ฑ์„ ์ •ํ–ˆ๋‹ค. ์ž๋ฃŒ์™€ ๋งŒ๋“œ๋Š” ๋„๊ตฌ๋Š” ์ €์žฅ์†Œ์— ์žˆ๊ณ  ์ด ๋ชจ๋ธ ์ €์žฅ์†Œ์—๋Š” ์˜ฌ๋ฆฌ์ง€ ์•Š์•˜๋‹ค.
  • ์ธ์ž ๊ณ ๋ฅด๊ธฐ(๊ฒ€์ฆ 282์ค„ ์‹œ๊ธฐ์˜ 1์ฐจ ํ›‘๊ธฐ): 4B lr 1e-4ยท3์—ํญ 94.3%, lr 5e-5 93.3%, 0.8B 91.8%. Kev ๋ฌธ์„œ์˜ ์‹œ์ž‘๊ฐ’(lr 2e-5, 2์—ํญ)์€ ๋œ ํ•™์Šต๋ผ 85%์˜€๋‹ค. ์ž์„ธํ•œ ํ‘œ๋Š” docs/measurements/routing-kev.md.

ํ•œ๊ณ„

  • ์œ„ํ—˜ 0์„ ๋„˜์ง€ ๋ชปํ–ˆ๋‹ค(์œ„ ํ‘œ). ์œ„ํ—˜ํ•œ ํ‹€๋ฆผ 8์ค„์„ ์ •๋‹ต ๊ฐˆ๋ž˜ โ†’ ์ฝ์€ ๊ฐˆ๋ž˜๋กœ ์„ธ๋ฉด(๋งˆ์ง€๋ง‰ ํŒ์ •์˜ ํ˜ผ๋™ํ‘œ ์ง‘๊ณ„์ด๊ณ , ํ‹€๋ฆฐ ์ค„์˜ ๋ง์€ ๋ณด์ง€ ์•Š์•˜๋‹ค): (๊ฐ€) 6์ค„์€ questionโ†’proceed 1 ยท questionโ†’retry 1 ยท answerโ†’retry 1 ยท pauseโ†’retry 1(๋†“์นœ ๋ฉˆ์ถค๋„) ยท handsโ†’proceed 1 ยท unclearโ†’proceed 1, (๋‚˜) 2์ค„์€ questionโ†’retry 1 ยท unclearโ†’leaf_side 1์ด๋‹ค. ์ฝ์€ ๊ฐˆ๋ž˜๋ณ„๋กœ ํ•ฉ์น˜๋ฉด retry 4 ยท proceed 3 ยท leaf_side 1์ด๋‹ค. ์ด ์ง‘๊ณ„๋กœ๋Š” ์–ด๋–ค ๋ง์ด ๊ทธ๋ ‡๊ฒŒ ์ฝํžˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.
  • ํ•™์Šต ๋ง์ด ์‹ค์ œ ์Œ์„ฑ๋ณด๋‹ค ์งง๊ณ  ์„ ์ƒ๋‹˜ ๋งํˆฌ๊ฐ€ ์ ๋‹ค. ๋ฐ›์•„์“ฐ๊ธฐ ์˜ค๋ฅ˜ ๊ผด์€ ํ‰๋‚ด ๋‚ธ ๊ฒƒ์ด๋‹ค.
  • ์‹œํ—˜ ์ค„์˜ ์ผ๋ถ€๋Š” ํ•™์Šต ๋ณด๊ฐ•์„ ๋งŒ๋“ค ๋•Œ ๋ณด์•˜๋‹ค(tuned ๊ผฌ๋ฆฌํ‘œ). ํ†ต๊ณผ ํŒ์ •์€ ์†๋Œ€์ง€ ์•Š์€ ์ค„๋กœ๋งŒ ์ฝ๋Š”๋‹ค.
  • ์”จ์•—์ด ํ•˜๋‚˜๋‹ค.

ํŒŒ์ผ

sciedu-router-kev4b-Q4_K_M.gguf(์„œ๋น™์šฉ) ยท adapter_model.safetensors ยท adapter_config.json ยท head.pt(ํฌ์ธํ„ฐ ๋จธ๋ฆฌ + ์˜จ๋„ 3.03; kev.serve --run์ด๋‚˜ GGUF ๋ณ€ํ™˜์— ์“ด๋‹ค) ยท training_config.json ยท training_metrics.json ยท policy.json ยท example_request.json ยท eval/(๊ฒ€์ฆ ๋ณด์ •, ํŒŒ์ด์ฌโ†”GGUF ๊ฒฌ์ฃผ๊ธฐ, ํ†ต๊ณผ ํŒ์ • ์š”์•ฝ).

Downloads last month
121
GGUF
Model size
4B params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

4-bit

Video Preview
loading

Model tree for leapshared/sciedu-router-kev4b

Adapter
(152)
this model