개발자 Nish Tahir가 자신의 블로그에 LLM을 활용해 객관식 문제를 한 번의 추론 패스만으로 빠르게 풀어내는 ‘결정 모델(decision model)’ 구축 방법을 공개했다. 이는 JSON 같은 구조화된 출력을 받기 위해 토큰을 하나씩 여러 번 생성해야 하는 기존 방식과 달리, 출력 가능한 토큰 자체를 A, B, C, D, E 같은 선택지로 제한해 단 한 번의 추론으로 답을 뽑아내는 접근이다. 속도와 효율성 측면에서 실용적인 아이디어지만, 동시에 모델이 내놓는 확신도(confidence)가 실제 정답률과 얼마나 어긋나는지를 보여주는 흥미로운 실험 결과도 함께 담고 있어 눈여겨볼 만하다.
구조화된 출력과 결정 모델의 차이
일반적으로 언어 모델에서 JSON 같은 정형 데이터를 받으려면 Structured Output 기법으로 출력 형식을 제약한다. 하지만 이 방식은 여전히 토큰을 하나씩 순차적으로 생성해야 한다. 글쓴이가 든 예시에서는 최종 출력을 만드는 데 11번의 추론 패스가 필요했다. 입력을 처리하는 프리필(prefill) 단계는 한 번에 끝나지만, 출력 토큰 하나하나는 이전 토큰에 의존해 순차 생성되기 때문이다.
반면 Jev와 같은 결정 모델은 애초에 선택지가 고정되어 있다는 가정에서 출발한다. 어휘 사전(vocabulary)에서 A, B, C, D, E를 제외한 나머지 토큰을 모두 마스킹해버리면, 모델은 그 다섯 개 토큰 중 하나만 출력할 수 있다. 이 중 확률이 가장 높은 토큰을 고르면 그것이 곧 답이 된다. 객관식 문제처럼 선택지가 명확한 작업이라면 긴 생성 과정을 거치지 않고 단 한 번의 패스로 답을 얻을 수 있는 셈이다.
Qwen3-1.7B로 실험한 결과
글쓴이는 이 구조를 직접 구현하기 위해 Qwen/Qwen3-1.7B 모델을 사용해 토큰 출력을 제약하는 실험을 진행했다. 간단한 질문으로 테스트한 결과 모델은 입력 맥락을 이해하고 합리적인 답을 골라냈다. 이어서 CommonsenseQA 데이터셋에서 무작위로 추출한 홀드아웃 샘플로 정확도를 측정했는데, 1.7B급의 비교적 작은 모델치고는 준수한 성능을 보였다고 밝혔다. 해당 데이터셋으로 간단히 파인튜닝을 거치자 정확도가 소폭 더 개선됐다.
모델이 과신하는 문제, 캘리브레이션은 왜 필요한가
결정 모델의 핵심 매력 중 하나는 선택된 토큰의 확률 값을 일종의 ‘확신도(confidence score)’처럼 해석할 수 있다는 점이다. 하지만 글쓴이는 이 확률이 실제로는 정답일 확률이 아니라 다음 토큰이 무엇일지에 대한 모델의 확신을 반영할 뿐이라고 지적한다. 추가적인 학습 없이는 이 둘이 일치한다는 보장이 없다는 것이다.
이를 검증하기 위해 글쓴이는 답이 명확하지 않은 매우 모호한 문제를 모델에 던져봤다. 정답이 없다시피 한 상황인데도 모델은 특정 선택지에 극도로 높은 확신도를 부여했다. 앞서 측정한 평가 데이터를 확신도 구간별로 나눠보니 이 문제가 더 분명하게 드러났다.
- 확신도 0.9~1.0 구간: 모델이 이 정도로 강하게 확신했음에도 실제 정답률은 약 70%에 그쳤다.
- 확신도 0.8~0.9 구간: 정답률은 오히려 약 40%까지 떨어졌다.
즉 모델이 내뱉는 확신도 숫자와 실제 정확도 사이에 괴리가 크다는 뜻이며, 이는 모델이 캘리브레이션(calibration)되지 않았다는 것을 의미한다. 확신도 점수를 곧이곧대로 신뢰도로 쓰기엔 위험하다는 경고인 셈이다.
온도 스케일링으로 확신도 바로잡기
이 괴리를 줄이기 위해 글쓴이가 택한 방법은 온도 스케일링(temperature scaling)이다. 출력 확률 분포에 적용하는 온도 값을 조정하면 지나치게 뾰족한 분포를 평평하게 눌러서, 모델이 말하는 확신도를 실제 정확도 수준에 가깝게 맞출 수 있다. 커브 피팅을 통해 데이터에 맞는 온도 값을 찾은 결과 3.797280788421631이라는 값을 얻었고, 이를 적용하자 확신도와 정확도 사이의 괴리가 훨씬 줄어든 캘리브레이션 결과를 얻었다고 한다.
한국 개발자가 참고할 만한 지점
이 글은 거대 모델을 끌어와 복잡한 프롬프트 엔지니어링을 하는 대신, 상대적으로 작은 오픈소스 모델(1.7B급)과 토큰 마스킹만으로도 빠르고 저렴한 분류·선택형 추론 파이프라인을 만들 수 있음을 보여준다. 선택지가 고정된 분류 작업, 예를 들어 고객 문의 라우팅, 간단한 설문 응답 분류, 객관식 평가 자동 채점 같은 업무에 응용하면 LLM API 호출 비용과 지연 시간을 크게 줄일 수 있는 접근이다.
다만 모델이 내놓는 확률 값을 그대로 신뢰도로 쓰려는 경우라면 반드시 캘리브레이션 과정을 거쳐야 한다는 점을 함께 기억해야 한다. 특히 자동화된 의사결정에 확신도 임계값을 적용해 사람 검수를 분기하는 식의 시스템을 설계한다면, 보정되지 않은 확신도는 실제보다 과도하게 낙관적인 판단을 내리게 할 수 있다. 글쓴이는 데이터셋 구축, 평가, 파인튜닝, 캘리브레이션 전 과정을 따라해볼 수 있는 스크립트를 담은 깃허브 저장소도 함께 공개했으며, 더 큰 모델로 직접 실험해보길 권하고 있다.

답글 남기기