제약적 디코딩을 통한 커스텀 의사결정 모델 구축
의사결정 모델 vs. 생성형 LLM
흔히 "시스템 1" 모델이라고 불리는 의사결정 모델은 LLM 패러다임을 개방형 텍스트 생성에서 단일 패스 분류로 전환합니다. 표준 LLM은 구조화된 응답을 생성하기 위해 여러 번의 추론 패스가 필요하지만(예: 간단한 JSON 객체를 출력하는 데 11번의 패스), 의사결정 모델은 출력 어휘를 미리 정의된 고정된 옵션 세트로 제한합니다. 어휘 내의 다른 모든 토큰을 마스킹함으로써 모델은 단일 패스로 최종 답변을 출력할 수 있어 지연 시간과 컴퓨팅 비용을 크게 줄일 수 있습니다.
제약적 디코딩을 이용한 의사결정 모델 구현
의사결정 모델 구축은 모델의 출력 토큰을 특정 옵션 식별자 세트(예: "A", "B", "C", "D", "E")로 제한함으로써 달성할 수 있습니다. Qwen/Qwen3-1.7B와 같은 모델을 사용할 경우, 프로세스는 다음과 같습니다:
- 토큰 식별: 각 허용된 옵션에 대한 토큰 ID를 식별합니다.
- 프롬프트 형식 지정: 질문과 옵션을 명확하게 제시하도록 프롬프트를 구성합니다.
- 로짓 마스킹: 순방향 패스의 마지막 단계에서 허용된 옵션 토큰에 대한 로짓만 추출합니다.
- 확률 분포: 이 필터링된 로짓에 소프트맥스 함수를 적용하여 각 옵션의 확률을 결정합니다.
CommonsenseQA 데이터셋을 대상으로 테스트한 결과, 기본 1.7B 모델은 59.38%의 정확도를 달성했으며, 타겟 미세 조정 과정을 거친 후 62.41%로 향상되었습니다.
모델 보정의 과제
LLM의 원시 출력 확률은 종종 답변이 정답일 실제 확률보다는 다음 토큰에 대한 모델의 확신을 반영합니다. 이는 모델이 70%의 확률로만 정답인 답변에 99%의 확률을 할당할 수 있는 과신 현상으로 이어집니다.
보정을 위한 온도 스케일링
모델의 확신 점수를 실제 정확도와 일치시키기 위해 온도 스케일링을 사용할 수 있습니다. 온도 매개변수($T$)를 조정함으로써 출력 확률 분포를 평탄화합니다.
- 미보정 ($T=1.0$): 모델이 높은 확신(예: 94.3%)을 보일 수 있지만 예상 보정 오차가 높습니다.
- 보정됨 ($T=2.2$ 이상): 온도를 높임으로써 분포가 모델의 실제 정확도에 근접하도록 스케일링되어 예상 보정 오차를 줄입니다(예: 20.1%에서 2.9%로 감소).
커뮤니티 관점 및 기술적 비평
"의사결정 모델"의 등장은 이것이 근본적인 아키텍처 변화인지, 아니면 기존 분류기의 리브랜딩인지에 대해 머신러닝 엔지니어들 사이에서 논쟁을 불러일으켰습니다.
분류기 vs. 의사결정 모델
일부 실무자들은 의사결정 모델이 단순히 LLM이 수년간 보유해 온 기능인 제로샷 분류기일 뿐이라고 주장합니다. 한 댓글 작성자는 다음과 같이 언급했습니다:
"그래서 '의사결정 모델'이 분류기를 부르는 새로운 멋진 용어인가요? 아시다시피, 그건 수십 년 전부터 이미 존재하던 것이죠" — @handle
다른 이들은 가치가 행동 공간의 축소에 있다고 제안합니다. 튜링 완전 출력(예: 코드)에서 객관식 선택으로 이동함으로써 도구 호출과 신뢰성을 단순화한다는 것입니다.
구현 대안
제공된 구현은 transformers와 PyTorch를 사용하지만, 커뮤니티 구성원들은 로컬 또는 브라우저 기반 실행을 위해 200ms 미만의 응답 시간을 목표로 하는 Jeffy나 Laya와 같은 더 가벼운 대안을 강조했습니다.
"P-해킹" 논쟁
사후에 특정 벤치마크에 모델을 맞추기 위해 온도 스케일링을 사용하는 것에 대해서는 기술적인 회의론이 존재합니다. 일부 사용자들은 이러한 접근 방식이 "허용"되는 것인지, 아니면 "p-해킹"과 유사한지 의문을 제기하며, 보정이 특정 데이터셋의 결과에 맞춰지기보다는 더 일반화되어야 한다고 제안했습니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch