Instructions to use leapshared/nari-router-4b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use leapshared/nari-router-4b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="leapshared/nari-router-4b", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("leapshared/nari-router-4b", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
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_weight0.5로 섞는다. 보정 온도choice:6+= 1.86(검증 + 개발 세트로 다시 맞춤). - 입력: state는
교실 과학 실험 로봇 곁에서 들린 한국어 말을 받아쓴 글과 그때의 상황이다. '||' 앞은 상황 칸, 뒤는 그 말이다.뒤에장면=… | 실험=… | 나뭇잎 활동=… | AI 제안=… | 말한 사람=… || <말>한 줄, 질문은utterance_kind하나(choice, 보기는 학습한 글 그대로). 보기 글과 지시문은 저장소dialogue/routing/nari_route.py의short판이다. 다른 글로 물으면 학습한 분포에서 벗어난다. - 자료와 측정: 비공개 저장소의 학습 자료로 학습했고 자료는 올리지 않는다. 숫자는 저장소
docs/measurements/routing.md12절.
고른 법과 검증·개발 숫자 (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
- -
Model tree for leapshared/nari-router-4b
Base model
Qwen/Qwen3.5-4B-Base