위성 대 L3 11/27 범위 실험

자료 설명

사이트에 실은 자료 묶음의 파일별 스키마와 가림 규칙이다. 모든 파일은 data/ · img/ 아래에 있고 그대로 내려받을 수 있다.

가림 규칙과 통계

개인 연락처(전화 · 이메일 · 주민번호 · 계좌 · 주소 번지)는 [가림], 사람 이름은 [이름], 이름 옆 학번 · 생년월일은 [가림](id_near_name). 공인 · 회사 · 제품 · 역사 인물 · 작품 속 공개 인물(가수 등)은 두었다. 같은 규칙을 원문 · YAML · 대치 글 · 판정 근거에 모두 적용했다. 그림 속 글은 가릴 수 없으므로, 장 몫 YAML · 대치 글 · 장 제목에 가림 대상이 있는 장의 그림은 싣지 않았다(withheld_imgs).

가린 원문 51건 · 싣지 않은 그림 356장. 가리기 전 원문은 싣지 않는다.

종류가린 수
사람 이름13,890
이메일57
전화359
주소 번지50
계좌6
이름 옆 학번 · 생년월일188
원문별 가림 수 (51건)
원문가린 수종류싣지 않은 그림
n35246사람 이름 24610
n37154사람 이름 15410
n5893이메일 45 · 전화 4815
n781주소 번지 10
n8420전화 200
n85192전화 137 · 사람 이름 5511
n93166사람 이름 16620
n991계좌 10
n10426전화 260
n11220전화 200
n1202계좌 20
n1262주소 번지 20
n12860사람 이름 41 · 이름 옆 학번 · 생년월일 196
n136400사람 이름 235 · 이름 옆 학번 · 생년월일 16515
n1381계좌 10
n145756사람 이름 75626
n161293사람 이름 29312
n1631이메일 10
n166203사람 이름 20312
n1703전화 30
n17253사람 이름 5314
n182959사람 이름 957 · 이메일 218
n1831이메일 10
n18547사람 이름 4710
n186396사람 이름 39613
n189307사람 이름 303 · 이름 옆 학번 · 생년월일 419
n1962이메일 1 · 주소 번지 10
n1971이메일 10
n1981주소 번지 10
n2021이메일 10
n2061이메일 10
n2131전화 10
n2141전화 10
n2201이메일 10
n221569사람 이름 566 · 전화 322
n223103사람 이름 10319
n2252이메일 1 · 주소 번지 10
n2303이메일 2 · 주소 번지 10
n23737주소 번지 375
n2393전화 30
n2412주소 번지 20
n2489,192사람 이름 919255
n25251사람 이름 5116
n26420전화 200
n3033주소 번지 30
n3051주소 번지 10
n31726전화 260
n3411계좌 10
n34573사람 이름 7314
n38251전화 5114
n3891계좌 10

파일별 스키마

11/04 「위성 대 L3」 실험에 쓴 자료 전부를 정적 사이트용으로 묶었다. 예시 몇 개만 고른 것이 아니다. 운영 원문 400 · 조건 7 · DO 3,056 · L3 세트 · 집계 표 · 프롬프트 원문이 모두 들어 있다. 만든 스크립트는 실험 빌드 폴더(비공개) 에 있다(b_places → b_img → b_do → b_write_do → b_write_r400 → b_write_l3 → b_summary → b_prompts). 원자료는 읽기만 했다. LLM 호출은 0이다. 운영 DB 는 읽기 전용 SELECT 만 했다.

조건 기호

키 기호 뜻 풀 · 서버
c1 ① 기준(위성 없음 · L3 없음), 운영 YAML 그대로 base 풀 sat-l3-base-r1 · iui 8aede8d19
c2 ② 위성(질의에 컴포넌트 제목 · 감점 10 · 가점 3 · 못 채운 위성 글 비우기) sat 풀 sat-l3-sat-r1 · iui (실험 커밋, 원격 미반영)
c2p ②′ ② 에서 위성 감점 · 가점을 끈 판 sat 풀 · (실험 커밋, 원격 미반영)
c3 ③ 현실 L3(N1 · N2 만 노출) — 그림이 ① 과 0/5,292 다름 → ① 과 같음 base 풀
c4 ④ 위성 + 현실 L3 — ② 와 0/5,360 다름 → ② 와 같음 sat 풀
c1-49 ①-49 L1 · L2 를 45종 어휘(V1)로 다시 생성 base 풀
c3-49 ③-49 ①-49 + V1 L3 — ①-49 와 0/5,444 다름 → ①-49 와 같음 base 풀
c5 ⑤ 이상 L3(조합 대리 합성, 3원문 × 변형 A · B) — L3 세트에 따로 sat 풀 부품

