텍스트 생성 없이 확률만 뽑는 결정 모델, 오픈소스로 33ms에 응답하다
오픈소스 연구자 한 명이 '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의 실제 성능이나 내부 구현을 독립적으로 검증한 결과는 아니다. 또한 앞선 모델이 세일즈라는 세로 시장에 묶여 있었고 종단간 구조가 아니었다는 한계는 작성자 스스로 인정한 부분이다.
관련 글
- LLM 로그확률로 이미지까지 분류하는 Jev 스타일 래퍼 공개LLM이 내놓는 토큰 로그확률을 읽어 분류기처럼 활용하는 Jev 스타일 요청 형식이 공개됐다. 여기에 이미지 첨부 필드를 더해 웹캠 프레임을 실시간으로 판정하는 파이썬 예제까지 함께 올라왔으며, RTX 3090에서 초당 1프레임 수준의 처리량을 기록했다.
- AI가 포켓몬 레드를 플레이하며 결정과 확률을 보여주는 Show HN 프로젝트다Show HN에 AI가 포켓몬 레드를 플레이하는 'Jev Plays Pokémon Red'가 공개됐다. 화면 오른쪽 패널에서 매 결정과 각 선택의 확률을 실시간으로 보여주며, AI가 공략 가이드에 의존해 진행한다는 전제도 드러난다.
- 에이전트 라우팅에 70B 모델은 과하다는 Laya와 Jev 비공식 비교가 나왔다Convai Innovations가 공개한 421M 결정 모델 Laya와 TypeSafe의 상용 엔진 Jev를 비교한 비공식 평가가 나왔다. 속도와 캘리브레이션 수치가 공개됐지만, 통제된 대조 실험이 아니라는 전제가 붙는다.
- Jev에게 '다음 글자'만 물어 챗봇으로 만든 실험, jevchat 공개결정 모델 Jev에게 매 단계 다음 기호를 묻고 확률 분포에서 샘플링해 문장을 만들어내는 실험 도구 jevchat이 공개됐다. 여러 샘플링 전략과 알파벳, 빔 탐색을 지원하며 오프라인 테스트 158개를 갖췄지만 비용은 비현실적이고 결과는 재미를 위한 것이다.
- Jev와 Decitron은 둘 다 결정 AI지만 같은 게 아니다TypeSafe AI의 Jev는 지금 무엇을 고를지 즉시 판단하는 결정 AI다. Zhongke Wenge의 Decitron은 세계 모델과 다중 에이전트 시뮬레이션으로 미래 경로를 비교하는 결정 AI다. 둘 다 AI 출력을 텍스트에서 판단·행동으로 옮기려 하지만, 다루는 불확실성의 종류가 다르다.