feat(v2): 품질 3-wave — BOJ 상용 수준 문제 품질 - #1
Open
LsMin124 wants to merge 3 commits into
Open
Conversation
- 난이도: anchors 20→44 균형화(Bronze~Diamond) + 티어 rubric·3-anchor 삼각측량·복잡도×n_max 교차확인 - 지문: narrative 작문 품질 기준(BOJ 상용 수준) ADD-only + 위장 도메인 21→42 - 채점 데이터: adversarial 아키타입 15종(graph 7/sequence 6/string 2, shape 핀 정합) + max_stress 상한 분리(_MAX_STRESS_ELEMENTS=50k) + formalizer 생성 상한 정합 규율 - QA: presentation(지문 품질) 5번째 리뷰어 신설(P1 4종/P2 5종, 초급 완화 charter 병설) + 리뷰어 열람 확대(샘플 3개·채점셋 상세) - 정답성: brute 검증자 독립화 — _BRUTE_SYSTEM_PROMPT(설계 비열람 검산자) + brute_mode 배선(Tier B differential 독립성 §7.4 복원) - 채점셋 견고화: 생존율 0.7 게이트 + golden 검증 resolved_edges 채점셋 편입 + 퇴화 샘플 1개 보장 - 예제 설명: sample_explainer 노드 신설(SampleTestCase.description 채움, 은닉 규율, 예외 시 무변경) — api/batch/CLI 프로덕션 on 검증: ruff clean / mypy --strict 102 files / pytest 964 passed, 10 skipped (baseline 892, 무회귀) 한계: 로컬 API 키 부재로 real-LLM 실측 미수행(후속)
run v2-b4fd4625 (P2 dijkstra) 실측에서 QA ambiguity 게이트가 잡은 2개 blocker 클래스의 구조 수선: - render_constraints: weighted_edges 에 E ∈ [0, 2V] 행 추가 — 생성기 실상한(backbone V-1 + extra ≤V = 2V-1)의 코드 파생. E 상한 부재로 solver 가 복잡도 설계 불가하던 결함 (routeback 으로는 구조적으로 수선 불가하던 클래스) - formalizer: 복수 퇴화 규칙(시작==끝 × 도달불가 등) 겹침 시 우선순위까지 edge_case_semantics 에 결정하는 규율 ADD 검증: ruff / mypy --strict / pytest 965 passed (+1 회귀 가드)
run v2-54d68df4 (P2 dijkstra) 실측에서 QA 가 잡은 2개 결함 클래스의 구조 수선: - generate_inputs/_serialize_inputs 에 distinct_index_refs(기본 False, 샘플 전용) 추가 — 같은 collection 대상 index 참조(s·t)가 크기 ≥2 일 때 rng 추가 소비 없이 산술 회피. 전 샘플 s==t 로 '항상 0 출력' trivial 해석이 가능하던 QA blocker 해소 (채점셋 경로는 byte-identical — s==t 퇴화 커버리지 유지) - faithfulness 판정 규율에 '계약에 없는 입력 사용 규칙 창작 = distortion' ADD — narrative 가 io_schema 에 없는 필터/자격 조건(소인수·위상순서 류)을 지어내 QA 5관점 전멸로 이어지던 왜곡을 상류(모델링 단계)에서 reject, synthesis 비용 낭비 차단 검증: ruff / mypy --strict / pytest 966 passed (+1 회귀 가드)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
생성 문제 품질을 BOJ 상용 저지 수준으로 끌어올리는 3-wave 개선. 4개 서브시스템 병렬 감사로 갭을 도출하고 3-wave(총 10개 병렬 워크스트림 + 통합 CI + 적대적 리뷰 2관점 + blocker 수정 루프)로 구현했다. 상세:
CHANGES.md §70.Wave 1 — 품질 4축
4문단·문어체·번역투 금지·용어 일관·300800자), 위장 도메인 풀 21→42_Bias아키타입 15종(graph: path_chain/star/dense/cycle_heavy/duplicate_edges/equal_weights/extreme_weights, sequence: sorted_asc/desc/all_equal/alternating/single_element/extreme_values, string: all_same_char/periodic) — shape 핀 정합(F18), max_size+max_stress 상한 타격 2개 보장,_ADVERSARIAL_MIN_SIZE=10규모 게이트presentation(지문 품질) 리뷰어 신설(P1 4종/P2 5종) — blocker 는 작문 붕괴 수준만(해석 유일성은 ambiguity 전담), 초급 완화 charter 병설. ambiguity/fairness charter 체크리스트 보강, 리뷰어 열람 확대(샘플 3개 + 채점셋 상세)Wave 2 — 정답성/견고성
_BRUTE_SYSTEM_PROMPT(설계 비열람 검산자·정공법/완전탐색) +brute_mode(design 4라인 제외, 파싱 preamble 규율 유지), main_v2/api 배선(batch 는 팩토리 재사용 자동 커버)_MIN_SURVIVAL_RATIO=0.7생존율 게이트(카테고리별 drop 진단), golden 검증된resolved_edges를edge_resolved:*로 채점셋 편입,spec_bridge가 edge_case_semantics 선언 시 퇴화 샘플 1개 보장Wave 3 — 예제 설명/스트레스
sample_explainer노드 신설: BOJ 표준 '예제 설명'을SampleTestCase.description에 기입(기존 0% 사용) — 인스턴스 사실만(해법 처방·형식 재서술 금지), LLM 예외 시 state 무변경(신규 실패 클래스 0),with_sample_explanations플래그(기본 off, api/batch/CLI 프로덕션 on)_MAX_STRESS_ELEMENTS=50_000(bias="max" 한정, 나머지 10k 유지), formalizer 에 생성 상한 정합 규율(복잡도별 권장 상한, 10^5+ 선언 금지 — 지문 제약↔실데이터 괴리 차단), 아키타입 하한 2 클램프(카테고리명↔입력 불일치 해소)Test plan
uv run ruff check ipe tests— cleanuv run mypy --strict ipe— 102 files cleanpython -m ipe.v2.difficulty --force재측정) — 로컬 API 키 부재로 머지 후 별도 수행 예정후속 (범위 외, CHANGES §70.7)
in-graph 난이도 타겟팅 / special judge(다답 문제) / leakage 실코퍼스 grounding / QA back-route 구조 결함 수선 경로 / samples_engaged=0 게이트 승격