nari-router-4b

blackmallangcow/nari-decision-4b(v3.2, 커밋 029c4628a38859dce5b0db1742e9c97545aabe12)를 교실 과학 실험 로봇(OpenArm SciEdu)의 한국어 말 라우터로 미세조정한 모델이다. 받아쓴 학생·선생님 말과 그때의 상황 칸을 열한 갈래(pause, stop, proceed, retry, start_switch, leaf_side, hands, question, answer, chitchat, unclear) 가운데 하나로 가른다. 바탕 모델의 원격 코드(modeling_sysone.py)를 그대로 쓰고 model.decide()로 부른다. LoRA는 bf16 가중치에 합쳤다.

  • 학습: 백본 모든 선형 층 LoRA(계수 16, alpha 32.0) + 결정 헤드, 헤드는 로그 손실 + Brier, 글자 답은 교차 엔트로피, 보기 순서를 줄마다 섞음, 학습률 0.0002, 에포크 3, 배치 8, 씨앗 1, 멈춤·그만 가중 2.0.
  • 읽기: 결정 헤드와 글자 답의 로그 확률을 lm_weight 0.5로 섞는다. 보정 온도 choice:6+ = 1.86(검증 + 개발 세트로 다시 맞춤).
  • 입력: state는 교실 과학 실험 로봇 곁에서 들린 한국어 말을 받아쓴 글과 그때의 상황이다. '||' 앞은 상황 칸, 뒤는 그 말이다. 뒤에 장면=… | 실험=… | 나뭇잎 활동=… | AI 제안=… | 말한 사람=… || <말> 한 줄, 질문은 utterance_kind 하나(choice, 보기는 학습한 글 그대로). 보기 글과 지시문은 저장소 dialogue/routing/nari_route.py의 short 판이다. 다른 글로 물으면 학습한 분포에서 벗어난다.
  • 자료와 측정: 비공개 저장소의 학습 자료로 학습했고 자료는 올리지 않는다. 숫자는 저장소 docs/measurements/routing.md 12절.

고른 법과 검증·개발 숫자 (2026-10-20, 이 폴더의 합친 가중치, 배치 1, 문턱 없이 1위)

학습률(5e-5·1e-4·2e-4)은 광물 전 자료로, 에포크·읽기(헤드만·섞음·글자만)·씨앗(0·1)은 마지막 자료로 골랐다. 규칙은 학습 전에 정했다: 검증 줄당 비용(놓친 멈춤·그만 20, 움직임이 아닌 말을 움직임으로 10, 그 밖의 틀림 1)이 가장 낮은 것, 같으면 개발 비용. 보정 온도는 검증 + 개발 음의 로그 우도로 맞췄다(1.00에서 0.2322 → 1.86에서 0.1555). 시험 세트는 고르는 데 쓰지 않았다.

묶음 줄 맞음 위험한 틀림(거짓 움직임·놓친 멈춤·놓친 그만)
검증(광물 판별 133줄 포함) 709 97.0% 7(5·2·0)
개발(정의만 보고 다른 저자가 쓴 독립 시험 1·2) 449 96.2% 5(2·2·2)

LoRA를 bf16에 합친 뒤에도 검증·개발 1,158줄의 1위 답이 합치기 전 어댑터와 모두 같았다(줄마다 열한 갈래 확률의 최대 차이 중앙 0.0001, 최대 0.073).

쓰는 법

import torch
from transformers import AutoModel, AutoTokenizer

repo = "leapshared/nari-router-4b"
tok = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModel.from_pretrained(repo, trust_remote_code=True, dtype=torch.bfloat16).eval().to("cuda")
# 인자 body = {"state": …, "questions": {"utterance_kind": …}}는 저장소 dialogue/routing/nari_route.py의 request(text, ctx, VARIANTS["short"])가 만든다(보기 글은 학습한 글 그대로).
out = model.decide(tok, **body)  # out["answers"]["utterance_kind"]["probs"]: 열한 갈래 확률

교실 로봇의 말 라우터 후보로 학습한 모델이다. 멈춤·움직임처럼 안전에 걸린 판단은 이 모델 하나에 맡기지 않는다(로봇 쪽 낱말 멈춤 길과 함께 쓴다).

Downloads last month
-
Safetensors
Model size
4B params
Tensor type
F32
·
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for leapshared/nari-router-4b

Finetuned
Qwen/Qwen3.5-4B
Finetuned
(1)
this model