공통 규칙

  • 원문 id 는 운영 검색 키(search_key, uuid)다. n 은 recent400 순번(1–400, L3 생성 파일 이름의 번호)이다.
  • 자리(place) = (원문 case, 레벨 level(L1 · L2, rec: 를 뗀 것), 등수 rank(0부터, 원문 하나의 상위 10 안 순서), 장 page). P4 판정 표본(rounds/p4/sample.py)과 같은 열쇠다. export_key = <case>#<page> (등수 0) 또는 <case>#<page>#r<등수+1>. 기본 품질 카드 셀의 단위 키와 같다.
  • 실은 자리 = 조건마다 (원문, 레벨)별 앞 3 등수의 모든 장 ∪ P4 판정 표본 1,000 자리. 조건마다 2,214–2,325 자리다(전체 5,210–5,444). 나머지 자리(4–10등의 표본 밖 장)는 싣지 않았다. 정적 호스팅 파일 수 한도 때문이다.
  • 그림 같음(sig) = 원문 · 대치 입력 payload sha256 · 장 몫 YAML sha256 이 같음(P4 와 같은 정의). 같은 sig 의 그림은 파일 하나를 함께 가리킨다. img/r/c1/… 를 ② 자리가 가리킬 수도 있다.
  • 그림은 webp 품질 70이다. 결과 그림은 긴 변 960px(원래 1920×1080 판정 그림), DO 원본 그림은 긴 변 640px 이하다.
  • 경로는 모두 site/ 기준 상대 경로다(img/…, data/…).

가림 (운영 원문)

  • 개인 연락처(전화 · 이메일 · 주민번호 · 계좌 · 주소 번지)는 [가림] 으로 바꿨다. 사람 이름은 [이름] 으로, 이름 바로 옆 학번 · 생년월일도 [가림] 으로 바꿨다.
  • 규칙 = build/mask.py(정규식) + build/names.txt(원문 400 을 훑어 고른 이름 목록)다.
    • 명단 · 참고문헌 저자 · 소설 속 인물 이름처럼 애매한 것도 가렸다.
    • 가수처럼 공개 활동명 · 역사 인물 · 회사 · 제품 이름은 그대로 두었다.
    • uuid 꼴 식별자는 가림에서 지켰다.
  • 원문 · YAML · 대치 글 · 장 몫 YAML · judge 근거 · 카드 근거 · 짝 선호 사유 · 검수 메모에 같은 규칙을 썼다.
  • 그림 속 글은 가릴 수 없다. 그래서 장 몫 YAML · 대치 글 · 장 제목에 가림 대상이 있는 장(22 원문 · 356장)은 그림을 싣지 않았다. 그 자리는 img: null · img_note: "가림 대상 글이 그림에 있어 싣지 않음" 이다.
  • 통계와 원문별 목록은 masking-report.json 에 있다.

index.json — 목록(원문 400)

{ note, conditions: {c1:"①", …}, rows: [ {
  id, n, preview(가린 앞 80자), chars(원문 글자 수), visual_kind_selected(「시각화 종류」 고름), kind(고른 종류 table|list|process|chart|compare|null),
  levels(["L1","L2","rec:L1","rec:L2"] 중 있는 것),
  top1: {c1|c2|c2p|c1-49: {do, level, category} | null},   // 등수 0 · 장 0
  grades: {조건: {PERFECT|ACCEPTABLE|BAD: 수}},            // 판정 표본 자리만
  l3_form: {V3: bool, V1: bool},                            // L3 프롬프트가 L3 형을 냈나
  n_places: {조건: 실은 자리 수}, has_pairpref, has_review, masked(가림 수) } ] }

r400/<id>.json — 원문 하나(400 파일, 지연 로드용)

