독자 주도적 수정: 역풍을 불러온 네 가지 피드백
요약
에이전트 결정론(Agent Determinism) 연구 과정에서 독자들의 피드백을 통해 발견된 네 가지 기술적 한계와 수정 사항을 다룹니다. 특히 HHI 지표의 오류와 위치 인접성(position-adjacency)이 모델 준수율에 미치는 영향 등 에이전트 설계의 정밀도를 높이기 위한 실증적 분석을 포함합니다.
핵심 포인트
- HHI 지표 대신 시행당 분할표(per-trial contingencies)를 통한 pair-join 분석 필요성 확인
- 질문 인접성이 모델의 지시 사항 준수율에 결정적인 영향을 미침을 발견
- 에이전트의 고정 요소(fixture) 설계 시 발생할 수 있는 사각지대 식별
- 실험 데이터 기반의 에이전트 동작 메커니즘 수정 및 보완
독자 주도적 수정: 역풍을 불러온 네 가지 피드백
에이전트 결정론의 환상 (Agent Determinism Illusions) (Part 16)
맥락 설명: Part 15는 이중 라인 연산(dual-line ops) — Trigger∥Rank, Shadow∥Enforce, shadow가 공허해질 때의 fail-closed fallback — 에 대해 다루며 마무리되었습니다. 해당 내용이 배포된 후, 네 명의 독자가 네 가지 도전 과제를 제기했습니다. 각 도전 과제는 원문에서 방어하지 못했던 고정 요소(fixture)의 한계를 지적했습니다. 이번 파트에서는 네 가지 실험, 네 가지 양보, 그리고 네 가지 범위 축소 수정 사항을 수집하여 정리합니다.
Part 15의 업데이트에서 이미 한 가지(Tom Jones의 conf_desc 챌린지: "fixture joint, not safe fallback law")를 날카롭게 다듬었습니다. 이번 파트에서는 그 이후에 발생한 네 가지 사례를 다룹니다. 각 사례는 서로 다른 종류의 고정 요소 사각지대를 보여줍니다.
1. Mike Czerwinski — HHI pair-join은 집중 신호가 아니다
Mike의 주장: 나의 결함 클래스(defect-class) 집중 수치는 클래스 라벨(class labels)에 대한 HHI(Herfindahl-Hirschman Index)를 사용했습니다. 실제 운영과 관련된 기준은 pair-join — P(route ∧ CD | MISS) — 즉, 단일 미스(single miss) 내에서 경로(route) 변경이 결함 클래스(defect-class) 변경과 클러스터링되는지 여부입니다. 라벨에 대한 HHI는 pair-join을 볼 수 없으며, 오직 시행당(per-trial) 2×2 분할표(contingency table)만이 이를 확인할 수 있습니다.
스크립트: pair-join-empirical-test.py → results-v2/pair-join-empirical.json. qwen3:0.6b 모델을 사용하여 시행당 3번의 프로브(probe) 수행 (V: verdict가 MISS를 정의; R: routing audit; C: defect classifier). 20개 시나리오 × N=5 × 3개 프로브 = 총 300회 호출.
10개 시나리오에 걸친 30개의 MISS에 대한 결과:
| CD=0 | CD=1 | |
|---|---|---|
| route=0 | 12 | 3 |
| route=1 | 11 | 4 |
독립성 대비 리프트(Lift): 1.14. 결합 HHI(Joint HHI): 0.322. 시나리오 HHI(Scenario HHI): 0.124.
해석: pair-join은 본질적으로 독립적입니다 — 즉, 미스 내에서 경로 변경이 결함 클래스 변경과 클러스터링되지 않습니다. pair-join이 운영상의 기준이라는 Mike의 지적은 옳았으며, 실증적인 답변은 활용할 만한 집중(concentration)이 존재하지 않는다는 것입니다.
수정 사항: 라벨에 대한 HHI 사용을 중단합니다. 만약 pair-join 집중도가 운영상 중요하다면, 라벨 집계가 아닌 시행당 분할표(per-trial contingencies)를 통해 측정해야 합니다.
2. Tom Jones — position-adjacency는 모델 및 지시 사항에 따라 달라짐
Tom의 주장: 그의 고정 장치(fixture)에서, 질문에 인접한 노트(위치 100%)는 60/60회 준수된 반면, 다른 위치들은 80–85%에 머물렀습니다. 가장자리 패딩(Edge padding, 12개 노트의 간격)은 양 끝단의 이점을 지워버렸습니다. 특권을 가진 위치는 예산(budget) 위치가 아니라 질문에 대한 인접성(adjacency)입니다. 두 가지 필터: 예산은 무엇이 보이는지를 결정하고, 인접성은 무엇이 준수되는지를 결정합니다.
깔끔하고 일반화 가능한 주장입니다. 이를 재현하려고 시도했습니다.
스크립트: position-adjacency-obedience-test.py (v1, BANANA 접두사) 및 position-adjacency-obedience-v2.py (v2, 대문자 오버라이드 (uppercase override)).
v1 (BANANA 접두사, 이진 작업 (binary task)): glm-5.2와 qwen3:0.6b 모두 모든 위치에서 100% 상한선(ceiling)에 도달하며 분산이 나타나지 않았습니다. Tom의 이진 판결(binary-verdict) 주의 사항이 이를 예측합니다. 이진 작업에서는 동일 모델의 팔(arm)이 1.0 근처에서 포화(saturates)됩니다.
v2 (대문자 오버라이드, 지속적인 제약 (sustained constraint), 상한선 탈출). deepseek-v4-flash, K=12 내부 블록, 200회 호출:
| 조건 | pos=0 | pos=25 | pos=50 | pos=75 | pos=100 |
|---|---|---|---|---|---|
| no_padding | 95% | 75% | 90% | 90% | 85% |
| with_padding | 80% | 75% | 95% | 85% | 85% |
위치 100(질문에 인접함)이 가장 높지는 않았습니다 — 위치 0의 95% 대비 85%입니다. 위치 25는 두 조건 모두에서 가장 낮았습니다 — 이는 양 끝단의 이점이 아니라 중간의 하락(middle dip)입니다. 가장자리 패딩(Edge padding)은 준수율을 체계적으로 변화시키지 않았습니다.
해석: Tom의 60/60 결과는 그의 고정 장치(fixture)에서는 실제입니다. 본 실험에서는 형태가 다릅니다 — 이 효과는 보편적인 것이 아니라 모델 및 지시 사항(directive)에 특화된 것으로 보입니다. Part 15의 conf↔slot 셔플(shuffle)과 동일한 형태입니다: 가장자리(edges) 효과는 전이되지 않습니다. 개념적 구분(두 가지 필터: 보이는 것 vs 준수되는 것)은 여전히 유효합니다; 두 번째 필터는 실제 운영 트래픽(production traffic)에서 여전히 측정되지 않은 상태로 남아 있습니다.
수정 사항: 위치 인접성(position-adjacency)을 법칙이라고 주장하지 마십시오 — 더 많은 모델과 지시 유형에 걸쳐 재현될 때까지 이를 고정 장치 속성(fixture property)이라고 부르십시오.
3. Xiao Man — 아티팩트 형태(artifact shape)로부터의 깊이 신호(depth signal)는 안정적이지 않음
Xiao Man의 제안: 캐스케이드(cascade)의 depth-from-keys 규칙(budget → P4, services[] → P3)은 스키마 결정론적(schema-deterministic)이며 비용이 저렴하지만, 그 결정론은 표면적인 형태(surface shape)에 기반합니다. 이는 적대적 아티팩트(adversarial artifact)가 재작성할 수 있는 바로 그 지점입니다. 안정적 참조 대상(stable-referent) 테스트를 한 단계 위로 올리십시오. "이 케이스에 안정적인 참조 대상이 있는가?"라고 묻지 말고, "사소한 형태 변화에도 깊이 신호(depth signal)가 안정적인가?"라고 물어야 합니다.
세 가지 섭동(perturbation) 셀, 두 가지 실패 축:
| 섭동 (Perturbation) | 수행 내용 | 라우팅에 미치는 영향 | 실패 축 (Failure axis) |
|---|---|---|---|
| cue_erase | budget 큐(cue)를 제거하여 잘못된 핑거프린트 잔차(fingerprint residual)를 강제함 | 80/80 경로가 T4 → T3로 라우팅됨 | 100% 포착 → 82.5% |
| ... |
rename_keys 셀은 예상보다 더 심각합니다. 형태 기반 라우팅(shape routing)이 깨질 뿐만 아니라, 프로브 레이어(probe layer) 또한 깨집니다. probe() 함수가 art.get("services")를 하드코딩하고 있어, fixed_matched조차 패배하게 됩니다. 두 레이어가 키(key)에 결합(coupled)되어 있습니다.
스크립트: probe-artifact-shape-routing-test.py (cue_erase / decoy_nest) → results-v2/probe-artifact-shape-routing.json; probe-shape-routing-rename-keys-test.py → results-v2/probe-shape-routing-rename-keys.json.
해결책: 형태로부터 깊이를 추론하지 마십시오. 기준점(baseline)으로서 고정된 중간 깊이의 프로브(mid-depth probe)로 라우팅하십시오. 프로브가 교차 필드(cross-field) 신호를 보낼 때 에스컬레이션(escalate)하십시오. 기준 프로브를 키 이름이 아닌 구조적 불변량(structural invariants, checksum fixture)에 고정하십시오.
4. Mike Czerwinski — 조용한 실패(quiet-failure) 폴백 격차
Mike의 제안: 폴백 트리거인 shadow catches 0 while oracle > 0은 실제로 작동하고 있지만, 더 조용한 실패를 놓치고 있습니다. 즉, shadow가 무언가(0이 아닌 값)를 포착하지만, 그것이 지속적으로 잘못된 무언가인 경우입니다. Shadow가 0을 포착하는 것은 소음이 크고 폴백하기 쉽습니다. 잘못된 0이 아닌 숫자를 포착하는 것이 더 어려운 케이스입니다.
Part 15의 폴백 규칙 (dual-line-ops-sim.py 346행):
if shadow_c == 0 and oracle > 0:
return enforce, "fallback_arrival"
return shadow_c, "shadow"
격차: shadow ∈ (0, enforce) — shadow가 여전히 무언가를 포착하지만, enforce가 포착했을 것보다는 적은 양입니다. 공허한 체크(Vacuous check)는 절대 실행되지 않으며, 이중 라인(dual-line)은 손상된 순위(compromised rank)를 전송하게 됩니다.
순수 수학 스캔 (Pure-math scan)
스크립트: partial-stale-shadow-test.py → results-v2/partial-stale-shadow.json. oracle=8인 상태에서 81-셀 (shadow, enforce) 그리드. 세 가지 규칙: vacuous (현재), noninferior (제안됨: shadow < enforce ⟹ fallback), god (상한선 (upper bound)).
| 측정 항목 | 값 |
|---|---|
| quiet-gap regime 내 셀 수 | 28 / 81 |
| ... |
경험적 스트레스 테스트 (Empirical stress)
스크립트: partial-stale-injection-test.py → results-v2/partial-stale-injection.json. 층화된 클래스 스트림 (n=164, k=8, enforce=8, oracle=8, pure R_hist=8). 항목별 R_hist 점수 섭동 (perturbation) 주입 (확률 p로, 점수를 이전 값으로 교체). p당 30회 추출:
| p | shadow 평균 | gap 비율 | noninferior 대비 vacuous 손실 |
|---|---|---|---|
| 0.3 | 7.90 | 3% | 3.00 |
| ... |
이 피스처 (fixture)에서 pure R_hist는 모서리 지점에 위치합니다 (temporal diluted에서는 0, stratified class에서는 8) — partial-stale는 자연적으로 드러나지 않습니다. 스트레스 테스트가 이를 채워줍니다: 랭커 (ranker)가 부분적으로 캘리브레이션 (calibration)을 잃게 되며 → enforce가 더 많이 잡아냈을 상황에서 vacuous는 손상된 shadow를 전송하게 됩니다.
수정 사항: shadow==0을 shadow < enforce로 변경. 단 한 줄. Noninferior는 gap 셀에서 엄격하게 우세하며, 모서리에서는 동률을 이룹니다.
종합: 독자들이 지적한 피스처의 한계
| 독자 | 지적된 피스처의 한계 | 수정 사항 |
|---|---|---|
| Mike (HHI) | 레이블 집계 (label aggregation)가 쌍 결합 (pair-join) 독립성을 숨김 | 쌍 결합을 직접 측정 |
| ... |
패턴: 각 독자는 Part 15의 피스처에서 특정 사각지대 (blind spot)를 지적했습니다. 수정 사항 중 어느 것도 "피스처가 틀렸다"는 것이 아닙니다 — 피스처는 측정하고자 하는 것을 측정했습니다. 수정 사항은 _피스처의 측정값이 허용하지 않는 것_에 관한 것입니다.
독자 주도적 수정은 피스처 기반 연구의 버그가 아닙니다. 그것은 필수적인 보완재입니다 — 하나의 피스처는 하나의 질문에 답하며, 독자들은 원래의 프레이밍 (framing)이 놓친 인접한 질문들을 명명합니다.
네 개의 코멘트, 네 개의 실험, 네 개의 범위 축소 수정. 피스처는 측정하는 것을 측정할 뿐이며 — 나머지는 독자들이 명명할 몫입니다.
시리즈: Agent Determinism Illusions · 스크립트: GitHub**
이전 아크: Part 15 — D+T2 names who enters; budget names who gets seen**
댓글 스레드 출처: Part 6
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기