본문으로 건너뛰기

가이드

하나의 변경, 처음부터 끝까지

변경 후 점수가 올랐습니다. 이 페이지는 하나의 실제 변경을 따라가며, Oloproof가 그 변경의 출시를 허용하기 전에 묻는 모든 질문을 살펴봅니다. 심사 모델을 신뢰할 수 있는가, 변경이 단독으로 기준을 충족하는가, 대체하는 대상보다 심사 모델과 사람 모두에게 더 나은가, 그리고 다음에 무엇을 시도할 것인가. 시스템은 40개 문서를 바탕으로 답하는 작은 지원 봇이며, 로컬 모델로 여러분의 컴퓨터에서 실행됩니다. 아래의 모든 숫자는 엔진이 출력한 값입니다. examples/one_change에서 복사하고 REVIEWER=yourname ./run_demo.sh를 실행하세요.

변경

기준선 프롬프트는 봇에게 정확한 수치, 이름, 단위를 유지하라고 지시합니다. 후보는 따뜻하고 자연스러운 한두 문장을 요청합니다. 둘 다 같은 120개 질문으로 실행하며, 결정론적 검사(answer_correct: 답에 기대한 사실이 들어 있는가)와 로컬 모델 심사 모델(judge_correct: 같은 사실로 답하는가)을 사용합니다.

oloproof run --policy release.yaml
oloproof run --config candidate.yaml --policy release.yaml

정답 비율은 80.0%에서 82.5%로, 심사 모델의 통과율은 82.5%에서 83.3%로 올랐습니다. 이것이 겉보기 개선입니다. 두 실행 모두 아직 아무것도 결정하지 않습니다. 릴리스 규칙은 심사 모델을 읽는데 심사 모델이 검증되지 않았으므로, 규칙은 evaluator_not_validated와 함께 INSUFFICIENT_EVIDENCE를 반환합니다.

심사 모델을 신뢰할 수 있는가?

사람들이 심사 모델의 판정을 보지 않은 채 후보의 답에서 뽑은 블라인드 무작위 표본에 레이블을 달고, 엔진은 그것과 대조해 심사 모델을 측정합니다.

oloproof review CANDIDATE --criterion judge_correct --by you

기록된 세션에서 심사 모델은 레이블이 달린 79개 사례 중 77개에서 일치했고(97.5%, 하한 91.2%) 편향은 -2.5포인트였습니다. 기본 기준(일치 0.70, 편향 0.35) 안에 있으므로 검증되었고 결정에 쓸 수 있습니다. 그 세션에서는 검토자 대신 에이전트가 레이블을 달았습니다. 이는 워크플로를 보여 줄 뿐 사람의 판단이 아닙니다. 여러분이 실행할 때는 여러분이 검토자입니다.

후보가 단독으로 기준을 충족하는가?

release.yaml은 심사 모델 통과율 80% 이상을 요구합니다.

oloproof gate CANDIDATE --policy release.yaml --config candidate.yaml

83.3%, 범위 75.4%에서 89.6%는 80%에 걸쳐 있으므로 규칙은 INSUFFICIENT_EVIDENCE이고, 엔진은 약 592개 사례가 있으면 결정할 수 있다고 알려 줍니다. 신뢰할 수 있는 심사 모델이라도 아슬아슬한 결과를 분명하게 만들지는 않습니다.

기준선보다 나은가?

compare.yaml은 두 가지를 묻습니다. 심사 모델에 따르면 후보가 더 나은가(단, 심사 모델이 두 프롬프트에서 똑같이 틀린다는 것을 사람들이 보여 줄 때만 유지, judge_bias_bar: 0.10)? 그리고 같은 사례에 대한 두 답에 사람들이 직접 단 레이블(people_pass_diff, human_difference 지표)에 따르면 10포인트 넘게 나쁘지 않은가?

oloproof review CANDIDATE --against BASELINE --criterion judge_correct --by you --sample 40
oloproof compare CANDIDATE BASELINE --policy compare.yaml --config candidate.yaml

검토 화면은 실행 이름을 밝히지 않고, 동전 던지기로 정한 순서로 두 답을 A와 B로 보여 줍니다. 기록된 세션에서 심사 모델의 차이는 +0.8포인트(-5.1에서 +7.3)로 INSUFFICIENT_EVIDENCE였고, 결정하려면 약 3,690개의 짝지은 사례가 필요합니다. 사람들은 40쌍 중 후보를 36번, 기준선을 35번 통과시켰습니다. +2.5포인트(-11.1에서 +17.7)이므로 "10포인트 넘게 나쁘지 않음"도 INSUFFICIENT_EVIDENCE였습니다. 게이트는 차단했습니다. 이 변경은 점수가 거의 알아차리지 못한 문체 변경이었고, 120개 사례로는 1포인트 변화와 무변화를 구별할 수 없습니다.

왜 그곳에서 실패하는가?

oloproof diagnose CANDIDATE --intervention gold-context --criterion answer_correct --config candidate.yaml

엔진은 21개 실패를 올바른 구절을 모델에 건네 다시 실행했고, 대조군으로 구절 없이도 다시 실행했습니다. 대조군은 하나도 회복하지 못했고, 올바른 구절은 14개를 회복했습니다. 검색이 구절을 전혀 찾지 못한 7개, 찾았지만 상위 3개 아래로 순위가 매겨진 7개, 그리고 그래도 실패한 7개입니다. 엔진은 더 깊은 top_k를 가설로 제안하고 같은 사례로 검증했습니다.

oloproof diagnose CANDIDATE --intervention top-k --top-k 8 --criterion answer_correct --config candidate.yaml

순위에서 밀려난 7개 사례가 모두 회복되었고, 대조군은 하나도 회복하지 못했습니다.

후속 작업

followup.yaml은 top_k: 8을 지정한 후보로, 전체를 실행하는 새 시스템 버전입니다.

oloproof run --config followup.yaml --policy release.yaml
oloproof compare FOLLOWUP CANDIDATE --policy followup_compare.yaml --config followup.yaml

심사 모델 통과율은 90.0%(83.1%에서 94.8%)였으므로 80% 하한은 PASS였습니다. 후보와 비교하면 더 많은 정답(+3.3포인트)은 여전히 INSUFFICIENT_EVIDENCE였고, 심사 모델 통과율이 5포인트 넘게 나쁘지 않음은 PASS였습니다. 심사 모델은 후속 버전이 아니라 후보의 답으로 검증되었고, 후속 버전의 쌍에는 아무도 레이블을 달지 않았으므로 그곳에서의 사람들의 차이는 아무것도 결정하지 않습니다.

이것이 알려 줄 수 없는 것

작은 봇 하나, 변경 하나, 120개 사례, 로컬 모델. 실제 변경에서 엔진이 각 결정에 어떻게 도달하는지 보여 주지만, 다른 시스템에 대해서는 아무것도 말하지 않습니다. 로컬 표본은 선의에 기댄 것이며, 워크스페이스가 뽑은 표본만 그곳에서 검증됩니다. 모든 실행 id가 담긴 전체 기록은 docs/audits/DOGFOOD_LARKSPUR_2026-10-26.md입니다. 심사 모델, 비교 규칙, RAG 평가, 평가가 알려 줄 수 없는 것을 참고하세요.