RAG2026-5일37차시 · 루브릭 설계11 / 18← 이전목차다음 →MetaContents

37차시. 루브릭 설계

8. 루브릭 채점 결과 활용

출처: 원본 PDF 37차시_루브릭설계.pdf 17쪽 · 쪽 그림 17쪽

📝 결과 집계

출력
rows = []
for d in dev_set:
    final = app.invoke(init_state(d["question"]), {...})
    s = score_by_rubric(d["question"], d["gold_answer"],
                        final["answer"], final.get("documents"))
    rows.append({**s, "id": d["id"], "type": d["type"]})

# 항목별 평균 — 어디가 약한지 바로 보인다
print("■ 항목별 평균 (만점 2.0)")
for k in WEIGHTS:
    avg = sum(r[k] for r in rows) / len(rows)
    bar = "█" * int(avg * 10)
    print(f"   {k:<14} {avg:.2f} {bar}")

print(f"\n   총점 평균  : {sum(r['total'] for r in rows)/len(rows):.2f}")
print(f"   Gate 통과  : {sum(r['passed'] for r in rows)}/{len(rows)}")

실행 결과 예시
─────────────────────────────────────────────
─────────
■ 항목별 평균 (만점 2.0)
   accuracy       1.86 ██████████████████
   grounding      1.94 ███████████████████
   completeness   1.51 ███████████████        ← 약점
   clarity        1.77 █████████████████

   총점 평균  : 1.79
   Gate 통과  : 33/35

🎯 completeness가 1.51로 가장 낮습니다
36차시 분석과 일치합니다.
복합 질문에서 "한쪽만 답함" 문제였죠.
루브릭 채점이 이분법 채점과 같은 결론을 냈다면
두 평가 방식이 서로를 검증한 셈입니다.
그리고 루브릭은 얼마나 부족한지까지 알려줍니다.
1.51이면 "대체로 답하지만 자주 빠뜨린다"는 뜻입니다.
개선 후 1.75가 되면 진전을 숫자로 보여줄 수 있습니다.

← 이전 절37차시 · 7. 실습 ③ — 루브릭 자동 채점다음 절 →37차시 · 9. 자주 하는 실수