{ id, n, input_text(가림), kind, generation_types, visual_kind_selected, stratum{type, visual_kind_selected, length_bin},
  levels,
  yaml: {
    prod: {L1, L2, rec:L1?, rec:L2?},          // 운영 생성 YAML 그대로(① · ③ 의 입력). rec = 「시각화 종류」 1군
    sat: {L1, L2, …},                          // ② · ②′ · ④ 입력: 운영 문서 + 컴포넌트 title · subtitle(A-2)를 YAML 로 다시 쓴 것
    sat_titles: {레벨: [{i, type, title, subtitle}]},   // 덧붙인 두 칸만
    l3_V3, l3_V1,                              // L3 생성(18종 · 45종). 없으면 null(V1 은 1건 실패)
    v45_L1, v45_L2                             // ①-49 · ③-49 입력(45종 어휘 재생성)
  },
  m1: {V3: M1 행, V1: M1 행},                  // l3/m1-classify.ts — l3_form · hetero · per_item · fold_l1 · lift_l2 · l2_typeset_match · supply_shape · unique_l3 · pairs
  conditions: {
    c1|c2|c2p|c1-49: { label, search{n_entries, candidate_count, pool{returned,tier1,intact,tier1_intact,fallback}},
                       case_cards{R7: 셀},      // 원문 단위 카드
                       places: [ 자리 ] },
    c3|c4|c3-49: { label, same_as("c1"|"c2"|"c1-49"), note, l3_filter{sent_l3, kept, dropped, stages[[대표 결과 nested_stage…]], skipped, l3_meta, entries} }
  },
  pairpref: [ {id, cmp("② 대 ①"|"①-49 대 ①"|"⑤ 대 ②"), X{label, do, imgs[원래 파일 이름 = <stem>.img]}, Y{…},
               calls[{answer A|B|same, reason, model}](순서 바꿔 2회), mapped[X|Y|same], verdict(X|Y|same|split)} ],
  review: [ {n, cond, place("case|L|rank|page"), export_key, do, verdict(defect|misjudge), note} ],   // 사람 검수 대체(에이전트 40장)
  missing_imgs: {c2: [...], c2p: [...]},        // 합성기 굽기 실패 장(A-13: 판정에서 BAD)
  masking: {종류: 수} }

자리 하나(places[]):

키 뜻
place{case, level, rank, page} · export_key · stem 자리 열쇠 · 카드 단위 키 · 회차 파일 이름(<case>-r<rank>-p<page>-do<DO>)
in_sample · top3 P4 판정 표본 1,000 자리에 드나 · (원문, 레벨) 앞 3 등수인가
do · node 이긴 DO id · 경계(컴포넌트) 노드 id. DO 자료는 data/do/<do>.json
levels · entry_kind(single · group) · part([장 번호, 장 수]) · slot_index · generation_group(0군 · 1군) 검색 응답의 항목 꼴
sig · vs_c1 · vs_c2 그림 sig · ① 대비 same/diff/c1_missing · (②′ 만) ② 대비
img · img_note 결과 그림 경로(없으면 null과 사유)
result.categories · matched_category · category_origin · tier · cost · cost_breakdown[{key, value}] 검색 결과 요지. cost_breakdown 에 satellitePenalty · satelliteBonus(A-3) · titleDropped · unitBlank · textShrink 등
result.nested_stage L3 포함 단계(N1–N5, 없으면 null)
result.binding[{field, node, text}] 대치에서 채운 칸. 위성 채움 = field 가 title · subtitle · desc 인 줄
result.empty_text_nodes · result.blank · result.preserve · result.title_target 위성 비움 = 대치 입력에서 '' 로 비운 글 노드(A-4) · 비운 칸 목록 · 원문 보존 · 경계 밖 제목 구제
result.outside_text · inside_unbound_text · applied_defects(앞 30) · predicted_defects · page_title · page_count · sources 대치 기록
pool 그 원문 검색 풀 요지(후보 수 · tier1 · intact)
page_yaml 그 장 몫 YAML(judge · 카드 입력)
judge 판정 표본 자리만: {g: 총평(PERFECT · ACCEPTABLE · BAD, 정본 다섯 축 strict), axes{1_structure_fitness, 2_content_substitution_accuracy, 3_visual_hierarchy, 5_text_readability, 7_design_completeness}, explain{축: 근거}, src}. src 가 다른 조건이면 같은 그림이라 그 판정을 복제한 것
cards{P2 R4 R8 D4 D8 E1 E3 E4 E5} 장 단위 기본 품질 카드 셀 {defect(0/1/null), modal, answers, evidence(앞 3), reused_from}. 규칙 카드(P2 R4 R7 R8 D2 D3 D4)는 실은 자리 전부, LLM 카드(R6 D8 E1 E3 E4 E5)는 표본 자리만. reused_from = 같은 그림이라 그 조건 셀을 재사용
slot_cards{D2, D3} 글 칸 단위 셀 목록 [{unit, …셀}]
pair_cards R6(순위 역전) 짝 셀 [{pair: "키|키", …셀}]

