텍스트 생성 없이 확률만 뽑는 결정 모델, 오픈소스로 33ms에 응답하다

Lobsters21일 전조회 2

오픈소스 연구자 한 명이 'RL Agent'라는 이름의 결정 전용 모델을 공개했다. 핵심은 자기회귀 방식이 아니라는 점이다. 문장을 만들어내지 않고, 정해진 JSON 스키마에 대해 확률값만 곧바로 계산해 낸다. 사람의 반사적 판단에 해당하는 'System 1'을 노린 설계로, 4억 2,100만 개 파라미터를 갖췄고 GPU에서 33~38ms 만에 답을 낸다.

출발점은 생성형 LLM을 단순 판단에 동원하는 관행에 대한 문제 제기다. 문의를 어느 부서로 보낼지, 메일이 피싱인지, 프롬프트가 탈옥 시도인지, 긴급도가 0~3 중 몇인지 정도를 정하려고 8B·70B급 모델을 부르는 건 과하다. 토큰이 흘러나오길 500ms에서 2,000ms까지 기다리고, 비용을 쓰고, 자유 형식 출력에서 라벨을 긁어내려 정규식이나 JSON 파서를 덧붙여야 한다. 게다가 LLM이 내놓는 'confidence: 0.95'는 확신 있어 보이는 토큰을 예측한 결과일 뿐 수학적 캘리브레이션이 없다.

RL Agent가 다루는 질문 유형은 세 가지다. `choice`는 후보 사전에서 하나를 고르며 선택 라벨과 후보별 확률, 신뢰도를 함께 돌려준다. 부서 라우팅이나 의도 분류에 맞다. `score`는 0, 1, 2, 3 같은 순서형 척도에 상태를 배치하고 기대 점수와 각 단계 확률을 낸다. 고객 불만이나 긴급도, 프롬프트 위험도 평가에 쓴다. `noul`은 참일 확률 P(true)를 0.0~1.0 사이 값으로 직접 답하는 불리언 질문으로, 피싱·스팸·탈옥·이탈 위험 탐지에 적합하다. 출력 공간이 확률과 숫자로만 닫혀 있어 텍스트 생성도, 환각도, 깨진 JSON도 구조적으로 나올 수 없다.

구조는 두 덩어리를 단단히 붙인 형태다. 3억 9,500만 파라미터의 ModernBERT-large를 인코더로 쓰는데, 28개 층에 히든 차원 1024, 어텐션 헤드 16개, GeGLU 중간층(차원 2624)을 갖추고 RoPE로 8,192 토큰까지 처리한다. 양방향이기 때문에 상태와 선택지의 모든 토큰이 서로를 동시에 참조한다. 그 위에 약 2,520만 파라미터의 결정 헤드 트랜스포머 2개 층(d=1024, 헤드 16, FFN 4096, Pre-LayerNorm, 드롭아웃 0.1)이 올라간다.

선택지마다 `[MASK]` 토큰을 하나씩 배치하고, 인코더와 결정 헤드를 통과한 뒤 torch.gather로 그 위치의 히든 상태만 뽑아내는 방식이 인상적이다. 약 105만 파라미터의 옵션 스코어러가 LayerNorm(1024) → Linear(1024→1024) → GELU → Linear(1024→1)를 거쳐 선택지당 스칼라 로짓 하나를 만들고, 같은 질문에 속한 선택지들에 소프트맥스를 적용해 확률 분포를 얻는다. 여기에는 질문 유형과 선택지 개수에 맞춰 적합시킨 온도값이 들어간다. 별도로 약 26만 파라미터의 Act/Escalate 헤드가 풀링된 [CLS] 벡터(1024)와 분포 통계 4개를 입력받아, 모델이 스스로 판단할지 사람에게 넘길지를 결정한다.

이 시도가 처음은 아니다. 작성자는 2025년 3월 arXiv에 논문(arXiv:2503.23303)을 올리고 PPO로 세일즈 대화의 턴별 전환 궤적(0.0~1.0 확률)을 예측하는 모델을 만들었다. 가중치는 Hugging Face에 sales-conversion-model-reinf-learning 이름으로, 데이터셋은 saas-sales-conversations로 공개했고 PyPI 패키지와 Reddit r/LocalLLaMA 공유도 진행했다. 2025년 9월에는 강화학습으로 스키마 기반 결정을 내리는 프레임워크를 정리한 두 번째 논문(arXiv:2510.01237)을 냈다. 다만 이때는 동결된 시퀀스 임베딩에 별도 PPO 밸류 네트워크를 얹은 구조라 종단간 학습이 아니었고, 실행 중에 새 질문을 받아들이지도 못했다.

그러던 중 2026년 9월, OpenAI에서 ChatGPT 공동 발명자로 알려진 Diogo Almeida가 세운 TypeSafe AI가 'Jev'를 내놓았다. 비자기회귀 결정이라는 개념 자체는 앞선 작업과 같았지만 기술 논문도, 공개 가중치도, 공개 학습 데이터셋도 없이 출시됐다. Jev는 병렬 샘플링을 RLCD(Reinforcement Learning for Calibrated Decisions)로 일반화해 신뢰도 분포와 스키마 선택을 가로 방향으로 처리하며, 입력 토큰 100만 개당 0.042달러에 응답 시간은 대략 150ms로 제시됐다.

실무 관점에서 이 이야기의 값어치는 지연 시간과 비용, 그리고 신뢰도의 성격에 있다. 라우팅·분류·위험 탐지처럼 정답 공간이 좁은 반사적 판단을 생성 모델에서 떼어내면 응답이 수백 밀리초에서 수십 밀리초로 줄고, 파서와 프롬프트 유지보수 부담도 사라진다. 확률이 캘리브레이션되어 있으면 임계값을 정해 사람에게 넘기는 정책을 세우기도 쉬워진다. 다만 33~38ms와 Jev 대비 4배 우위는 작성자가 자기 환경에서 측정해 주장한 수치이며, Jev의 실제 성능이나 내부 구현을 독립적으로 검증한 결과는 아니다. 또한 앞선 모델이 세일즈라는 세로 시장에 묶여 있었고 종단간 구조가 아니었다는 한계는 작성자 스스로 인정한 부분이다.

관련 글