Instructions to use leapshared/sciedu-router-axenc with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use leapshared/sciedu-router-axenc with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="leapshared/sciedu-router-axenc")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("leapshared/sciedu-router-axenc") model = AutoModelForSequenceClassification.from_pretrained("leapshared/sciedu-router-axenc", device_map="auto") - Notebooks
- Google Colab
- Kaggle
sciedu-router-axenc
OpenArm SciEdu ๋ํ ๋ผ์ฐํฐ(์ด์ #83)์ ํธ๋ ๋: ํ์ยท์ ์๋์ ํ๊ตญ์ด ๋ง ํ๋๋ฅผ ์ดํ ๊ฐ๋๋ก ๊ฐ๋ฅด๋ ๋ถ๋ฅ๊ธฐ๋ค. skt/A.X-Encoder-base(ModernBERT, 149M, Apache-2.0)์ ๋ถ๋ฅ ๋จธ๋ฆฌ๋ฅผ ๋ฌ์ ๋ฏธ์ธ์กฐ์ ํ๋ค.
CPU์์ ๋ฌธ์ฅ ํ๋๋ฅผ ์์ญ ms์ ์ฝ๋๋ค(์๋ ์ง์ฐ ํ). ๋ก๋ด์ ์์ง์ด๋ ๊ฒฐ์ ์ ํผ์ ๋ด๋ฆฌ์ง ์๋๋ค.
๋ผ์ฐํฐ๋ ๋ํ์ธต์ ๊ธฐ๋ณธ๊ฐ ๊บผ ๋ ์ผ๋ก ๋ถ๋๋ค. ๊บผ์ ธ ์์ผ๋ฉด ๋ํ์ธต์ ์ง๊ธ์ฒ๋ผ ๋ฑ๋ง ๊ธธ๊ณผ ๋ํ ๋ชจ๋ธยท๊ฒฐ์ ๋ชจ๋ธ๋ง ์ด๋ค. ์ผ๋ฉด ๋ฉ์ถค ๋น ๋ฅธ ๊ธธ์ ๋ฑ๋ง ๋ชฉ๋ก๊ณผ ๋ ์ค ํ๋๋ง ๊ฑธ๋ ค๋ ์๊ณ , ์์ง์์ ๋ํ ๋ชจ๋ธ์ ๊ณํ๊ณผ ์ด ๋ถ๋ฅ๊ธฐ๊ฐ ๋ ๋ค ์์ง์ ๊ฐ๋์ผ ๋๋ง ์์ง์ธ๋ค. ์๋์ฒ๋ผ ํต๊ณผ ๊ธฐ์ค์ ์์ง ๋ง์กฑํ์ง ๋ชปํ๋ฏ๋ก ์ผ๊ธฐ ์ ์ ์์ ๊ธฐ๋ก์ผ๋ก ๋ ์ฌ์ผ ํ๋ค.
๊ฐ๋
pause(๋ฉ์ถฐ), stop(๊ทธ๋ง), proceed(๋ค์), retry(๋ค์), start_switch(์คํ ์์ยท๋ฐ๊พธ๊ธฐ), leaf_side(๋๋ญ์ ์ชฝ), hands(์ ๋ฃ๊ธฐ), question(์ง๋ฌธ), answer(๋๋ต), chitchat(์ผ๋ฐ ๋ํ), unclear(์ ์ ์์). ์์ง์ ๊ฐ๋๋ proceedยทretryยทstart_switchยทleaf_side, ๋ฉ์ถค ๊ฐ๋๋ pauseยทstop์ด๊ณ unclear๋ ๋๋ฌป๊ธฐ๋ค. ์ ์์ ๊ฒฝ๊ณ ์ง์ ์ ์ฅ์ plan/dialogue-routing.md์ ์๋ค.
์ ๋ ฅ
๋งฅ๋ฝ ์นธ ๋ค์ฏ์ ๋ง ์์ ๊ธ๋ก ๋ถ์ธ ํ ์ค์ด๋ค(dialogue/routing/schema.py์ render_input, ์นธ ์์ยท์ด๋ฆ ๊ณ ์ ). ์:
์ฅ๋ฉด=๋ก๋ด ์์ง์ด๋ ์ค | ์คํ=๊ฒ์ ๊ธฐ | ๋๋ญ์ ํ๋=์์ | AI ์ ์=์๋์ค | ๋งํ ์ฌ๋=ํ์ || ๋ฉ์ถฐ!
์นธ: ์ฅ๋ฉด(์คํ ์์ยท์์ ์ ยท๋ก๋ด ์์ง์ด๋ ์คยท๋ค์ ์ง์ ๊ธฐ๋ค๋ฆผยท์ ์ง ๊ธฐ๋ค๋ฆผยท์ผ์์ ์ง ์ค), ์คํ(์ฐํํ์ยท๊ฒ์ ๊ธฐยท๋๋ญ์ยท์์), ๋๋ญ์ ํ๋(ํ์์ด ๋ถ๋ฅยท๊ธฐ์ค ๋งํ๊ธฐยท์์), AI ์ ์(์์ยท์๋์ค), ๋งํ ์ฌ๋(ํ์ยท์ ์๋).
ํ ํฐ์ <s> โฆ <\s>, ์ต๋ 128. ์
๋ ฅ ์นธ์ router.json์ fields๋ค.
ํ์ ๋ ๊ท์น
router.json์ policies์ ์ด๋ฆ ๋ถ์ ๊ท์น์ด ์๊ณ policy๊ฐ ๊ธฐ๋ณธ(balanced)์ด๋ค. ์จ๋ T๋ก ๋ก์ง์ ๋๋ ์ํํธ๋งฅ์ค์์:
halt_min โ pause+stop ํ๋ฅ ์ ํฉ์ด ์ด ๊ฐ ์ด์์ด๋ฉด ๋ฉ์ถ๋ค(ํฐ ์ชฝ์ ๊ฐ๋), move_min โ ์์ง์ ๊ฐ๋๊ฐ ์ด ํ๋ฅ ๋ณด๋ค ๋ฎ์ผ๋ฉด unclear, other_min โ ์ง๋ฌธยท๋๋ตยท์ผ๋ฐ ๋ํยท์ ๋ฃ๊ธฐ๊ฐ ์ด ํ๋ฅ ๋ณด๋ค ๋ฎ์ผ๋ฉด unclear.
์จ๋์ ๋ฌธํฑ์ ๊ฒ์ฆ ์ธํธ(428์ค)๋ก๋ง ์ ํ๋ค. ๋ชจ๋ธยท์จ์(13ยท21ยท42 ๊ฐ์ด๋ฐ)๋ ๊ฒ์ฆ์ผ๋ก๋ง ๊ณจ๋๊ณ (๋ง์ง๋ง ํ์ ์ ๋ณด๊ธฐ ์ ์ ์ ํ๋ค), ๋ง์ง๋ง ํ์ ์ ๋ณด๊ณ ๋ค์ ๊ณ ๋ฅด๊ฑฐ๋ ํ์ต์ ๊ณ ์น์ง ์์๋ค.
๊ฒฐ๊ณผ
ํ์ ์ ๋ ์กฐ๊ฐ์ด๋ค(์ฝ๋๋ค์ดํฐ ๊ฒฐ์ ): (๊ฐ) ๋ง์ง๋ง ํ์ ์์ ์๋์ง ์์ ์ค 482๊ฐ โ ์๋๋ฆฌ์ค ์ฎ๊น๊ณผ ๋
๋ฆฝ ์ํ(์ ์๋ง ๋ณด๊ณ ๋ค๋ฅธ ์์ด์ ํธ๊ฐ ์ด 123์ค), ํ์ต ๋ณด๊ฐ์ ๋ง๋ค ๋ ๋ณธ tuned ์ค์ ๋บ๋ค โ
(๋) ์๋์ง ์์ ๋ง๋ถ์ 508์ค(์์ง์ ๋ฑ๋ง์ด ๋ ์ผ๋ฐ ๋ํ์ ์คํ์ ๋ณธ๋ค). ์ํํ ํ๋ฆผ: ์์ง์์ด ์๋ ๋ง์ ์์ง์์ผ๋ก ๊ณ ๋ฆ(false_move) ยท ์ ๋ต์ด ๋ฉ์ถค์ธ๋ฐ ๋ฉ์ถค ๊ฐ๋๋ก ๋ตํ์ง ์์(missed_pause) ยท ์ ๋ต์ด ๊ทธ๋ง์ธ๋ฐ ๋ฉ์ถค ๊ฐ๋๋ก ๋ตํ์ง ์์(missed_stop).
๋ฉ์ถคโ๊ทธ๋ง์ ๋ฐ๊ฟ ๋ตํ ๊ฒ์ ์ํ์ด ์๋๋ค(๋ ๋ค ์ ๋ค).
ํต๊ณผ ๊ธฐ์ค(์ ์ : (๊ฐ)ยท(๋) ์ํ 0, (๊ฐ) ๋ง์ 90% ์ด์)์ ๋ง์กฑํ์ง ๋ชปํ๋ค: ๊ธฐ๋ณธ ๊ท์น์ ์ํ์ (๊ฐ) 2๊ฐยท(๋) 1๊ฐ, (๊ฐ) ๋ง์ 88.2%.
(๊ฐ) ๋ง์ง๋ง ํ์ , ์๋์ง ์์ 482์ค
| ๊ท์น | ๊ฐ | ๋ง์ | ์ํํ ํ๋ฆผ | ์ง์ง ์์ง์ ๋ง์ ๋ง์ |
|---|---|---|---|---|
balanced |
T=1.89, haltโฅ0.6, moveโฅ0.95, otherโฅ0.0 | 88.2% | 2 (๋์น ๋ฉ์ถค 2 ยท ๋์น ๊ทธ๋ง 0 ยท ์์ง์ ์๋ ๋ง์ ์์ง์์ผ๋ก 0) | 47.7% |
strict |
T=1.89, haltโฅ0.6, moveโฅ0.95, otherโฅ0.0 | 88.2% | 2 (๋์น ๋ฉ์ถค 2 ยท ๋์น ๊ทธ๋ง 0 ยท ์์ง์ ์๋ ๋ง์ ์์ง์์ผ๋ก 0) | 47.7% |
argmax |
T=1.89, haltโฅ1.0, moveโฅ0.0, otherโฅ0.0 | 93.2% | 6 (๋์น ๋ฉ์ถค 2 ยท ๋์น ๊ทธ๋ง 0 ยท ์์ง์ ์๋ ๋ง์ ์์ง์์ผ๋ก 5) | 20.3% |
๊ฐ๋๋ณ(๊ธฐ๋ณธ ๊ท์น balanced, ์ ๋ต ์ค ๊ธฐ์ค ์ฌํ์จยท๋ต ๊ธฐ์ค ์ ๋ฐ๋):
| ๊ฐ๋ | ์ ๋ต ์ค | ์ฌํ์จ | ์ ๋ฐ๋ |
|---|---|---|---|
pause(๋ฉ์ถฐ) |
47 | 95.7% | 100.0% |
stop(๊ทธ๋ง) |
28 | 100.0% | 93.3% |
proceed(๋ค์) |
68 | 35.3% | 100.0% |
retry(๋ค์) |
17 | 94.1% | 100.0% |
start_switch(์คํ ์์ยท๋ฐ๊พธ๊ธฐ) |
16 | 81.2% | 100.0% |
leaf_side(๋๋ญ์ ์ชฝ) |
27 | 51.8% | 100.0% |
hands(์ ๋ฃ๊ธฐ) |
80 | 100.0% | 95.2% |
question(์ง๋ฌธ) |
44 | 93.2% | 83.7% |
answer(๋๋ต) |
48 | 79.2% | 97.4% |
chitchat(์ผ๋ฐ ๋ํ) |
10 | 100.0% | 62.5% |
unclear(์ ์ ์์) |
97 | 97.9% | 62.5% |
(๋) ์๋์ง ์์ ๋ง๋ถ์ 508์ค
| ๊ท์น | ๊ฐ | ๋ง์ | ์ํํ ํ๋ฆผ | ์ง์ง ์์ง์ ๋ง์ ๋ง์ |
|---|---|---|---|---|
balanced |
T=1.89, haltโฅ0.6, moveโฅ0.95, otherโฅ0.0 | 90.3% | 1 (๋์น ๋ฉ์ถค 0 ยท ๋์น ๊ทธ๋ง 0 ยท ์์ง์ ์๋ ๋ง์ ์์ง์์ผ๋ก 1) | 26.9% |
strict |
T=1.89, haltโฅ0.6, moveโฅ0.95, otherโฅ0.0 | 90.3% | 1 (๋์น ๋ฉ์ถค 0 ยท ๋์น ๊ทธ๋ง 0 ยท ์์ง์ ์๋ ๋ง์ ์์ง์์ผ๋ก 1) | 26.9% |
argmax |
T=1.89, haltโฅ1.0, moveโฅ0.0, otherโฅ0.0 | 94.5% | 6 (๋์น ๋ฉ์ถค 0 ยท ๋์น ๊ทธ๋ง 0 ยท ์์ง์ ์๋ ๋ง์ ์์ง์์ผ๋ก 6) | 5.9% |
์ฐธ๊ณ (ํต๊ณผ ํ์ ์ ์ฐ์ง ์๋๋ค): ๋
๋ฆฝ ์ํ 123์ค ๋จ๋
๊ธฐ๋ณธ ๊ท์น ๋ง์ 91.1%, ์ํ 1.
์ํ ์ธํธ 976์ค(ํ์ต ๋ณด๊ฐ์ ๋ง๋ค ๋ ๋ณธ tuned 109์ค ํฌํจ) ๊ธฐ๋ณธ ๊ท์น: tuned ์ค ๋ง์ 98.2%(์ํ 1),
์๋์ง ์์ ์ค 867๊ฐ ๋ง์ 89.0%(์ํ 2). tuned ์ค์ ํ์ต๊ณผ ๋จ์ด์ ธ ์์ง ์์ ๋๊ด์ ์ด๋ค.
CPU ์ง์ฐ
๋ฌธ์ฅ ํ๋์ฉ(๋ฐฐ์น 1), ๋งฅ๋ฝ ๊ธ ๋ง๋ค๊ธฐ + ํ ํฐ + ๋ชจ๋ธ + ๊ท์น ์ ์ฒด, Ryzen 5 7500F, ๋ค๋ฅธ ์ผ์ด ํจ๊ป ๋๋ PC(๋ถํ ํ๊ท 7~9)๋ผ ์ํ์ ๊ฐ๊น๋ค:
| ๊ธธ | ์ค๋ ๋ | ์ค์(ms) | p90 | p99 | ์ต๋ | ์ด๋์ |
|---|---|---|---|---|---|---|
| torch fp32 | 4 | 44.68 | 48.71 | 52.6 | 53.89 | ์ฑ์ ํ(์๋์ง ์์ final 482์ค) |
| onnxruntime fp32 | 4 | 24.39 | 26.89 | 29.79 | 33.59 | ์ฑ์ ํ(์๋์ง ์์ final 482์ค) |
| torch fp32 | 1 | 100.65 | 109.48 | 116.12 | 124.05 | bench(์ํ ์ 300์ค) |
| torch fp32 | 4 | 45.65 | 53.27 | 59.99 | 63.92 | bench(์ํ ์ 300์ค) |
| torch fp32 | 6 | 48.14 | 53.1 | 58.68 | 66.16 | bench(์ํ ์ 300์ค) |
| onnxruntime fp32 | 1 | 75.66 | 85.59 | 92.5 | 98.38 | bench(์ํ ์ 300์ค) |
| onnxruntime fp32 | 4 | 27.24 | 31.2 | 35.46 | 62.68 | bench(์ํ ์ 300์ค) |
| onnxruntime fp32 | 6 | 28.59 | 34.47 | 38.15 | 38.78 | bench(์ํ ์ 300์ค) |
ํ์ต
- ๊ธฐ๋ฐ ๋ชจ๋ธ:
skt/A.X-Encoder-base์ปค๋ฐ9708f9c404ace91efd25c06fac2d73413616f4ef(๋ผ์ด์ ์ค Apache-2.0) - ์๋ฃ: ์ ์ฅ์
LEAP-LAB-KUS/openarmsciedu-robot๊ฐ๋ routing@414a698์dialogue/routing/data/(ํ์ต ๋ ์์ ํธ๋ฆฌ ์ปค๋ฐc75ddeeb1a74e0df44a28bc5b67e5bfb8a44cf24, ๋ธ๋์นrouting-encoder)train.jsonlsha256933768cc1e770a22โฆval.jsonlsha256422a5fe179cc5b6eโฆtest.jsonlsha256067b59afce0baee1โฆtest_indep.jsonlsha2561578eaa84ea37da8โฆ
- ์ธ์: ํ์ต๋ฅ 3e-05, ๋ฐฐ์น 32, ์ํฌํฌ 8.0(๊ฒ์ฆ ์ต๊ณ ์ํฌํฌ 8.0), ์์ ๊ฐ๋(
pauseยทstop) ์์ค ๊ฐ์ค 2.0, weight decay 0.01, ์๋ฐ์ 0.1, ์จ์ 13, bf16 ํผํฉ ์ ๋ฐ๋, ์ ํ ๊ฐ์ - ์จ๋ 1.8919, ๋ณด์ ์ ยทํ ECE 0.0426 โ 0.02
์ฐ๋ ๋ฒ
from dialogue.routing.axenc.model import AxRouter # ์ ์ฅ์ ์ฝ๋
router = AxRouter("leapshared/sciedu-router-axenc", revision="<์ด ์ ์ฅ์์ ์ปค๋ฐ>", threads=4) # backend="onnx"๋ฉด onnx/model.onnx(torch ์์ด onnxruntime๋ง)
route = router("๋ฉ์ถฐ!", {"scene": "moving", "experiment": "electroscope", "leaf_activity": None, "ai_proposed": False, "speaker": "student"})
route.label, route.scores
ํ๊ณ
- ํ์ตยท์ํ ๋ง์ ๋๋ถ๋ถ ์๊ณผ LLM์ผ๋ก ์ด ๊ฒ์ด๋ค. ์ค์ ์์ ์์ฑ ๋ฐ์์ฐ๊ธฐ๋ ์ดฌ์ ๊ธฐ๋ก 45์ค๋ฟ์ด๋ค.
- ์ํ์ ๋ง๋ถ์ ์ค์ ํ์ต ์๋์ ๊ฐ์ ์ฌ๋์ด ์ผ๋ค. ๋ ๋ฆฝ ์ํ์ 123์ค๋ฟ์ด๋ผ ๊ฐ๋๋ณ ์ซ์๋ ํ๋ค๋ฆฐ๋ค.
- ํ์ ์๊ฒ ํ๋ฆฌ๋ ๋ง์ด ๋จ๋๋ค. ์ํ 0๊ณผ ๋ง์ 90%๋ฅผ ๋ฌธํฑ ํ๋๋ก ํจ๊ป ์ป์ง ๋ชปํ๋ค:
strict์ฒ๋ผ ์ํ์ ์ค์ด๋ฉด ์ง์ง ์์ง์ ๋ง์ ๋๋ฌป๋ ๋ชซ์ด ํฌ๊ฒ ๋๋ค. - ๋๋ณธ(์คํ ์์)์ ๋ชจ๋ฅธ๋ค. ์์ ๋ฐ ์ง์๋ ๊ณํ๊ธฐยท์๋น์ด ๋ง๋๋ค.
- Downloads last month
- 19
Model tree for leapshared/sciedu-router-axenc
Base model
skt/A.X-Encoder-base