39차시. 미니프로젝트 ② 구현과 개선
퀴즈 2 — 개선 전후 비교표와 유지 판단
개선 전 측정값 before, 개선 후 측정값 after, 목표 targets 를 받아 지표마다 (이름, 전, 후, 변화, 달성 여부) 한 줄씩 만드는 compare 를 완성해 보세요. 이어서 Correctness 가 올랐으면 "유지", 아니면 "되돌림" 을 돌려주는 decide 도 만드세요.
빈칸 코드에서 시작합니다.
def compare(before, after, targets):
pass
def decide(before, after, key="Correctness"):
pass결과 보기 (예시 풀이)
# 5절 개선 전후 비교표를 만들고, 개선을 유지할지 되돌릴지 정합니다.
# 목표: (비교 방향, 목표값). 목표가 없는 지표는 넣지 않습니다.
TARGETS = {
"Correctness": (">=", 0.85),
"Faithfulness": (">=", 0.95),
"Abstention": (">=", 1.0),
"P95 응답": ("<=", 10.0),
}
def compare(before, after, targets):
# 지표마다 (이름, 전, 후, 변화, 달성 여부) 한 줄을 만듭니다.
rows = []
for name in before:
b, a = before[name], after[name]
if name in targets:
op, goal = targets[name]
ok = a >= goal if op == ">=" else a <= goal
mark = "달성" if ok else "미달"
else:
mark = "-"
rows.append((name, b, a, a - b, mark))
return rows
def decide(before, after, key="Correctness"):
# 핵심 지표가 올랐으면 유지, 아니면 config 한 줄을 되돌리고 기록에 남깁니다.
return "유지" if after[key] > before[key] else "되돌림 (실패한 실험으로 기록)"
def show(title, before, after):
print(f"[{title}]")
for name, b, a, d, mark in compare(before, after, TARGETS):
print(f" {name:<13} {b:>7.3f} → {a:>7.3f} ({d:+.3f}) {mark}")
print(" 판단:", decide(before, after))
before = {"Hit Rate@k": 0.778, "MRR": 0.611, "Correctness": 0.714,
"Faithfulness": 0.941, "Abstention": 1.0, "P95 응답": 11.3}
# 예시 1: 수업 자료 5절의 MMR + k=7 결과 → Correctness 는 달성, Faithfulness·P95 는 미달이어야 합니다.
after_mmr = {"Hit Rate@k": 0.889, "MRR": 0.694, "Correctness": 0.857,
"Faithfulness": 0.928, "Abstention": 1.0, "P95 응답": 11.8}
show("MMR + k=7", before, after_mmr)
# 예시 2: 7-1절처럼 개선했는데 Correctness 가 66.7% 로 떨어진 경우 → 되돌림이어야 합니다.
# (Correctness 말고는 이 예시를 위해 정한 값입니다)
after_bad = dict(before, Correctness=0.667)
show("떨어진 실험", before, after_bad)
실행 결과
[MMR + k=7]
Hit Rate@k 0.778 → 0.889 (+0.111) -
MRR 0.611 → 0.694 (+0.083) -
Correctness 0.714 → 0.857 (+0.143) 달성
Faithfulness 0.941 → 0.928 (-0.013) 미달
Abstention 1.000 → 1.000 (+0.000) 달성
P95 응답 11.300 → 11.800 (+0.500) 미달
판단: 유지
[떨어진 실험]
Hit Rate@k 0.778 → 0.778 (+0.000) -
MRR 0.611 → 0.611 (+0.000) -
Correctness 0.714 → 0.667 (-0.047) 미달
Faithfulness 0.941 → 0.941 (+0.000) 미달
Abstention 1.000 → 1.000 (+0.000) 달성
P95 응답 11.300 → 11.300 (+0.000) 미달
판단: 되돌림 (실패한 실험으로 기록)채점 기준: P95 응답처럼 작을수록 좋은 지표의 방향을 구분하고, 목표가 없는 지표는 달성 여부를 비워 두면 정답입니다.
관련 교안: 39차시 「5. 개선 전후 비교표」