타입 안전은 오류 없음이 아니며 결정 헤드는 루브릭보다 선택지 이름을 따른다
Type-Safe Is Not Error-Free: A Constrained Decision Head Follows the Option Name, Not the Rubric Bound to It
무엇인가
타입이 지정된 결정 모델(typed decision model)은 자유 형식 텍스트 대신 미리 선언된 선택지 집합 위의 확률분포를 반환한다. 불법 후보의 로짓을 마스킹한 뒤 소프트맥스를 취하기 때문에 출력은 구조적으로 항상 스키마를 만족한다. 논문은 이 보장이 정확히 무엇을 보장하는지부터 정리한다. 마스킹과 재정규화는 확률 질량이 선택지 집합 밖으로 새지 않는다는 것만 말해줄 뿐, 그 질량이 어느 선택지에 얹히는지는 전혀 말해주지 않는다. 그래서 벤더가 광고하는 0% 타입 오류율은 측정값이 아니라 리드아웃의 해석적 성질이며, 모델이 네 답 중 셋을 틀리는 조건에서도 여전히 0%로 유지된다. 논문의 질문은 단순하다. 확률 질량이 상태와 정의가 맞는 선택지에 가는가, 아니면 모델이 이름이 마음에 드는 선택지에 가는가.
어떻게 동작하나
이 둘을 분리하기 위해 저자들은 라벨-루브릭 교환(label-rubric swap)이라는 도구를 쓴다. 인터페이스는 선택지를 "no: <루브릭>"처럼 이름과 정의를 붙여 렌더링하는데, 두 이름(ℓ0, ℓ1)에 대해 정렬 조건(aligned arm)은 각 이름을 원래 루브릭에 묶고, 교환 조건(swapped arm)은 두 루브릭을 이름 사이에서 맞바꾼다. 정답은 처음부터 끝까지 루브릭에 키잉되어 있으므로 루브릭을 읽는 모델은 교환에 영향받지 않고, 이름을 읽는 모델은 답이 뒤집힌다. 질문, 상태, 루브릭 문자열, 선택지 집합, 선택지 개수는 바이트 단위로 동일하다. 통제 조건은 극성이 없는 이름 0/1과 A/B로 같은 구조 조작을 반복하는 것이고, 모든 효과는 이 통제 대비 차이로 보고된다. 추가로 극성도 내용도 없는 무작위 5자 문자열 15쌍, 그리고 다지선다 문항에서 이름만 중립 문자로 바꾸거나 한 칸 회전시켜 각 이름이 이웃의 내용을 광고하게 만드는 조건도 돌린다. 데이터는 4개 술어(송장 대사, 에이전트 트레이스 분류, 보안 경보 분류, 고객센터 에스컬레이션)에 걸친 이진 워크플로 결정 1200건(술어당 300건, 정답 양성률 .5750)이며, 각 항목은 데이터셋 자체의 과제별 루브릭을 갖는다. 별도로 다지선다 683건과 두 리드아웃을 같은 입력으로 비교하기 위한 1800건 코퍼스가 쓰인다. 감사 대상은 세 가지 리드아웃이다. 선택지마다 [MASK] 마커 토큰 하나의 문맥 임베딩을 점수화하는 마커 리드아웃(ModernBERT-large에 2층 트랜스포머 헤드), 선택지의 이름과 루브릭 전체 스팬 토큰을 평균내는 스팬 평균 리드아웃(DeBERTa-v3-large), 그리고 HTTP로 질의하는 벤더의 호스팅 모델이다.
무엇과 다른가
핵심 결과는 교환 자체가 아니라 교환 대상에 따라 갈린다. 루브릭 텍스트를 고정하고 정답을 루브릭에 키잉한 상태에서 no와 yes 뒤의 루브릭을 맞바꾸면 반환 답변의 76.92%가 바뀌는 반면, 동일한 조작을 0과 1 뒤에서 하면 6.50%, A와 B 뒤에서 하면 6.00%만 바뀐다. 이중차분은 0/1 대비 70.42%p(95% CI [67.58, 73.08]), A/B 대비 70.92%p([68.16, 73.50])다. 균형 정확도는 .8719에서 .2839로 떨어져 우연 수준 아래로 내려가지만, 0/1 통제는 .8368에서 .8322로 거의 움직이지 않는다. 더 중요한 것은 손상의 형태다. AUROC가 .9376에서 .2315로 떨어지는데, 이는 단순한 불확실성 증가가 아니라 순위가 통째로 반대로 뒤집힌 것이다. 교환 조건의 점수를 뒤집으면 AUROC가 .77까지 회복된다는 점이 이를 뒷받침한다. 술어별로 쪼개도 no/yes는 최소 56.7%를 유지하는데, 통제 조건은 어느 술어에서도 11.3%를 넘지 않아 최소 7.4배 차이다.
어떻게 쓰나
효과를 키우는 요인도 분리된다. 극성 자체의 기여가 41.00%p이고, 학습 중 실제로 출력했고 인터페이스가 실제로 배포하는 no/yes와 false/true처럼 친숙한 단어가 추가로 16.04%p를 더한다. 다만 저자들은 이 두 요인을 이 실험 설계로 깨끗하게 분리하지 못한다고 명시한다. 선택지가 2개를 넘으면 이름이 거의 전부를 좌우한다. 다지선다 683건에서 설명은 그대로 두고 이름만 중립 문자로 바꾸면 52.42%의 답이 바뀌고 정확도는 .5637에서 .2782로 떨어지며, 이름을 한 칸 회전시켜 각 이름이 이웃의 내용을 광고하게 만들면 79.65%가 바뀌고 정확도는 .1552까지 내려간다. k=16에서 중립 이름 조건의 정확도 .141은 정답 선택지가 첫 번째 자리에 있는 비율 .1406과 사실상 같아, 의미가 아니라 위치가 답을 정하게 된다. 리드아웃 기하구조는 효과 크기를 결정한다. 같은 1800건에 같은 교환을 적용하면 스팬 평균 헤드는 no/yes에서 19.50%만 바뀌어 마커 헤드의 80.50%보다 4.1배 작다. 이름 한 토큰이 훨씬 긴 루브릭과 평균내지며 희석되기 때문이라는 설명이 붙는다. 벤더의 호스팅 모델도 같은 방향을 보인다. no/yes 교환이 답변의 32.50%를 바꾸는 반면 중립 통제는 2.08%와 1.67%에 그쳐 대비 30.42%p(95% CI [27.58, 33.33])이고, 균형 정확도는 .7127에서 .5163, AUROC는 .8146에서 .5806으로 떨어진다. 이 모델은 결정적이지 않아 같은 입력을 두 번 물었을 때 최대 1.33%가 바뀌는데, 교환 효과는 그 바닥의 24배다. 마지막으로 극성도 내용도 없는 무작위 문자열은 세 모델 모두에서 중립 통제와 같은 구간에 안착한다(6.86%, 11.67%, 2.02% 대 7.94%, 14.83%, 1.88%, 최대 차이 3.16%p). 정렬 조건의 균형 정확도 차이가 .03 이내이므로 이 낮은 뒤집힘률은 채널이 꺼진 것이 아니라 여전히 내려지는 결정이다. 모든 조건에서 타입 오류율은 0%다.
전제와 한계
실무적 함의는 명확하다. 0% 타입 오류율은 디코더의 성질이므로 신뢰도 지표처럼 제시해서는 안 되고, 그 옆에 이름 불변성(name-invariance) 수치를 함께 보고해야 한다. 논문이 제안하는 실용적 후보는 중립 선택지 이름 대비 뒤집힘률이다. 라벨이 필요 없고 항목당 순전파 두 번만 추가로 들며, 이 체크포인트들에서 정확도 지표가 전혀 드러내지 못한 76.92%의 불안정성을 즉시 드러냈을 것이다. 완화책은 두 가지가 직접 따라온다. 의미를 루브릭에 싣고 선택지 식별자는 중립적으로 쓰면 이 데이터에서 불안정성이 76.92% 대신 6.50%가 된다. 또는 학습 시 선택지 이름을 무작위화해 결정을 루브릭에 묶는 방법이 있는데, 이 규모의 헤드에서는 비용이 저렴하다. 다만 저자들은 이 완화책들을 실제로 평가하지는 않았다고 밝힌다.
한계도 분명히 적혀 있다. 감사 대상은 영어권 인코더 체크포인트 두 개(리드아웃 기하당 하나)이며, 희석 설명이 다른 아키텍처로 정량적으로 전이되는지는 검증되지 않았다. 세 번째 계열인 호스팅 모델은 네트워크 너머의 블랙박스로, 반환 분포만 관찰할 수 있고 결정적이지 않으며 같은 이름으로 서빙되는 모델이 바뀔 수 있다. 재라벨링마다 의미 보존 정도가 다르기 때문에 술어별 평균 대신 최솟값을 보고했고, 의미 보존에 대한 사람 주석이 다음 단계로 남는다. 극성과 학습 어휘 친숙도는 이 실험 조건들로 분리되지 않는다. 다지선다 결과는 배포 정확도가 .5637인 풀에 기대고 있어 방향성 지지로만 취급한다. 저자들이 밝히는 결론은 한 문장으로 요약된다. 타입 안전은 형태를 보장하고, 그 보장은 결정을 뒤집는 섭동 아래에서도 성립한다. 타입 안전하지만 오류가 없다는 뜻은 아니다.