do/<do_id>.json — DO 하나(3,056 파일)

실린 DO 는 아래를 모두 합친 것이다.

  • 위 자리의 이긴 DO
  • L3-50 원본 DO 50
  • L3-50 검색 앞 5 의 DO
  • ⑤ 부모 · 자식 DO · ② 짝 장 DO

DO 글은 템플릿 자리글(디자인 자산)이라 가리지 않았다.

{ do_id, uuid, data_version, tier, status, used_in[r400|fav50|fav50-search|c5],
  img("img/do/<id>.webp"), img_source("운영 origin_size 썸네일" — 편집기 원본 크기 썸네일, 없으면 thumbnail_url),
  frames: [ {                                   // 풀 스냅샷의 경계 행(경계마다 하나)
     node_id, is_root, categories, template_idx(★이 풀은 모두 null), iis_boundary_version, iis_property_version,
     unit_count, shape_key, children_depth,
     outside_text[{role, rlsc_id, sheet_id, text}],   // 경계 밖 글
     inside_unbound_text,
     frame_base: { categories, provenance, units[{id, fields{label|items|value|…: [{node, text, chars, lines}]}, children[]}],
                   dataset, relations, satellites(base 풀: 경계 안 헤더), decorations, params,
                   nested[{path, frame}] | null, nested_categories },      // nested = L3 포함 공급
     satellites_sat_pool: {title|subtitle|desc: [{node, text, chars, lines}]}   // 위성 풀(A-1 tree 위성 승격 뒤)
  } ],
  iis: [ {node_id, categories, data_version, boundary_extractor_version(boundary-v12.4), boundary_model,
          property_extractor_version, property_prompt_version, topological_relation, core(=structure: entity · dataset 노드), properties} ],  // 운영 iis_semantic_component
  relations: [ {ordinal, relation_type(Containment|Juxtaposition), container_node_id, contained_node_id, member_node_ids, axis, extractor_version, model} ],  // 운영 iis_semantic_component_relation
  tree_satellites: [ {node_id, desc[{id, role, type, text, parent, depth, box}], deco[…]} ],   // A-1 계산(sat/out/tree-satellites) — 비어 있는 경계는 뺐다
  text_nodes: [ {id, role, type, text} ] }        // DO RLSC 의 글 노드 전부

L3 세트 (l3/)

  • l3/r400-l3form.json — recent400 에서 L3 형이 나온 3건(V3 id 300 · V1 id 107 · 127)이다. 각 행의 칸은 아래와 같다.
    • id · n · version · vocab · input_text
    • l3_yaml · prod_L1_yaml · prod_L2_yaml
    • m1 · m1_other(다른 판의 M1 행)
    • l3_filter{c3|c4|c3-49} — 검색 응답 대표 결과의 nested_stage 목록과 남김 · 버림 수
    • discarded_because
  • l3/fav50/index.json · l3/fav50/<01–50>.json — L3 유리 가상 원문 50(06 문서) 묶음이다.
    • 원본 DO: do · do_json · do_img(원본 그림) · container_node · outer · inner
    • 꼴: shape(single · per_item) · juxtaposition_too
    • relation_rows — Containment 관계 메타(meta/containment-rel.tsv)
    • structure — DO 구조 + 글: 컨테이너 units · nested 경로 · 위성 · 모든 글
    • 가상 원문: topic · input_text — gpt-5.6-luna 가 쓴 가상 글이라 가리지 않았다
    • yaml{L3-V3, L3-V1, L2-V3, L2-V1}
    • 분류: m1{V3, V1} · match{V3, V1}(원본 조합 · 꼴 대조) · out_class{L3-V3 …}(L3형 · 병치 · 바깥만 · 안쪽만 · 다른 종류)
    • search{V3|V1} — L3 형 문서만 있다. a = L3 문서만 실은 검색의 앞 5와 nested_stage, b = L2+L3 → N1 · N2 거르기 → 앞 10
  • l3/c5-pairs.json — ⑤ 조합 대리 6짝(3원문 × 변형 A · B)이다. 각 짝의 칸은 아래와 같다.
    • variant · variant_desc · id · n
    • 그림: c5_img(합성 그림 img/l3/c5/<A|B>/…) · c2_imgs(같은 원문 ② 등수 0의 장, img/l3/c5/c2/…)
    • 조합: parent_do · scales(자식 축척) · placed[{entity, child, child_do, ok}] · removed_text_nodes
    • pairpref{calls, mapped, verdict} — X = ⑤, Y = ②
    • 부품(자식 장 단독) 그림은 회차에 구운 그림이 없어 싣지 않았다. 부모 · 자식 DO 원본 그림은 do/ 에 있다.

