검증 범위

실제 실행 보고서의 수치를 다시 계산하고, 어떤 조건에서 나온 결과인지 확인하기 위한 문서다. 공개 파일은 원시 실행 증거의 전체 복제본이 아니다. 새 모델 실행, 기존 결과의 독립 재채점, CSV 집계 검산을 구분한다.

고정한 조건

항목설정
실행일2026-10-16 UTC
최초 프로토콜 고정2026-10-16 03:24:46 UTC
공식 코어1cfe254e8d25b15f37048c3730134686abe60335
JobBench 데이터d43a66575635da0d3f6cb9a20976dc1a60f3ffc9
비교무변경 기본 실행과 PPC k=1의 합성 후 실행
표본회계·장부 task1/task2, IT 지원 task1/task2
순서직군별 task1 → task2, 직군별 라이브러리 분리
모델동일 내장 모델 구성 상속, 정확한 스냅샷·추론 설정은 확인 불가
세션 상한1,200초
자료 접근미리 제공한 로컬 원본·참조 자료, 실행 과정의 웹 접근 금지 지시
격리새 문맥과 파일 범위 지시, 공유 파일시스템
주 지표원본 JobBench 가중 루브릭의 이진 판정 점수
평가산출물 해시 고정 후 과제별 새 익명 A/B 평가 문맥
보조 지표산출물 계약 검사, 사전 지정 CPU 기준 제외 민감도 분석
비용·토큰실제 내장 사용량 정보 없음, 외부 모델 API 호출 없음

평가 점수를 보고 과제를 고르거나 결과를 제거하지 않았다. 루브릭 정보와 채점 결과를 실행·편집·회고에 피드백하지 않았다. 실제 완료 수는 솔버 16회, 편집·합성 12회, 회고 4회이며 별도 평가가 4회다.

실행 중 수정·정정

아래는 점수 해석에 필요한 구현 변경과 보고상의 정정을 요약한 것이다. 원시 실행 로그는 공개하지 않는다.

UTC 시각변경영향 범위
03:25회계 task1의 원본 파일명 별칭을 명확히 안내데이터·과제·비교 조건·채점 기준 변경 없음
03:33task2 무변경 기본 실행을 미리 병렬 수행개선·라이브러리 순서는 task1 → task2 유지
03:39SQLite 표·뷰의 읽기 전용 텍스트 추출 보완편집 단계 이전 적용, 원본 바이너리 유지, 모델 재실행 없음
03:49추론 설정·토큰·비용의 미노출을 명시설계 메타데이터를 관측된 설정으로 취급하지 않음. 어댑터의 비용 0은 측정값이 아님
04:16PPTX 표·그룹 텍스트를 미리보기에 포함task2 개선 전에 적용. task1은 PPTX 출력이 없어 영향 없음. 모델 재실행 없음
05:19기본/후보 하네스 재직렬화 차이를 추가 교란으로 기록전체 산출물 고정 뒤의 보고 정정. 출력 수정·재실행·채점 변경 없음

안전한 재개는 저장된 과제 완료 체크포인트에서 확인했다. 임의의 편집 단계 중간부터 중복 없이 재개된다는 보장은 검증하지 않았다.

CSV 집계 검산

results.csv는 최종 보고와 같은 네 행을 담고 있다. 단위는 백분율이며 delta_percentage_points는 PPC − 기본의 퍼센트포인트 차이다. sensitivity 열은 사전 지정 CPU 항목 제외 분석이다. 이 경우 기본 열과 값이 같다.

저장소 루트에서 Python 표준 라이브러리만으로 실행한다. 모델이나 외부 API는 호출하지 않는다.

python3 - <<'PY'
import csv
import math
from pathlib import Path
from statistics import mean
 
path = Path("content/메모리-연구/harness2/results.csv")
with path.open(encoding="utf-8", newline="") as f:
    rows = list(csv.DictReader(f))
assert len(rows) == 4
assert len({r["task_id"] for r in rows}) == 4
base = [float(r["base_percent"]) for r in rows]
ppc = [float(r["ppc_percent"]) for r in rows]
deltas = [b - a for a, b in zip(base, ppc)]
for row, delta in zip(rows, deltas):
    assert math.isclose(delta, float(row["delta_percentage_points"]), abs_tol=1e-9)
wins = sum(d > 1e-9 for d in deltas)
ties = sum(abs(d) <= 1e-9 for d in deltas)
losses = sum(d < -1e-9 for d in deltas)
print(f"base={mean(base):.2f}%, ppc={mean(ppc):.2f}%, delta={mean(deltas):.2f}pp")
print(f"wins/ties/losses={wins}/{ties}/{losses}")
for condition in ("base", "ppc"):
    value = mean(float(r[f"{condition}_sensitivity_percent"]) for r in rows)
    print(f"{condition} sensitivity={value:.2f}%")
PY

예상 결과는 기본 35.28%, PPC 29.51%, 차이 −5.77pp, 승/동점/패 0/3/1이다. 이 검사는 집계 산술과 CSV 내부 일관성을 확인한다. 점수의 원본 증거를 재판정하거나 루브릭의 타당성을 검증하지는 않는다.

공식 코어의 별도 스모크 테스트

실험 당시 Python 3.12.14/Linux에서 공식 결정론적 데모의 병렬·순차 k=2 실행과 공식 회귀검사 5개가 통과했다. 내장 모델 어댑터의 회귀검사도 8개 통과했다. 데모는 고정된 편집·선택 규칙을 쓰므로 모델의 학습이나 과제 성능의 증거가 아니다.

공식 코어만 다시 확인하려면 새 작업 폴더에서 아래처럼 고정 커밋을 사용한다. 출력 폴더 이름은 기존 결과와 겹치지 않게 한다. 별도 의존성 설치 없이 당시 실행한 표준 라이브러리 데모·검사 경로다.

git clone https://github.com/google-research/harness2.git harness2-source
git -C harness2-source checkout --detach 1cfe254e8d25b15f37048c3730134686abe60335
cd harness2-source
env -i PATH="$PATH" HOME=/tmp PYTHONPATH=. \
  python3 -m harness2.cli.demo --output ../harness2-smoke-output --k 2
env -i PATH="$PATH" HOME=/tmp PYTHONPATH=. \
  python3 -m unittest discover -s tests -v

전체 벤치마크 런처는 모델 접근, 비용 한도, 평가 정보 누출 방지 설정이 필요하다. 위 명령은 전체 모델 벤치마크를 실행하지 않는다. 동일 내장 모델 스냅샷을 지정할 수 없고 원본 어댑터·산출물 전체도 이 저장소에 없으므로, 네 과제의 모델 실행을 그대로 복제하는 one-command 재현은 제공하지 않는다.

다음 실험에서 필요한 대조

고정 모델·추론 설정, 동일 총 예산의 best-of-N 또는 반복 기준선, 여러 과제 순서, 라이브러리 on/off, 하네스의 실제 변경량, 평가자 반복 또는 전문가 재채점을 함께 설계할 필요가 있다. 이는 후속 검증 제안이며 이번에 완료한 실험에 포함되지 않는다.