[분석] Structured Output를 강제했더니 추론이 무너지는 구간
JSON 스키마 강제(constrained decoding)는 파서 깨짐을 0으로 만들지만, 모델이 토큰을 문법 제약 안으로만 샘플링하게 묶는다. 그 결과 자유 형식에서 먼저 풀어쓰던 중간 추론이 사라지고, 분류·수치 추출 같은 판단형 작업에서 정확도가 눈에 띄게 떨어지는 사례가 보고된다. 원인은 구조다. 스키마가 답 필드를 앞에 두면 모델은 생각하기 전에 답부터 커밋하게 된다. 회피책은 스키마 안에 reasoning 필드를 답 필드보다 먼저 배치해 constrained decoding 안에서도 사고 순서를 보존하거나, 추론 단계는 자유 텍스트로 받고 마지막 한 번만 구조화 호출로 분리하는 2단 패턴이다. OpenAI strict 모드가 minItems/maxItems류를 거부하는 것처럼, '강제'가 표현력을 좁히는 비용은 늘 따라온다.
실무에선 '깨지지 않는 JSON'을 얻으려고 스키마를 조였다가 분류 정확도가 떨어진 걸 못 보고 넘기기 쉽다. reasoning을 답보다 앞 필드로 두는 한 줄이 정확도를 되돌린다.
원문 출처
OpenAI — Structured Outputs Guide