docs(bench): 단일 평가 기준을 추가한다
별도 채점 하네스를 만들지 않고도 산출물을 재검산 가능하게 비교할 수 있도록 고정 100점 rubric, opaque 평가, 직접 evidence와 단순 총점 규칙을 마지막 작업으로 추가한다.
This commit is contained in:
parent
16b7aba95a
commit
3d10de0652
4 changed files with 63 additions and 22 deletions
|
|
@ -67,7 +67,7 @@ Phase를 가로지르는 실제 다음 작업 선택은 [전역 마일스톤 실
|
|||
|
||||
- [진행중] [bench-lite-01] 초경량 Agent 모델 비교
|
||||
- 경로: [[bench-lite-01] 초경량 Agent 모델 비교](milestones/thin-agent-model-comparison-benchmark.md)
|
||||
- 요약: 최소 HTML 스모크를 통과한 동일 경로를 복구·재개·자동 채점 없는 단일 시도로 실행하고, 성공 여부·경과 시간·제공된 usage·산출물만 한 표에 기록한다.
|
||||
- 요약: 최소 HTML 스모크를 통과한 동일 경로를 복구·재개 없는 단일 시도로 실행하고, 성공 여부·경과 시간·제공된 usage와 고정 100점 기준표의 1회 산출물 평가를 기록한다.
|
||||
|
||||
- [계획] [surface-01] Inference API Surface와 실행 Lifecycle 책임 경계 리팩터링
|
||||
- 경로: [[surface-01] Inference API Surface와 실행 Lifecycle 책임 경계 리팩터링](milestones/inference-api-surface-execution-lifecycle-refactor.md)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
## 목표
|
||||
|
||||
`[bench-route-01]`에서 호출 가능성이 확인된 동일 9개 조합을 고정된 실제 비교 과제로 한 번씩 실행해 최소 비교 결과를 남긴다.
|
||||
측정 지원 코드는 만들지 않고, caller 실행과 결과 기록만 측정 경계로 둔다.
|
||||
측정 지원 코드는 만들지 않고, caller 실행과 결과 기록, 고정 기준표에 따른 산출물별 1회 심층 평가만 측정 경계로 둔다.
|
||||
|
||||
## 상태
|
||||
|
||||
|
|
@ -28,6 +28,7 @@
|
|||
- 모든 조합에 [얇은 비교 결과 문서](../../../../agent-test/dev/iop-thin-agent-model-comparison.md)의 같은 고정 비교 prompt와 같은 빈 임시 workspace 사용
|
||||
- 조합별 정확히 1회 실행
|
||||
- 성공 여부, 전체 경과 시간, caller가 직접 제공한 usage, 산출물 경로와 짧은 수동 관찰만 기록
|
||||
- 실행 전에 잠근 공통 100점 기준표로 각 산출물의 source와 동일 viewport render를 한 번만 분석하고, 항목별 증거·감점 사유·총점을 기록
|
||||
- 실패한 조합은 실패로 기록하고 같은 측정 안에서 retry, resume 또는 대체 run을 하지 않음
|
||||
|
||||
## 기능
|
||||
|
|
@ -36,6 +37,7 @@
|
|||
|
||||
- [ ] [single-attempt-matrix] 9개 조합을 같은 prompt와 초기 상태에서 정확히 한 번씩 실행한다. 검증: 조합별 producer attempt가 하나이며 retry/resume/recovery 기록이 없어야 한다.
|
||||
- [ ] [minimal-result-table] 성공 여부, 경과 시간, caller 제공 usage, 산출물 경로와 짧은 관찰을 단일 Markdown 표로 기록한다. 제공되지 않은 usage는 `미제공`으로 두고 추정하거나 0으로 바꾸지 않는다.
|
||||
- [ ] [single-pass-scorecard] 실행 전에 고정한 공통 100점 기준표로 각 scorable 산출물의 source와 desktop/mobile render를 한 번만 함께 분석해 항목별 점수, 직접 증거, 감점 사유와 산술 총점을 기록한다. 검증: 평가 pass에는 route·model·시간·usage를 제공하지 않고 opaque 평가 ID만 사용하며, 모든 점수는 고정 anchor와 evidence를 가지고 재채점은 산술·전사 오류 수정으로만 제한한다.
|
||||
- [ ] [bounded-conclusion] 성공한 결과만 비교하고 실패·미제공 데이터를 점수 0으로 취급하지 않는 짧은 결론을 남긴다. 자동 채점이나 통계적 일반화는 하지 않는다.
|
||||
|
||||
## 완료 리뷰
|
||||
|
|
@ -46,7 +48,7 @@
|
|||
- 검토 항목:
|
||||
- [x] `[bench-route-01]`이 통과 또는 사용자 승인된 외부 차단 상태다.
|
||||
- [ ] 새 benchmark script와 자동화 state가 없다.
|
||||
- [ ] 조합별 정확히 한 번의 실행과 최소 결과 표만 남았다.
|
||||
- [ ] 조합별 정확히 한 번의 실행, 최소 결과 표와 evidence-backed 단일 평가표만 남았다.
|
||||
- agent-ui 상태 반영: 해당 없음
|
||||
- 리뷰 코멘트: 없음
|
||||
|
||||
|
|
@ -54,8 +56,8 @@
|
|||
|
||||
- manifest runner, orchestration framework, lifecycle store
|
||||
- retry, resume, recovery qualification, stale-run repair
|
||||
- browser/CDP 자동 검증, screenshot gate, accessibility/network gate
|
||||
- 익명 LLM 채점, 자동 순위, 반복·분산·유의성 분석
|
||||
- browser/CDP 자동 검증, screenshot pass/fail gate, accessibility/network 자동 gate
|
||||
- 별도 judge 모델, 다중 평가자 합의, 자동 순위, 반복·분산·유의성 분석
|
||||
- 이 측정을 IOP 제품 안정성 또는 다른 Milestone의 완료 조건으로 승격하는 것
|
||||
|
||||
## 작업 컨텍스트
|
||||
|
|
@ -63,5 +65,5 @@
|
|||
- 선행 작업: [벤치 경로 최소 HTML 스모크](../../../archive/phase/knowledge-tool-optimization-extension/milestones/benchmark-route-minimal-html-smoke.md) 완료
|
||||
- 실행 방식: 기존 공식 caller 명령을 한 번씩 직접 실행하며 공통 runner를 만들지 않는다.
|
||||
- 결과 위치: [얇은 비교 결과](../../../../agent-test/dev/iop-thin-agent-model-comparison.md)
|
||||
- 준비 상태: 고정 prompt, 9행 결과표, 단일 시도 판정 규칙을 준비했다. 별도 script, manifest, state store는 없다.
|
||||
- 준비 상태: 교체 가능한 고정 prompt, 9행 결과표, 공통 100점 기준표, 단일 평가 scorecard를 준비했다. 별도 script, judge, manifest, state store는 없다.
|
||||
- 세션 라우팅: 이 세션에서 execution preset의 Work 바인딩은 사용자 지시에 따라 live `ornith:35b`를 사용하며 tracked 설정은 변경하지 않는다.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
### bench-lite
|
||||
|
||||
1. [[bench-lite-01] 초경량 Agent 모델 비교](phase/knowledge-tool-optimization-extension/milestones/thin-agent-model-comparison-benchmark.md)
|
||||
통과한 동일 경로를 복구·재개·자동 채점 없이 한 번씩 실행하고 최소 비교 표만 남긴다.
|
||||
통과한 동일 경로를 복구·재개 없이 한 번씩 실행하고, 고정 기준표로 산출물을 한 번만 깊게 평가해 근거와 총점을 남긴다.
|
||||
|
||||
### route
|
||||
|
||||
|
|
|
|||
|
|
@ -2,38 +2,77 @@
|
|||
|
||||
## 목적
|
||||
|
||||
검증을 마친 9개 caller/model/route 조합에 같은 HTML 구현 요청을 정확히 한 번씩 실행해 성공 여부, 경과 시간, caller가 직접 제공한 usage와 짧은 관찰만 비교한다. 별도 benchmark script, runner, manifest, retry, resume, browser gate 또는 자동 채점은 사용하지 않는다.
|
||||
검증을 마친 9개 caller/model/route 조합에 같은 HTML 구현 요청을 정확히 한 번씩 실행한다. 운영 결과와 산출물 품질을 분리하고, 품질은 실행 전에 잠근 공통 100점 기준표로 산출물별 정확히 한 번 깊게 분석한다. 별도 benchmark script, runner, judge, manifest, retry, resume 또는 자동 gate는 사용하지 않는다.
|
||||
|
||||
## 고정 요청
|
||||
|
||||
아래 문장을 모든 조합에 그대로 사용한다.
|
||||
|
||||
> Create a polished single-file responsive landing page in `index.html` for “Orbit Ops”, a fictional AI operations dashboard. Use no external assets, frameworks, or JavaScript. Include a semantic header, main, and footer; a hero with a title and two calls to action; three feature cards; and a system-status panel with three services and visible status labels. Put all CSS in a `<style>` element and make the layout adapt at 720px or below. Include exactly once `<meta name="iop-bench" content="BENCH_LITE_01">`. Write the file, read it back, and then finish with `BENCH_LITE_01_DONE`.
|
||||
> Create a polished single-file responsive landing page in `index.html` for “Orbit Ops”, a fictional AI operations dashboard. Use no external assets, frameworks, or JavaScript. Include a semantic header, main, and footer; a hero with a title and two calls to action; three feature cards; and a system-status panel with three services and visible status labels. Put all CSS in a `<style>` element and make the layout adapt at 720px or below. Include exactly once `<meta name="iop-bench" content="BENCH_LITE_01">`. Write the file, read it back, and then finish with `BENCH_LITE_01_DONE` on its own line followed by the exact full `index.html` in one `html` fenced code block.
|
||||
|
||||
입력을 교체할 때는 이 블록과 아래 `A. 요청 충족` 체크리스트만 실행 전에 함께 바꾸고 고정한다. 나머지 평가 축과 실행 방식은 유지한다.
|
||||
|
||||
## 실행 규칙
|
||||
|
||||
- 각 조합은 빈 임시 workspace에서 정확히 한 번만 실행한다.
|
||||
- 실패도 결과이며 같은 측정에서 retry, resume, recovery 또는 대체 실행을 하지 않는다.
|
||||
- direct 경로는 caller workspace의 `index.html`과 terminal marker를 확인한다.
|
||||
- execution preset은 Edge private workspace cleanup 계약을 유지하므로 caller-visible terminal marker를 확인하고 산출물 경로는 `비공개 workspace(정리됨)`으로 기록한다.
|
||||
- execution preset은 Edge private workspace cleanup 계약을 유지하므로 caller-visible terminal marker와 최종 응답의 exact HTML code block을 확인한다.
|
||||
- usage는 caller가 직접 제공한 값만 기록하고 없으면 `미제공`으로 둔다.
|
||||
- 기존 원격 SOPS token과 command-scoped managed CA만 사용하며 별도 benchmark token이나 전역 CA override를 만들지 않는다.
|
||||
- 이 세션의 execution preset Work는 live `ornith:35b` 바인딩을 사용한다. tracked runtime 설정은 변경하지 않는다.
|
||||
- 각 exact HTML source와 SHA-256, `1440×900` desktop 및 `390×844` mobile render만 ignored run evidence에 보존한다. render는 품질 분석 입력이지 제품 경로의 pass/fail gate가 아니다.
|
||||
- full source를 얻지 못한 실행은 `실행 실패`와 별개로 `채점 불가`로 기록하며 0점으로 바꾸지 않는다.
|
||||
- scorable source에는 실행 후 opaque 평가 ID를 부여한다. 단일 평가 pass에는 ID, source와 두 render만 제공하고 route·model·시간·usage 매핑은 점수와 evidence가 고정된 뒤 결합한다.
|
||||
|
||||
## 결과
|
||||
|
||||
| 경로 | 상태 | 경과 시간 | caller usage | 산출물/terminal evidence | 짧은 관찰 |
|
||||
|---|---|---:|---|---|---|
|
||||
| Claude Code → Claude direct | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Claude Code → Gemini direct | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| OpenCode → Gemini direct | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Claude Code → GPT direct | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Codex → GPT direct | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Claude Code → Gemini execution preset | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| OpenCode → Gemini execution preset | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Claude Code → GPT execution preset | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Codex → GPT execution preset | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| 경로 | 평가 ID | 상태 | 경과 시간 | caller usage | source SHA-256 / terminal evidence | 짧은 관찰 |
|
||||
|---|---|---|---:|---|---|---|
|
||||
| Claude Code → Claude direct | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Claude Code → Gemini direct | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| OpenCode → Gemini direct | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Claude Code → GPT direct | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Codex → GPT direct | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Claude Code → Gemini execution preset | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| OpenCode → Gemini execution preset | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Claude Code → GPT execution preset | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
| Codex → GPT execution preset | 미부여 | 미실행 | 미측정 | 미제공 | 미확인 | — |
|
||||
|
||||
## 공통 평가 기준표 — 100점
|
||||
|
||||
평가자는 route, model, 경과 시간과 usage를 보지 않고 opaque 평가 ID, exact source와 두 고정 viewport render만 사용한다. `A`는 명시된 세부 점수를 합산한다. `B`~`D`의 각 5점 항목은 `5=명확히 충족`, `3=대체로 충족하나 눈에 띄는 결함 1개`, `1=일부 흔적만 있거나 결함이 여러 개`, `0=없거나 깨짐`의 네 anchor만 사용한다. 중간 점수는 쓰지 않는다.
|
||||
|
||||
| 축 | 세부 기준 | 배점 | 허용 점수 |
|
||||
|---|---|---:|---|
|
||||
| A. 요청 충족 | 완전한 HTML 문서 4, 내부 `<style>` 4, 외부 asset/framework 없음 4, JavaScript 없음 4, exact meta 1회 4 | 20 | 세부 항목별 0 또는 4 |
|
||||
| A. 요청 충족 | `header/main/footer` 3, hero title+CTA 2개 4, feature card 3개 4, service 3개+visible label 4, 720px 이하 실제 breakpoint 5 | 20 | 명시 세부 점수만 합산 |
|
||||
| B. 반응형·레이아웃 | desktop hierarchy, mobile reflow, overflow/clipping 방지, component/readability consistency | 20 | 각 0/1/3/5 |
|
||||
| C. 사용성·접근성 | heading/landmark 구조, CTA 의미·focus, status의 non-color cue, viewport·대비·가독성 | 20 | 각 0/1/3/5 |
|
||||
| D. 시각 완성도 | 정보 위계, palette/type/spacing, component/status cohesion, polish/distinctiveness | 20 | 각 0/1/3/5 |
|
||||
|
||||
총점은 `A+B+C+D`의 단순 합이며 별도 가중·정규화·상대 순위 보정은 없다. 요구 위반은 해당 `A` 점수에서만 반영하고 같은 결함을 다른 축에서 중복 감점하지 않는다. 단, 그 위반이 실제 레이아웃·사용성·시각 결함을 별도로 만든 경우에는 해당 render 증거를 적고 감점할 수 있다.
|
||||
|
||||
## 단일 평가 기록
|
||||
|
||||
각 scorable 산출물마다 아래 한 행과 짧은 evidence block 하나만 작성한다. 모든 산출물 평가가 끝날 때까지 rubric을 바꾸지 않는다.
|
||||
|
||||
| 평가 ID | A /40 | B /20 | C /20 | D /20 | 총점 /100 | 채점 상태 |
|
||||
|---|---:|---:|---:|---:|---:|---|
|
||||
| 미부여-01 | — | — | — | — | — | 미채점 |
|
||||
| 미부여-02 | — | — | — | — | — | 미채점 |
|
||||
| 미부여-03 | — | — | — | — | — | 미채점 |
|
||||
| 미부여-04 | — | — | — | — | — | 미채점 |
|
||||
| 미부여-05 | — | — | — | — | — | 미채점 |
|
||||
| 미부여-06 | — | — | — | — | — | 미채점 |
|
||||
| 미부여-07 | — | — | — | — | — | 미채점 |
|
||||
| 미부여-08 | — | — | — | — | — | 미채점 |
|
||||
| 미부여-09 | — | — | — | — | — | 미채점 |
|
||||
|
||||
Evidence block 형식: `평가 ID — A: 충족/누락 selector와 점수; B~D: source selector 또는 viewport에서 직접 관찰한 근거; 감점: 기준·anchor·사유`. 한 결함당 한 문장으로 제한한다. 평가는 산출물별 한 번만 수행하고, 이후 수정은 합계 산술 오류나 evidence 전사 오류만 허용하며 수정 사유를 같은 block에 남긴다.
|
||||
|
||||
이 총점은 고정 rubric과 직접 evidence에 기반한 재검산 가능한 단일 평가 점수다. 반복 표본이나 다중 평가자 합의가 아니므로 통계적 모델 우위나 절대적 품질 척도로 해석하지 않는다.
|
||||
|
||||
## 결론
|
||||
|
||||
9개 단일 시도가 끝난 뒤 성공 결과만 짧게 비교한다. 실패와 미제공 usage를 0점으로 바꾸거나 반복 실행·통계·순위로 일반화하지 않는다.
|
||||
9개 단일 시도와 단일 평가가 끝난 뒤 scorable 결과의 총점과 축별 강점·약점만 짧게 비교한다. 실행 성공률·속도·usage는 품질 총점과 별도로 제시한다. 실패, 채점 불가와 미제공 usage를 0점으로 바꾸거나 반복 실행·통계적 우위로 일반화하지 않는다.
|
||||
|
|
|
|||
Loading…
Reference in a new issue