mulkzz commited on
Commit
a0da670
·
verified ·
1 Parent(s): e19404e

카드의 커밋 표기 갱신

Browse files
README.md CHANGED
@@ -21,7 +21,7 @@ tags:
21
 
22
  ## 1. 모델 요약
23
 
24
- `mulkzz/RuBio-9B`는 고등학교 2022 개정 『생명과학』 대단원 Ⅰ–Ⅲ 서술형 문항의 학생 답안을 평가 기준별로 진단하고, 교사용 진단 정보와 학생용 피드백을 단일 JSON 객체로 출력하는 모델입니다. [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B)에 LoRA를 학습한 뒤 가중치를 병합한 **16비트(`bf16`) 전체 모델**(LoRA 어댑터가 아닌 병합 가중치, `safetensors` 4개 약 `19.3GB` / `18GiB`, 가중치 커밋 `d97db06c`, 어댑터 md5 `57c5c739c28c1d60bf66f75d54d77822`)이며, 경량 모델 [mulkzz/RuBio-4B](https://huggingface.co/mulkzz/RuBio-4B)와 상위 모델 [mulkzz/RuBio-27B](https://huggingface.co/mulkzz/RuBio-27B) 사이의 중간 규모 모델입니다.
25
 
26
  출력 형식·`system` 프롬프트는 `RuBio-4B v2` 및 `RuBio-27B`와 같고, **학습 방법이 4B·27B와 한 가지 다릅니다**: 기준별 `status`·`misconception_id` 값 토큰(학습 토큰의 `2.62%`)을 손실에서 10번 세는 **판정 토큰 가중 손실(`W=10`)**을 적용했습니다. 시범 서비스(https://mulk.codes/rubio)는 `RuBio-4B`와 `RuBio-27B`만 운영하며, `RuBio-9B`는 서비스에 올리지 않았습니다.
27
 
@@ -33,7 +33,7 @@ tags:
33
 
34
  <img src="./figures/rubench_v1_dev200_9b.svg" width="100%" style="width: 100%; height: auto;" alt="Fig. 1 | RuBench v1 (dev n = 200) diagnostic evaluation of RuBio-9B vs. its base model Qwen3.5-9B" />
35
 
36
- > **Fig. 1 | RuBench v1 (dev 분할, n = 200 답안 · 604 평가 기준)에서 RuBio-9B(`mulkzz/RuBio-9B@d97db06c`)와 기본 모델 Qwen3.5-9B(`Qwen/Qwen3.5-9B`)의 진단 성능 비교.** **a**, 핵심 지표 5종 및 95% 신뢰구간(답안 군집 CI 및 Wilson CI). 주 지표인 기준 판정 정확도는 `RuBio-9B` `80.7% [77.2, 84.2]` 대 `Qwen3.5-9B` `76.6% [73.0, 80.2]`로 쌍대 차이 `+4.1%p [+0.3, +7.9]`(벤치마크 설계 때 정한 판정 규칙상 개선이나 하한이 `0`에 가까움)이며, 2차 2/3 다수결 제외 시 `83.4% [79.8, 86.9]` 대 `81.4% [77.9, 84.8]`, 쌍대 차이 `+2.0%p [-2.2, +6.2]`로 95% 신뢰구간이 `0`을 포함하여 유의한 차이가 없음(또한 `RuBio-9B` 점수는 후보 3종 중 최고를 고른 값이라 약간 낙관적이며 일반 손실 후보 `r16`은 기본 모델과 차이 없음). 보조 지표는 오개념 일치 `110/133 = 82.7%` 대 `86/133 = 64.7%`, 기준 밖 오류 일치 `152/200 = 76.0%` 대 `153/200 = 76.5%`, 전체 상태 일치 `131/200 = 65.5%` 대 `96/200 = 48.0%`임. 점선은 `RuBio-9B`의 학습 분포 내 옛 dev(300건) 기준 일치율(`97.2%`). **b**, 정답 확정 출처별 기준 판정 정확도(`R1 3/3` `444/521 = 85.2%` 대 `440/521 = 84.5%`, `R2 3/3` `12/23 = 52.2%` 대 `7/23 = 30.4%`, `R2 2/3` `25/51 = 49.0%` 대 `13/51 = 25.5%`) 및 기준 밖 과학 오류(`other_issues`)의 오류 있음 재현율(TP)·오류 없음 특이도(TN) 상충 관계로, `RuBio-9B`가 오류 있음 재현율은 더 높으나(`17/53 = 32.1%` 대 `7/53 = 13.2%`) 오류 없음 특이도는 더 낮음(`135/147 = 91.8%`, 오탐 12건 대 `146/147 = 99.3%`, 오탐 1건). **c, d**, 미세조정 모델 `RuBio-9B`(기준 micro `487/604 = 80.6%`, JSON 오류 `0/200`)와 기본 모델 `Qwen3.5-9B`(기준 micro `463/604 = 76.7%`, JSON 오류 `0/200`)의 평가 기준별 판정(`checks`) 행 정규화 혼동 행렬(예측 열의 `invalid/none`은 깨진 JSON 또는 판정 누락이며 두 모델 모두 `0`건). 두 모델 모두 `RunPod A40 Pod (46GB), vLLM 0.32.0, bf16`에서 첫 턴·`temperature=0`·`max_tokens=1024`·`thinking` 끔·JSON 스키마 강제 없음(깨진 JSON은 오답 처리) 조건에서 평가하되, `RuBio-9B`는 학습 때와 동일한 `SYSTEM_PROMPT`만 입력받고 기본 모델 `Qwen3.5-9B`는 `SYSTEM_PROMPT`에 판정·응답 정책(`POLICY`)을 추가해 입력받음.
37
 
38
  <img src="./figures/rubench_v1_dev200_all_9b.svg" width="100%" style="width: 100%; height: auto;" alt="Fig. 2 | RuBench v1 (dev n = 200) criterion accuracy of RuBio, base Qwen models, and general-purpose LLMs" />
39
 
@@ -41,7 +41,7 @@ tags:
41
 
42
  **RuBench v1**은 새 문항·새 상황·가상 학생 페르소나로 구축한 2022 개정 『생명과학』 서술형 진단 벤치마크입니다(19개 성취기준, 대단원 Ⅰ–Ⅲ 298문항 중 `dev = 200` / `test = 98`, 가상 학생 30명 × 성취수준 A–E 층화 배정; `test` 분할은 열지 않았습니다). 학습 문항과의 5-gram 중복(`< 0.40`) 및 장면·사례 중복을 차단하고, 모범답안·허용 표현을 가린 채 생성한 학생 답안을 3개 프론티어 모델(`GPT-6 Astra xhigh` · `Opus 5.5 xhigh` · `Grok 4.7 xhigh`) 블라인드 채점, 2차 블라인드 재채점, 인간 검수로 확정했습니다. 모든 모델은 서비스와 같은 생성 조건(첫 턴 `feedback_mode="hint_1"`, `reveal_requested=false`, `history=[]`, `temperature=0`, `enable_thinking=false`, **JSON 스키마 강제 없음**)에서 평가합니다.
43
 
44
- | 구분 | 평가 지표 (RuBench v1 `dev`) | 표본 수 | RuBio-9B (`@d97db06c`) | Qwen3.5-9B (`Qwen/Qwen3.5-9B`)<sup>§</sup> | 쌍대 차이 Δ (미세조정 − 기본) 및 비고 |
45
  |---|---|---:|---:|---:|---|
46
  | **주 지표** | **기준 판정 정확도** (답안 단위 평균, 95% 군집 CI)<sup>†</sup> | 200 답안 (604 기준) | **80.7%** `[77.2, 84.2]` | 76.6% `[73.0, 80.2]` | +4.1%p `[+0.3, +7.9]` (**개선**, 단 하한이 0에 가까움·후보 3종 중 최고 선택) |
47
  | | **기준 판정 정확도** (2차 2/3 다수결 항목 제외)<sup>‡</sup> | 200 답안 (553 기준) | **83.4%** `[79.8, 86.9]` | 81.4% `[77.9, 84.8]` | +2.0%p `[-2.2, +6.2]` (**차이 없음**) |
@@ -84,7 +84,7 @@ tags:
84
  - **LoRA 및 최적화 설정**: Unsloth `bf16` LoRA(`r=16`, `alpha=32`, 대상 모듈 `q·k·v·o·gate·up·down`, 학습 파라미터 `2,910만 개` = `0.31%`)를 2 epoch(300스텝), 배치 2 × 누적 8, 학습률 `1e-4` cosine 스케줄러, 5% 예열, 최대 길이 4,096, `thinking` 끔, assistant JSON 구간에만 손실 적용, 시드 `3407`로 학습했습니다.
85
  - **판정 토큰 가중 손실(`W=10`, 4B·27B와 다른 한 가지)**: 기준별 `status`·`misconception_id` 값 토큰(전체 학습 토큰의 `2.62%`)을 손실에서 10번 셉니다(`W=10`). 체크포인트는 `eval_loss`로 골랐고 step 300(`0.4281`)이 선택되었습니다(step 300 교사 강제 판정 정확도 `0.9808`, 판정 CE `0.0134`).
86
  - **`eval_loss*` 해석 주의**: `eval_loss`(step 50 `0.4981`, step 100 `0.4573`, step 150 `0.4412`, step 200 `0.4330`, step 250 `0.4288`, step 300 `0.4281`)는 판정 토큰 가중(`W=10`)이 섞여 있어 일반 손실(`W=1`)로 계산한 `RuBio-4B`·`RuBio-27B` 값과 바로 비교할 수 없습니다. 그래서 상단 헤더 이미지에 `eval_loss*`로 표시했습니다.
87
- - **하드웨어 및 병합**: `NVIDIA A100 SXM 80GB`에서 다른 학습과 한 GPU를 나눠 약 `108분`(약 `1,440 tokens/s`, 단독 속도가 아님) 동안 학습했습니다. 어댑터(`md5 57c5c739c28c1d60bf66f75d54d77822`)는 `merge_lora.py`(`unsloth 2026.10.11`, `transformers 5.17.0`, `peft 0.21.2`)로 병합하여 `bf16` `safetensors` 4개(약 `19.3GB` / `18GiB`, 가중치 커밋 `d97db06c`)로 업로드했습니다.
88
 
89
  ## 3. 입력 및 출력 규격
90
 
@@ -165,7 +165,7 @@ result = json.loads(response.choices[0].message.content)
165
  ## 5. 한계 및 라이선스
166
 
167
  - **사용 범위 및 한계**: 학습 보조용 모델이므로 고부담 성적 채점에 직접 사용하면 안 됩니다. 『생명과학』 대단원 Ⅰ–Ⅲ 범위 밖의 문항이나 구조화된 `rubric`·`evidence`가 없는 일반 질의응답에는 적합하지 않습니다. 벤치마크의 학생 답은 합성 자료이며, **실제 학생 답에서의 성능은 재지 않았습니다**. 또한 RuBench v1 `dev`에서 기본 모델 대비 개선 판정(`+4.1%p [+0.3, +7.9]`)은 하한이 `0`에 가깝고 2차 2/3 제외 시 차이가 없으며(`+2.0%p [-2.2, +6.2]`), 후보 3종 중 최고를 고른 값이라 약간 낙관적이고 일반 손실 후보 `r16`은 기본 모델과 차이가 없습니다(`test` 분할은 열지 않았습니다).
168
- - **재현성**: 커밋 `d97db06c`를 새 캐시로 내려받아 같은 조건으로 RuBench v1 `dev` 200건을 다시 돌리면 주 지표는 `80.9%`(원본 `80.7%`, 차이 `+0.2%p [-0.2, +0.5]`)이고 기준 판정 `603/604`가 같으며 `checks` 전체가 같은 답은 `199/200`, JSON 오류는 `0`건입니다. 출력 글자 전체가 같은 답은 `58/200`으로, 대부분 답의 뒤쪽 피드백 문구에서 갈립니다. `temperature=0`이어도 `bf16` 배치 순서에 따라 글자까지 고정되지는 않습니다.
169
  - **서빙 후처리(`answer_status`·`next_action` 재계산) 권장**: 잔여 정책 위반(옛 dev 300건 중 7건)은 종합 판정(`answer_status`)이 기준별 판정(`checks`)과 어긋나는 경우(5건)와 원문 발췌(`student_span`) 미세 변형(3건)이므로(기준 상태 허용 값 위반 0건), 서비스에서는 두 값을 모델 출력 대신 아래 규칙으로 다시 계산하는 것을 권장합니다. 시범 서비스(mulk.codes/rubio)는 2026-11-02부터 이렇게 합니다. 이 카드의 다른 수치와 그림은 모두 후처리 없는 모델 원본 출력 기준입니다.
170
  - `answer_status`(위에서부터 처음 맞는 것): 모두 `supported`이고 `other_issues`가 없으면 `correct` → `supported`가 있으면 `contradicted`나 `other_issues`가 있을 때 `mixed`, 아니면 `partial` → `contradicted`나 `other_issues`가 있으면 `incorrect` → `unclear`가 있으면 `unclear` → 나머지 `no_attempt`
171
  - `next_action`(위에서부터, 고친 `answer_status` 기준): `reveal_requested`면 `explain` → `correct`면 `complete` → `message_type`이 `other`면 `refocus` → `unclear`면 `clarify` → 나머지 `revise`
 
21
 
22
  ## 1. 모델 요약
23
 
24
+ `mulkzz/RuBio-9B`는 고등학교 2022 개정 『생명과학』 대단원 Ⅰ–Ⅲ 서술형 문항의 학생 답안을 평가 기준별로 진단하고, 교사용 진단 정보와 학생용 피드백을 단일 JSON 객체로 출력하는 모델입니다. [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B)에 LoRA를 학습한 뒤 가중치를 병합한 **16비트(`bf16`) 전체 모델**(LoRA 어댑터가 아닌 병합 가중치, `safetensors` 4개 약 `19.3GB` / `18GiB`, 가중치 커밋 `e19404e3`, 어댑터 md5 `57c5c739c28c1d60bf66f75d54d77822`)이며, 경량 모델 [mulkzz/RuBio-4B](https://huggingface.co/mulkzz/RuBio-4B)와 상위 모델 [mulkzz/RuBio-27B](https://huggingface.co/mulkzz/RuBio-27B) 사이의 중간 규모 모델입니다.
25
 
26
  출력 형식·`system` 프롬프트는 `RuBio-4B v2` 및 `RuBio-27B`와 같고, **학습 방법이 4B·27B와 한 가지 다릅니다**: 기준별 `status`·`misconception_id` 값 토큰(학습 토큰의 `2.62%`)을 손실에서 10번 세는 **판정 토큰 가중 손실(`W=10`)**을 적용했습니다. 시범 서비스(https://mulk.codes/rubio)는 `RuBio-4B`와 `RuBio-27B`만 운영하며, `RuBio-9B`는 서비스에 올리지 않았습니다.
27
 
 
33
 
34
  <img src="./figures/rubench_v1_dev200_9b.svg" width="100%" style="width: 100%; height: auto;" alt="Fig. 1 | RuBench v1 (dev n = 200) diagnostic evaluation of RuBio-9B vs. its base model Qwen3.5-9B" />
35
 
36
+ > **Fig. 1 | RuBench v1 (dev 분할, n = 200 답안 · 604 평가 기준)에서 RuBio-9B(`mulkzz/RuBio-9B@e19404e3`)와 기본 모델 Qwen3.5-9B(`Qwen/Qwen3.5-9B`)의 진단 성능 비교.** **a**, 핵심 지표 5종 및 95% 신뢰구간(답안 군집 CI 및 Wilson CI). 주 지표인 기준 판정 정확도는 `RuBio-9B` `80.7% [77.2, 84.2]` 대 `Qwen3.5-9B` `76.6% [73.0, 80.2]`로 쌍대 차이 `+4.1%p [+0.3, +7.9]`(벤치마크 설계 때 정한 판정 규칙��� 개선이나 하한이 `0`에 가까움)이며, 2차 2/3 다수결 제외 시 `83.4% [79.8, 86.9]` 대 `81.4% [77.9, 84.8]`, 쌍대 차이 `+2.0%p [-2.2, +6.2]`로 95% 신뢰구간이 `0`을 포함하여 유의한 차이가 없음(또한 `RuBio-9B` 점수는 후보 3종 중 최고를 고른 값이라 약간 낙관적이며 일반 손실 후보 `r16`은 기본 모델과 차이 없음). 보조 지표는 오개념 일치 `110/133 = 82.7%` 대 `86/133 = 64.7%`, 기준 밖 오류 일치 `152/200 = 76.0%` 대 `153/200 = 76.5%`, 전체 상태 일치 `131/200 = 65.5%` 대 `96/200 = 48.0%`임. 점선은 `RuBio-9B`의 학습 분포 내 옛 dev(300건) 기준 일치율(`97.2%`). **b**, 정답 확정 출처별 기준 판정 정확도(`R1 3/3` `444/521 = 85.2%` 대 `440/521 = 84.5%`, `R2 3/3` `12/23 = 52.2%` 대 `7/23 = 30.4%`, `R2 2/3` `25/51 = 49.0%` 대 `13/51 = 25.5%`) 및 기준 밖 과학 오류(`other_issues`)의 오류 있음 재현율(TP)·오류 없음 특이도(TN) 상충 관계로, `RuBio-9B`가 오류 있음 재현율은 더 높으나(`17/53 = 32.1%` 대 `7/53 = 13.2%`) 오류 없음 특이도는 더 낮음(`135/147 = 91.8%`, 오탐 12건 대 `146/147 = 99.3%`, 오탐 1건). **c, d**, 미세조정 모델 `RuBio-9B`(기준 micro `487/604 = 80.6%`, JSON 오류 `0/200`)와 기본 모델 `Qwen3.5-9B`(기준 micro `463/604 = 76.7%`, JSON 오류 `0/200`)의 평가 기준별 판정(`checks`) 행 정규화 혼동 행렬(예측 열의 `invalid/none`은 깨진 JSON 또는 판정 누락이며 두 모델 모두 `0`건). 두 모델 모두 `RunPod A40 Pod (46GB), vLLM 0.32.0, bf16`에서 첫 턴·`temperature=0`·`max_tokens=1024`·`thinking` 끔·JSON 스키마 강제 없음(깨진 JSON은 오답 처리) 조건에서 평가하되, `RuBio-9B`는 학습 때와 동일한 `SYSTEM_PROMPT`만 입력받고 기본 모델 `Qwen3.5-9B`는 `SYSTEM_PROMPT`에 판정·응답 정책(`POLICY`)을 추가해 입력받음.
37
 
38
  <img src="./figures/rubench_v1_dev200_all_9b.svg" width="100%" style="width: 100%; height: auto;" alt="Fig. 2 | RuBench v1 (dev n = 200) criterion accuracy of RuBio, base Qwen models, and general-purpose LLMs" />
39
 
 
41
 
42
  **RuBench v1**은 새 문항·새 상황·가상 학생 페르소나로 구축한 2022 개정 『생명과학』 서술형 진단 벤치마크입니다(19개 성취기준, 대단원 Ⅰ–Ⅲ 298문항 중 `dev = 200` / `test = 98`, 가상 학생 30명 × 성취수준 A–E 층화 배정; `test` 분할은 열지 않았습니다). 학습 문항과의 5-gram 중복(`< 0.40`) 및 장면·사례 중복을 차단하고, 모범답안·허용 표현을 가린 채 생성한 학생 답안을 3개 프론티어 모델(`GPT-6 Astra xhigh` · `Opus 5.5 xhigh` · `Grok 4.7 xhigh`) 블라인드 채점, 2차 블라인드 재채점, 인간 검수로 확정했습니다. 모든 모델은 서비스와 같은 생성 조건(첫 턴 `feedback_mode="hint_1"`, `reveal_requested=false`, `history=[]`, `temperature=0`, `enable_thinking=false`, **JSON 스키마 강제 없음**)에서 평가합니다.
43
 
44
+ | 구분 | 평가 지표 (RuBench v1 `dev`) | 표본 수 | RuBio-9B (`@e19404e3`) | Qwen3.5-9B (`Qwen/Qwen3.5-9B`)<sup>§</sup> | 쌍대 차이 Δ (미세조정 − 기본) 및 비고 |
45
  |---|---|---:|---:|---:|---|
46
  | **주 지표** | **기준 판정 정확도** (답안 단위 평균, 95% 군집 CI)<sup>†</sup> | 200 답안 (604 기준) | **80.7%** `[77.2, 84.2]` | 76.6% `[73.0, 80.2]` | +4.1%p `[+0.3, +7.9]` (**개선**, 단 하한이 0에 가까움·후보 3종 중 최고 선택) |
47
  | | **기준 판정 정확도** (2차 2/3 다수결 항목 제외)<sup>‡</sup> | 200 답안 (553 기준) | **83.4%** `[79.8, 86.9]` | 81.4% `[77.9, 84.8]` | +2.0%p `[-2.2, +6.2]` (**차이 없음**) |
 
84
  - **LoRA 및 최적화 설정**: Unsloth `bf16` LoRA(`r=16`, `alpha=32`, 대상 모듈 `q·k·v·o·gate·up·down`, 학습 파라미터 `2,910만 개` = `0.31%`)를 2 epoch(300스텝), 배치 2 × 누적 8, 학습률 `1e-4` cosine 스케줄러, 5% 예열, 최대 길이 4,096, `thinking` 끔, assistant JSON 구간에만 손실 적용, 시드 `3407`로 학습했습니다.
85
  - **판정 토큰 가중 손실(`W=10`, 4B·27B와 다른 한 가지)**: 기준별 `status`·`misconception_id` 값 토큰(전체 학습 토큰의 `2.62%`)을 손실에서 10번 셉니다(`W=10`). 체크포인트는 `eval_loss`로 골랐고 step 300(`0.4281`)이 선택되었습니다(step 300 교사 강제 판정 정확도 `0.9808`, 판정 CE `0.0134`).
86
  - **`eval_loss*` 해석 주의**: `eval_loss`(step 50 `0.4981`, step 100 `0.4573`, step 150 `0.4412`, step 200 `0.4330`, step 250 `0.4288`, step 300 `0.4281`)는 판정 토큰 가중(`W=10`)이 섞여 있어 일반 손실(`W=1`)로 계산한 `RuBio-4B`·`RuBio-27B` 값과 바로 비교할 수 없습니다. 그래서 상단 헤더 이미지에 `eval_loss*`로 표시했습니다.
87
+ - **하드웨어 및 병합**: `NVIDIA A100 SXM 80GB`에서 다른 학습과 한 GPU를 나눠 약 `108분`(약 `1,440 tokens/s`, 단독 속도가 아님) 동안 학습했습니다. 어댑터(`md5 57c5c739c28c1d60bf66f75d54d77822`)는 `merge_lora.py`(`unsloth 2026.10.11`, `transformers 5.17.0`, `peft 0.21.2`)로 병합하여 `bf16` `safetensors` 4개(약 `19.3GB` / `18GiB`, 가중치 커밋 `e19404e3`)로 업로드했습니다.
88
 
89
  ## 3. 입력 및 출력 규격
90
 
 
165
  ## 5. 한계 및 라이선스
166
 
167
  - **사용 범위 및 한계**: 학습 보조용 모델이므로 고부담 성적 채점에 직접 사용하면 안 됩니다. 『생명과학』 대단원 Ⅰ–Ⅲ 범위 밖의 문항이나 구조화된 `rubric`·`evidence`가 없는 일반 질의응답에는 적합하지 않습니다. 벤치마크의 학생 답은 합성 자료이며, **실제 학생 답에서의 성능은 재지 않았습니다**. 또한 RuBench v1 `dev`에서 기본 모델 대비 개선 판정(`+4.1%p [+0.3, +7.9]`)은 하한이 `0`에 가깝고 2차 2/3 제외 시 차이가 없으며(`+2.0%p [-2.2, +6.2]`), 후보 3종 중 최고를 고른 값이라 약간 낙관적이고 일반 손실 후보 `r16`은 기본 모델과 차이가 없습니다(`test` 분할은 열지 않았습니다).
168
+ - **재현성**: 커밋 `e19404e3`를 새 캐시로 내려받아 같은 조건으로 RuBench v1 `dev` 200건을 다시 돌리면 주 지표는 `80.9%`(원본 `80.7%`, 차이 `+0.2%p [-0.2, +0.5]`)이고 기준 판정 `603/604`가 같으며 `checks` 전체가 같은 답은 `199/200`, JSON 오류는 `0`건입니다. 출력 글자 전체가 같은 답은 `58/200`으로, 대부분 답의 뒤쪽 피드백 문구에서 갈립니다. `temperature=0`이어도 `bf16` 배치 순서에 따라 글자까지 고정되지는 않습니다.
169
  - **서빙 후처리(`answer_status`·`next_action` 재계산) 권장**: 잔여 정책 위반(옛 dev 300건 중 7건)은 종합 판정(`answer_status`)이 기준별 판정(`checks`)과 어긋나는 경우(5건)와 원문 발췌(`student_span`) 미세 변형(3건)이므로(기준 상태 허용 값 위반 0건), 서비스에서는 두 값을 모델 출력 대신 아래 규칙으로 다시 계산하는 것을 권장합니다. 시범 서비스(mulk.codes/rubio)는 2026-11-02부터 이렇게 합니다. 이 카드의 다른 수치와 그림은 모두 후처리 없는 모델 원본 출력 기준입니다.
170
  - `answer_status`(위에서부터 처음 맞는 것): 모두 `supported`이고 `other_issues`가 없으면 `correct` → `supported`가 있으면 `contradicted`나 `other_issues`가 있을 때 `mixed`, 아니면 `partial` → `contradicted`나 `other_issues`가 있으면 `incorrect` → `unclear`가 있으면 `unclear` → 나머지 `no_attempt`
171
  - `next_action`(위에서부터, 고친 `answer_status` 기준): `reveal_requested`면 `explain` → `correct`면 `complete` → `message_type`이 `other`면 `refocus` → `unclear`면 `clarify` → 나머지 `revise`
README_en.md CHANGED
@@ -6,7 +6,7 @@
6
 
7
  ## 1. Model Summary
8
 
9
- `mulkzz/RuBio-9B` is a rubric-aligned formative feedback language model for Korean high-school biology (*Life Science*, 2022 Revised National Curriculum, Units I–III). Given a constructed-response question, grading rubric, textbook evidence, and misconception candidates, it evaluates a student's answer criterion by criterion and outputs both teacher-facing diagnostic metadata and student-facing coaching feedback as a single JSON object. It is a **full 16-bit (`bf16`) merged model** (not a LoRA adapter; 4 `safetensors` shards totaling ~`19.3 GB` / `18 GiB`, weights commit `d97db06c`, adapter md5 `57c5c739c28c1d60bf66f75d54d77822`) fine-tuned with LoRA on [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B), positioned between the lightweight [mulkzz/RuBio-4B](https://huggingface.co/mulkzz/RuBio-4B) and the larger [mulkzz/RuBio-27B](https://huggingface.co/mulkzz/RuBio-27B).
10
 
11
  While sharing the same output schema and `system` prompt as `RuBio-4B v2` and `RuBio-27B`, **its training method differs in one respect**: **judge-token weighted loss (`W=10`)**, which counts per-criterion `status` and `misconception_id` value tokens (`2.62%` of training tokens) 10 times in the cross-entropy loss. The live demo service (https://mulk.codes/rubio) operates only `RuBio-4B` and `RuBio-27B`; `RuBio-9B` has not been deployed to the demo service.
12
 
@@ -18,7 +18,7 @@ While sharing the same output schema and `system` prompt as `RuBio-4B v2` and `R
18
 
19
  <img src="./figures/rubench_v1_dev200_9b.svg" width="100%" style="width: 100%; height: auto;" alt="Fig. 1 | RuBench v1 (dev n = 200) diagnostic evaluation of RuBio-9B vs. its base model Qwen3.5-9B" />
20
 
21
- > **Fig. 1 | Diagnostic evaluation of RuBio-9B (`mulkzz/RuBio-9B@d97db06c`) vs. its base model Qwen3.5-9B (`Qwen/Qwen3.5-9B`) on RuBench v1 (dev split, n = 200 answers · 604 criteria).** **a**, Five core diagnostic metrics and 95% confidence intervals (answer-clustered CI and Wilson CI). On the primary criterion status accuracy metric, `RuBio-9B` (`80.7% [77.2, 84.2]`) vs. `Qwen3.5-9B` (`76.6% [73.0, 80.2]`) yields a paired Δ of `+4.1%p [+0.3, +7.9]` (declared Improved under the decision rule fixed at benchmark design, though the lower bound `+0.3%p` is close to 0), whereas excluding R2 2/3 majority items yields `83.4% [79.8, 86.9]` vs. `81.4% [77.9, 84.8]`, paired Δ = `+2.0%p [-2.2, +6.2]`, whose 95% CI spans 0 (No difference; moreover, `RuBio-9B` was selected as the best of 3 candidates on `dev` and is slightly optimistic, while candidate `r16` shows No difference). Secondary metrics are `110/133 = 82.7%` vs. `86/133 = 64.7%` for misconception match, `152/200 = 76.0%` vs. `153/200 = 76.5%` for out-of-rubric error match, and `131/200 = 65.5%` vs. `96/200 = 48.0%` for overall status match. Dotted line marks `RuBio-9B`'s in-distribution dev (`n = 300`) criterion match (`97.2%`). **b**, Criterion accuracy stratified by gold consensus source (`R1 3/3` `444/521 = 85.2%` vs. `440/521 = 84.5%`, `R2 3/3` `12/23 = 52.2%` vs. `7/23 = 30.4%`, `R2 2/3` `25/51 = 49.0%` vs. `13/51 = 25.5%`) alongside the out-of-rubric scientific error (`other_issues`) sensitivity–specificity trade-off, where `RuBio-9B` achieves higher error-present recall (TP `17/53 = 32.1%` vs. `7/53 = 13.2%`) but lower error-free specificity (TN `135/147 = 91.8%`, 12 false positives vs. `146/147 = 99.3%`, 1 false positive). **c, d**, Row-normalized per-criterion (`checks`) confusion matrices for fine-tuned `RuBio-9B` (criterion micro `487/604 = 80.6%`, JSON errors `0/200`) and base `Qwen3.5-9B` (criterion micro `463/604 = 76.7%`, JSON errors `0/200`), where the `invalid/none` column denotes malformed JSON or missing criterion decisions (`0` for both models). Both models are evaluated on a `RunPod A40 Pod (46GB)` with `vLLM 0.32.0` (`bf16`) under identical first-turn, `temperature=0`, `max_tokens=1024`, thinking-disabled, and unconstrained JSON settings (malformed JSON counted as wrong), except `RuBio-9B` receives only the training `SYSTEM_PROMPT` whereas base `Qwen3.5-9B` receives `SYSTEM_PROMPT` augmented with the grading and response policy (`POLICY`).
22
 
23
  <img src="./figures/rubench_v1_dev200_all_9b.svg" width="100%" style="width: 100%; height: auto;" alt="Fig. 2 | RuBench v1 (dev n = 200) criterion accuracy of RuBio, base Qwen models, and general-purpose LLMs" />
24
 
@@ -26,7 +26,7 @@ While sharing the same output schema and `system` prompt as `RuBio-4B v2` and `R
26
 
27
  **RuBench v1** is an out-of-distribution (OOD) benchmark for 2022 Revised high-school *Life Science* constructed-response diagnosis (`19` achievement standards across Units I–III, `298` validated question slots split into `dev = 200` and `test = 98`, answered by `30` synthetic student personas stratified across achievement levels A–E; the `test` split was not opened). Every question enforces strict n-gram (`5-gram overlap < 0.40`) and scenario deduplication against the training set; student answers are generated without access to exemplar answers or accepted expressions; and gold labels (`604` criteria, `133` contradicted criteria, and `200` out-of-rubric error indicators in `dev`) are established via a 3-model blind grading panel (`GPT-6 Astra xhigh`, `Opus 5.5 xhigh`, `Grok 4.7 xhigh`), a 2nd-round blind adjudication panel, and human review. All models are evaluated under the same generation settings as the demo service (first turn `feedback_mode="hint_1"`, `reveal_requested=false`, `history=[]`, `temperature=0`, `enable_thinking=false`, **no JSON schema enforcement**).
28
 
29
- | Category | Evaluation Metric (RuBench v1 `dev`) | Sample Size | RuBio-9B (`@d97db06c`) | Qwen3.5-9B (`Qwen/Qwen3.5-9B`)<sup>§</sup> | Paired Δ (fine-tuned − base) & Notes |
30
  |---|---|---:|---:|---:|---|
31
  | **Primary Metric** | **Criterion Status Accuracy** (answer-clustered mean, 95% CI)<sup>†</sup> | 200 answers (604 criteria) | **80.7%** `[77.2, 84.2]` | 76.6% `[73.0, 80.2]` | +4.1%p `[+0.3, +7.9]` (**Improved** by rule, but lower bound near 0 · best of 3 candidates) |
32
  | | **Criterion Status Accuracy** (excl. R2 2/3 majority items)<sup>‡</sup> | 200 answers (553 criteria) | **83.4%** `[79.8, 86.9]` | 81.4% `[77.9, 84.8]` | +2.0%p `[-2.2, +6.2]` (**No difference**) |
@@ -69,7 +69,7 @@ While sharing the same output schema and `system` prompt as `RuBio-4B v2` and `R
69
  - **LoRA & Optimization Settings**: Fine-tuned with Unsloth `bf16` LoRA (`r=16`, `alpha=32`, target modules `q·k·v·o·gate·up·down`, trainable parameters `29.1M` = `0.31%`), 2 epochs / 300 steps, micro-batch 2 × gradient accumulation 8 (effective batch 16), learning rate `1e-4` with cosine scheduler, 5% warmup, max sequence length 4,096, `thinking` disabled, loss masked to assistant JSON tokens only, seed `3407`.
70
  - **Judge-Token Weighted Loss (`W=10`, the single difference from 4B & 27B)**: Per-criterion `status` and `misconception_id` value tokens (`2.62%` of training tokens) are weighted by a factor of 10 (`W=10`) in the training and evaluation loss. The best checkpoint was selected by `eval_loss` at step 300 (`0.4281`; step 300 teacher-forced judge accuracy `0.9808`, judge CE `0.0134`).
71
  - **Note on `eval_loss*` Comparability**: Because `eval_loss` (step 50 `0.4981`, step 100 `0.4573`, step 150 `0.4412`, step 200 `0.4330`, step 250 `0.4288`, step 300 `0.4281`) incorporates `W=10` judge-token weighting, it cannot be directly compared with the unweighted (`W=1`) `eval_loss` of `RuBio-4B` or `RuBio-27B`. Accordingly, the header image labels this value as `eval_loss*`.
72
- - **Hardware & Merging**: Trained on an `NVIDIA A100 SXM 80GB` sharing the single GPU with another training run for ~`108 min` (~`1,440 tokens/s`, not a dedicated single-job throughput). The adapter (`md5 57c5c739c28c1d60bf66f75d54d77822`) was merged into 4 `bf16` `safetensors` shards (~`19.3 GB` / `18 GiB`, commit `d97db06c`) using `merge_lora.py` (`unsloth 2026.10.11`, `transformers 5.17.0`, `peft 0.21.2`).
73
 
74
  ## 3. Input & Output Specification
75
 
@@ -153,7 +153,7 @@ result = json.loads(response.choices[0].message.content)
153
  ## 5. Limitations & License
154
 
155
  - **Scope & Limitations**: Designed as a formative learning aid; do not use for autonomous high-stakes summative grading. Not intended for general QA outside Units I–III of the 2022 Revised *Life Science* curriculum or inputs lacking structured `rubric` and `evidence` fields. Student answers in the benchmark are synthetic, and **performance on real student answers has not been measured**. In addition, on RuBench v1 `dev`, the primary metric improvement over the base model (`+4.1%p [+0.3, +7.9]`) has a lower bound close to `0`, disappears when R2 2/3 majority items are excluded (`+2.0%p [-2.2, +6.2]`), is slightly optimistic as the best of 3 candidates on `dev`, and is not observed for the standard-loss candidate `r16` (the `test` split was not opened).
156
- - **Reproducibility**: Downloading commit `d97db06c` into a fresh cache and rerunning RuBench v1 `dev` (200 answers) under the same conditions gives a primary metric of `80.9%` (original `80.7%`, difference `+0.2%p [-0.2, +0.5]`), with `603/604` criterion judgments identical, `checks` fully identical in `199/200` answers, and `0` JSON errors. Full output text is identical in only `58/200` answers; most differences appear in the later feedback text. Even at `temperature=0`, `bf16` output is not byte-stable across batch orders.
157
  - **Recommended Serving Post-processing (recompute `answer_status` and `next_action`)**: Residual policy violations on the old dev set (7 out of 300 instances) consist of `answer_status`–`checks` disagreements (5 instances) and minor variations in `student_span` (3 instances, with 0 invalid criterion status values); production services should recompute both fields from the rules below instead of using the model's values. The demo service (mulk.codes/rubio) does this since 2026-11-02. All other numbers and figures in this card are raw model outputs without post-processing.
158
  - `answer_status` (first match wins): all `supported` and no `other_issues` → `correct`; otherwise if any `supported` → `mixed` when `contradicted` or `other_issues` is present, else `partial`; otherwise `contradicted` or `other_issues` → `incorrect`; otherwise any `unclear` → `unclear`; else `no_attempt`
159
  - `next_action` (first match wins, using the recomputed `answer_status`): `reveal_requested` → `explain`; `correct` → `complete`; `message_type` = `other` → `refocus`; `unclear` → `clarify`; else `revise`
 
6
 
7
  ## 1. Model Summary
8
 
9
+ `mulkzz/RuBio-9B` is a rubric-aligned formative feedback language model for Korean high-school biology (*Life Science*, 2022 Revised National Curriculum, Units I–III). Given a constructed-response question, grading rubric, textbook evidence, and misconception candidates, it evaluates a student's answer criterion by criterion and outputs both teacher-facing diagnostic metadata and student-facing coaching feedback as a single JSON object. It is a **full 16-bit (`bf16`) merged model** (not a LoRA adapter; 4 `safetensors` shards totaling ~`19.3 GB` / `18 GiB`, weights commit `e19404e3`, adapter md5 `57c5c739c28c1d60bf66f75d54d77822`) fine-tuned with LoRA on [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B), positioned between the lightweight [mulkzz/RuBio-4B](https://huggingface.co/mulkzz/RuBio-4B) and the larger [mulkzz/RuBio-27B](https://huggingface.co/mulkzz/RuBio-27B).
10
 
11
  While sharing the same output schema and `system` prompt as `RuBio-4B v2` and `RuBio-27B`, **its training method differs in one respect**: **judge-token weighted loss (`W=10`)**, which counts per-criterion `status` and `misconception_id` value tokens (`2.62%` of training tokens) 10 times in the cross-entropy loss. The live demo service (https://mulk.codes/rubio) operates only `RuBio-4B` and `RuBio-27B`; `RuBio-9B` has not been deployed to the demo service.
12
 
 
18
 
19
  <img src="./figures/rubench_v1_dev200_9b.svg" width="100%" style="width: 100%; height: auto;" alt="Fig. 1 | RuBench v1 (dev n = 200) diagnostic evaluation of RuBio-9B vs. its base model Qwen3.5-9B" />
20
 
21
+ > **Fig. 1 | Diagnostic evaluation of RuBio-9B (`mulkzz/RuBio-9B@e19404e3`) vs. its base model Qwen3.5-9B (`Qwen/Qwen3.5-9B`) on RuBench v1 (dev split, n = 200 answers · 604 criteria).** **a**, Five core diagnostic metrics and 95% confidence intervals (answer-clustered CI and Wilson CI). On the primary criterion status accuracy metric, `RuBio-9B` (`80.7% [77.2, 84.2]`) vs. `Qwen3.5-9B` (`76.6% [73.0, 80.2]`) yields a paired Δ of `+4.1%p [+0.3, +7.9]` (declared Improved under the decision rule fixed at benchmark design, though the lower bound `+0.3%p` is close to 0), whereas excluding R2 2/3 majority items yields `83.4% [79.8, 86.9]` vs. `81.4% [77.9, 84.8]`, paired Δ = `+2.0%p [-2.2, +6.2]`, whose 95% CI spans 0 (No difference; moreover, `RuBio-9B` was selected as the best of 3 candidates on `dev` and is slightly optimistic, while candidate `r16` shows No difference). Secondary metrics are `110/133 = 82.7%` vs. `86/133 = 64.7%` for misconception match, `152/200 = 76.0%` vs. `153/200 = 76.5%` for out-of-rubric error match, and `131/200 = 65.5%` vs. `96/200 = 48.0%` for overall status match. Dotted line marks `RuBio-9B`'s in-distribution dev (`n = 300`) criterion match (`97.2%`). **b**, Criterion accuracy stratified by gold consensus source (`R1 3/3` `444/521 = 85.2%` vs. `440/521 = 84.5%`, `R2 3/3` `12/23 = 52.2%` vs. `7/23 = 30.4%`, `R2 2/3` `25/51 = 49.0%` vs. `13/51 = 25.5%`) alongside the out-of-rubric scientific error (`other_issues`) sensitivity–specificity trade-off, where `RuBio-9B` achieves higher error-present recall (TP `17/53 = 32.1%` vs. `7/53 = 13.2%`) but lower error-free specificity (TN `135/147 = 91.8%`, 12 false positives vs. `146/147 = 99.3%`, 1 false positive). **c, d**, Row-normalized per-criterion (`checks`) confusion matrices for fine-tuned `RuBio-9B` (criterion micro `487/604 = 80.6%`, JSON errors `0/200`) and base `Qwen3.5-9B` (criterion micro `463/604 = 76.7%`, JSON errors `0/200`), where the `invalid/none` column denotes malformed JSON or missing criterion decisions (`0` for both models). Both models are evaluated on a `RunPod A40 Pod (46GB)` with `vLLM 0.32.0` (`bf16`) under identical first-turn, `temperature=0`, `max_tokens=1024`, thinking-disabled, and unconstrained JSON settings (malformed JSON counted as wrong), except `RuBio-9B` receives only the training `SYSTEM_PROMPT` whereas base `Qwen3.5-9B` receives `SYSTEM_PROMPT` augmented with the grading and response policy (`POLICY`).
22
 
23
  <img src="./figures/rubench_v1_dev200_all_9b.svg" width="100%" style="width: 100%; height: auto;" alt="Fig. 2 | RuBench v1 (dev n = 200) criterion accuracy of RuBio, base Qwen models, and general-purpose LLMs" />
24
 
 
26
 
27
  **RuBench v1** is an out-of-distribution (OOD) benchmark for 2022 Revised high-school *Life Science* constructed-response diagnosis (`19` achievement standards across Units I–III, `298` validated question slots split into `dev = 200` and `test = 98`, answered by `30` synthetic student personas stratified across achievement levels A–E; the `test` split was not opened). Every question enforces strict n-gram (`5-gram overlap < 0.40`) and scenario deduplication against the training set; student answers are generated without access to exemplar answers or accepted expressions; and gold labels (`604` criteria, `133` contradicted criteria, and `200` out-of-rubric error indicators in `dev`) are established via a 3-model blind grading panel (`GPT-6 Astra xhigh`, `Opus 5.5 xhigh`, `Grok 4.7 xhigh`), a 2nd-round blind adjudication panel, and human review. All models are evaluated under the same generation settings as the demo service (first turn `feedback_mode="hint_1"`, `reveal_requested=false`, `history=[]`, `temperature=0`, `enable_thinking=false`, **no JSON schema enforcement**).
28
 
29
+ | Category | Evaluation Metric (RuBench v1 `dev`) | Sample Size | RuBio-9B (`@e19404e3`) | Qwen3.5-9B (`Qwen/Qwen3.5-9B`)<sup>§</sup> | Paired Δ (fine-tuned − base) & Notes |
30
  |---|---|---:|---:|---:|---|
31
  | **Primary Metric** | **Criterion Status Accuracy** (answer-clustered mean, 95% CI)<sup>†</sup> | 200 answers (604 criteria) | **80.7%** `[77.2, 84.2]` | 76.6% `[73.0, 80.2]` | +4.1%p `[+0.3, +7.9]` (**Improved** by rule, but lower bound near 0 · best of 3 candidates) |
32
  | | **Criterion Status Accuracy** (excl. R2 2/3 majority items)<sup>‡</sup> | 200 answers (553 criteria) | **83.4%** `[79.8, 86.9]` | 81.4% `[77.9, 84.8]` | +2.0%p `[-2.2, +6.2]` (**No difference**) |
 
69
  - **LoRA & Optimization Settings**: Fine-tuned with Unsloth `bf16` LoRA (`r=16`, `alpha=32`, target modules `q·k·v·o·gate·up·down`, trainable parameters `29.1M` = `0.31%`), 2 epochs / 300 steps, micro-batch 2 × gradient accumulation 8 (effective batch 16), learning rate `1e-4` with cosine scheduler, 5% warmup, max sequence length 4,096, `thinking` disabled, loss masked to assistant JSON tokens only, seed `3407`.
70
  - **Judge-Token Weighted Loss (`W=10`, the single difference from 4B & 27B)**: Per-criterion `status` and `misconception_id` value tokens (`2.62%` of training tokens) are weighted by a factor of 10 (`W=10`) in the training and evaluation loss. The best checkpoint was selected by `eval_loss` at step 300 (`0.4281`; step 300 teacher-forced judge accuracy `0.9808`, judge CE `0.0134`).
71
  - **Note on `eval_loss*` Comparability**: Because `eval_loss` (step 50 `0.4981`, step 100 `0.4573`, step 150 `0.4412`, step 200 `0.4330`, step 250 `0.4288`, step 300 `0.4281`) incorporates `W=10` judge-token weighting, it cannot be directly compared with the unweighted (`W=1`) `eval_loss` of `RuBio-4B` or `RuBio-27B`. Accordingly, the header image labels this value as `eval_loss*`.
72
+ - **Hardware & Merging**: Trained on an `NVIDIA A100 SXM 80GB` sharing the single GPU with another training run for ~`108 min` (~`1,440 tokens/s`, not a dedicated single-job throughput). The adapter (`md5 57c5c739c28c1d60bf66f75d54d77822`) was merged into 4 `bf16` `safetensors` shards (~`19.3 GB` / `18 GiB`, commit `e19404e3`) using `merge_lora.py` (`unsloth 2026.10.11`, `transformers 5.17.0`, `peft 0.21.2`).
73
 
74
  ## 3. Input & Output Specification
75
 
 
153
  ## 5. Limitations & License
154
 
155
  - **Scope & Limitations**: Designed as a formative learning aid; do not use for autonomous high-stakes summative grading. Not intended for general QA outside Units I–III of the 2022 Revised *Life Science* curriculum or inputs lacking structured `rubric` and `evidence` fields. Student answers in the benchmark are synthetic, and **performance on real student answers has not been measured**. In addition, on RuBench v1 `dev`, the primary metric improvement over the base model (`+4.1%p [+0.3, +7.9]`) has a lower bound close to `0`, disappears when R2 2/3 majority items are excluded (`+2.0%p [-2.2, +6.2]`), is slightly optimistic as the best of 3 candidates on `dev`, and is not observed for the standard-loss candidate `r16` (the `test` split was not opened).
156
+ - **Reproducibility**: Downloading commit `e19404e3` into a fresh cache and rerunning RuBench v1 `dev` (200 answers) under the same conditions gives a primary metric of `80.9%` (original `80.7%`, difference `+0.2%p [-0.2, +0.5]`), with `603/604` criterion judgments identical, `checks` fully identical in `199/200` answers, and `0` JSON errors. Full output text is identical in only `58/200` answers; most differences appear in the later feedback text. Even at `temperature=0`, `bf16` output is not byte-stable across batch orders.
157
  - **Recommended Serving Post-processing (recompute `answer_status` and `next_action`)**: Residual policy violations on the old dev set (7 out of 300 instances) consist of `answer_status`–`checks` disagreements (5 instances) and minor variations in `student_span` (3 instances, with 0 invalid criterion status values); production services should recompute both fields from the rules below instead of using the model's values. The demo service (mulk.codes/rubio) does this since 2026-11-02. All other numbers and figures in this card are raw model outputs without post-processing.
158
  - `answer_status` (first match wins): all `supported` and no `other_issues` → `correct`; otherwise if any `supported` → `mixed` when `contradicted` or `other_issues` is present, else `partial`; otherwise `contradicted` or `other_issues` → `incorrect`; otherwise any `unclear` → `unclear`; else `no_attempt`
159
  - `next_action` (first match wins, using the recomputed `answer_status`): `reveal_requested` → `explain`; `correct` → `complete`; `message_type` = `other` → `refocus`; `unclear` → `clarify`; else `revise`
figures/data/rubench_v1_dev200_9b.json CHANGED
@@ -3,12 +3,12 @@
3
  "split": "dev",
4
  "n_answers": 200,
5
  "n_criteria": 604,
6
- "built_at": "2026-11-03T17:17:53",
7
  "conditions": "first turn (feedback_mode=hint_1, reveal_requested=false, history=[]), temperature 0, max_tokens 1024, enable_thinking=false, no JSON schema enforcement. RuBio: SYSTEM_PROMPT only; base: SYSTEM_PROMPT+POLICY. Invalid JSON counts as wrong.",
8
  "finetuned": {
9
  "key": "9b-wt",
10
  "label": "RuBio-9B",
11
- "hf": "mulkzz/RuBio-9B@d97db06c",
12
  "in_dist_train_dev_criterion_match": 0.972,
13
  "name": "RuBio-9B 후보 wt(판정 가중 W=10)",
14
  "answers": 200,
 
3
  "split": "dev",
4
  "n_answers": 200,
5
  "n_criteria": 604,
6
+ "built_at": "2026-11-03T17:58:24",
7
  "conditions": "first turn (feedback_mode=hint_1, reveal_requested=false, history=[]), temperature 0, max_tokens 1024, enable_thinking=false, no JSON schema enforcement. RuBio: SYSTEM_PROMPT only; base: SYSTEM_PROMPT+POLICY. Invalid JSON counts as wrong.",
8
  "finetuned": {
9
  "key": "9b-wt",
10
  "label": "RuBio-9B",
11
+ "hf": "mulkzz/RuBio-9B@e19404e3",
12
  "in_dist_train_dev_criterion_match": 0.972,
13
  "name": "RuBio-9B 후보 wt(판정 가중 W=10)",
14
  "answers": 200,
figures/data/rubench_v1_dev200_all_9b.json CHANGED
@@ -3,7 +3,7 @@
3
  "split": "dev",
4
  "n_answers": 200,
5
  "n_criteria": 604,
6
- "built_at": "2026-11-03T17:17:53",
7
  "conditions": "first turn (feedback_mode=hint_1, reveal_requested=false, history=[]), no JSON schema enforcement, invalid JSON counts as wrong. RuBio: SYSTEM_PROMPT only; base and general models: SYSTEM_PROMPT+POLICY. RuBio and Qwen base: temperature 0, max_tokens 1024, thinking off. General models: vendor CLI at the listed reasoning effort, one fixed run.",
8
  "panel": {
9
  "round1": [
@@ -29,7 +29,7 @@
29
  "4b": {
30
  "key": "4b",
31
  "label": "RuBio-4B v2",
32
- "hf": "mulkzz/RuBio-4B@80d530fd",
33
  "role": "finetuned",
34
  "size": "4B",
35
  "name": "RuBio-4B v2",
@@ -393,7 +393,7 @@
393
  "9b-wt": {
394
  "key": "9b-wt",
395
  "label": "RuBio-9B",
396
- "hf": "mulkzz/RuBio-9B@d97db06c",
397
  "role": "finetuned",
398
  "size": "9B",
399
  "name": "RuBio-9B 후보 wt(판정 가중 W=10)",
@@ -757,7 +757,7 @@
757
  "27b": {
758
  "key": "27b",
759
  "label": "RuBio-27B",
760
- "hf": "mulkzz/RuBio-27B@99391820",
761
  "role": "finetuned",
762
  "size": "27B",
763
  "name": "RuBio-27B",
 
3
  "split": "dev",
4
  "n_answers": 200,
5
  "n_criteria": 604,
6
+ "built_at": "2026-11-03T17:58:28",
7
  "conditions": "first turn (feedback_mode=hint_1, reveal_requested=false, history=[]), no JSON schema enforcement, invalid JSON counts as wrong. RuBio: SYSTEM_PROMPT only; base and general models: SYSTEM_PROMPT+POLICY. RuBio and Qwen base: temperature 0, max_tokens 1024, thinking off. General models: vendor CLI at the listed reasoning effort, one fixed run.",
8
  "panel": {
9
  "round1": [
 
29
  "4b": {
30
  "key": "4b",
31
  "label": "RuBio-4B v2",
32
+ "hf": "mulkzz/RuBio-4B@ba9e00c8",
33
  "role": "finetuned",
34
  "size": "4B",
35
  "name": "RuBio-4B v2",
 
393
  "9b-wt": {
394
  "key": "9b-wt",
395
  "label": "RuBio-9B",
396
+ "hf": "mulkzz/RuBio-9B@e19404e3",
397
  "role": "finetuned",
398
  "size": "9B",
399
  "name": "RuBio-9B 후보 wt(판정 가중 W=10)",
 
757
  "27b": {
758
  "key": "27b",
759
  "label": "RuBio-27B",
760
+ "hf": "mulkzz/RuBio-27B@64465d06",
761
  "role": "finetuned",
762
  "size": "27B",
763
  "name": "RuBio-27B",
figures/rubench_v1_dev200_9b.png CHANGED

Git LFS Details

  • SHA256: 6e6bacdf2db545bcfc93cfbdd74ec0d3bdbc605951c41b49cb2a059aa7d743ff
  • Pointer size: 131 Bytes
  • Size of remote file: 866 kB

Git LFS Details

  • SHA256: 663a0c814e1ce388a4d0f2e4f1a239dc5fe95e62c48bb171f5f06123333de373
  • Pointer size: 131 Bytes
  • Size of remote file: 865 kB
figures/rubench_v1_dev200_9b.svg CHANGED