집계 표 (summary/)

파일 내용
doc-05-p4-judgement.json · doc-06-l3-favorable-50.json 05 · 06 문서의 모든 표. 표마다 {n, section(절 경로), caption(표 위 한 줄), columns, rows[{cells(문서 글 그대로), num(숫자로 읽히는 칸의 값, 아니면 null)}]}. 구간 「a – b」 칸은 cells 를 읽는다
doc-00…doc-04-*.json 같은 꼴(계획 · P0 · P1 실행 문서의 표, 참고)
p4-judge-an.json judge 비교별 BAD · 차이 · 원문 군집 부트스트랩 구간 · 축별 · 레벨별(05 「judge」 표의 원자료)
p4-bq-an.json 카드별 결함률 · 차이 · 구간 · 짝 비교(05 「기본 품질 카드」 표의 원자료)
p4-pairpref-an.json 짝 선호 비교별 승패 · 위치 편향 · 비용 · 구간
p4-j2-correct.json 사람 검수 대체 보정(오판 비율 · 보정 BAD · 구간)
p4-sample.json P4 표본 1,000 자리와 조건별 상태(same_as_c1 · diff · missing)
m1-r400.json · m1-fav50.json M1 요약(V3 · V1)

프롬프트 원문 (prompts/)

파일 글은 손대지 않고 복사했다. prompts/index.json 에 파일마다 아래를 적었다.

  • file · bytes · sha256
  • what · source_file
  • repo · branch · commit · code
  • model · used_by
폴더 내용
l3-generate/ L3 생성 시스템 프롬프트 전문 V3(18종) · V1(45종)과 V3 조각 원본(포함 · 병치 · 판별)
satellite-titles/ 위성 title · subtitle 덧붙이기 시스템 프롬프트(A-2)와 스크립트 전문
l3-fav50-raw/ L3 유리 가상 원문 생성 시스템 프롬프트 · 사용자 메시지 예 · 스크립트
pairpref/ 짝 선호 판정 시스템 · 사용자 프롬프트 · 호출 스크립트
judge/ 묶음 8 전문(운영 DB garbage_collector.judge_prompt_sets id 8, 5축 · excluder · verifier · gate · reeval), 레포 프롬프트 차이 기록, 실행 요지(README.txt)
bq-cards/ 기본 품질 카드 13장 정의(vs-eval-v2 tools/eval/cards/*.yaml)

빠진 것 · 줄인 것

  • 표본 밖 4–10등 자리 — 조건마다 약 3,000 자리는 싣지 않았다(위 「실은 자리」).
  • 가림 대상 장의 그림 356장 — 22 원문의 그림은 싣지 않았다(위 「가림」).
  • 굽기 실패 그림 — ① 3 · ② 32 · ②′ 9장은 원래 그림이 없다(DO 특정 합성기 실패). missing_imgs · img_note 에 적었다.
  • ③ · ④ · ③-49 자리 — 짝 상대와 그림이 한 장도 다르지 않아 따로 싣지 않았다. same_as 와 l3_filter 만 있다.
  • ⑤ 부품 장 그림 — 회차에서 굽지 않아 없다.
  • template_idx — 이 풀(IIS frame)에서는 모두 null 이다.
  • LLM 카드 — 표본 밖 자리는 재지 않아서 값이 없다.
  • 크기 — 전체 약 294MB · 파일 13,279개다(한도 400MB · 18,000). 가장 큰 파일은 r400/ 의 약 2.9MB 다.