최근 Jev를 시작으로 생성하지 않고 판단만 수행하는 Decision Model이 주목받고 있다.
결론부터 말하면, 바닥부터 새로 배워야 할 신기술이 등장한 것은 아니니 안심해도 좋다.
Jev는 비공개 모델이라 내부 구조를 정확히 알 수 없다.
대신 Jev 이후 비슷한 접근을 공개 가중치로 구현한 오픈 프로젝트가 여럿 나왔다.
그중 성격이 뚜렷하게 다른 두 가지가 다음과 같다.
- OpenJev: 27B Decoder LLM 기반. Jev와 호환되는 Decision API를 목표로 함
- Laya: 421M ModernBERT 기반. 작고 빠른 경량 Decision Model
이 글에서는 이 두 모델을 기준으로 Decision Model을 설명한다.
핵심은 LLM이 긴 자연어 응답을 생성하는 대신, 주어진 후보별 점수를 계산해 바로 의사결정에 사용한다는 점이다.
- ChatGPT나 Claude에서 추론(Reasoning) 모드를 끄면 긴 사고 과정을 생략하고 바로 텍스트를 생성한다.
- Decision Model은 여기서 한 단계 더 나아가 이어 말하기(Decode) 자체를 없앤다.
- 대신 입력을 읽는 단계(Prefill 또는 Encoding)의 결과만으로 객관식 문제처럼 정해진 후보 중 하나를 고른다.
1. 생성하지 않는 LLM
- 일반 LLM:
Prefill → Decode → Decode → ... - Decision Model:
Prefill → Decision - 자연어 대신 후보별 Probability 반환
일반적인 Decoder LLM은 Prompt 전체를 처리하는 Prefill 이후, Autoregressive Decode를 반복하며 Token을 생성한다.
하지만 분류, Routing, Tool Selection처럼 최종적으로 선택지만 고르면 되는 문제라면 굳이 Token을 여러 개 생성할 필요가 없다.
일반 LLM
Prompt
↓
Prefill
↓
Token
↓
Decode
↓
Token
↓
Decode ...
Decision Model은 다음과 같이 생각할 수 있다.
Context + Candidates
↓
Prefill
↓
Decision Readout
↓
A 0.82 / B 0.13 / C 0.05
2. 동작 방식
- Decoder LLM은 Prefill만으로도 다음 Token의 Logit을 계산
- Candidate Token의 Logit만 가져오면 분류 가능
- Multiple Choice 평가에서 흔히 사용하던 방식
사실 Decoder LLM은 Prefill이 끝난 시점에 이미 다음 Token의 Logit을 가지고 있다.
4지선다 문제라면 다음과 같이 사용할 수 있다.
outputs = model(**inputs)
logits = outputs.logits[:, -1]
choice_logits = logits[:, [
token_A,
token_B,
token_C,
token_D,
]]
probs = softmax(choice_logits)
결과는 바로 Decision Probability가 된다.
A 0.02
B 0.91
C 0.04
D 0.03
OpenJev와 Laya가 추가한 것
두 모델은 같은 목표를 서로 다른 구조로 달성한다.
OpenJev: Decoder Logit을 Decision에 맞게 다듬음
- 선택지를 입력 시점에 동적으로 제공
- 각 선택지를 후보 토큰으로 변환
- 첫 출력 위치에서 후보별 Logit 계산
- Calibration을 적용해 Probability 반환
- 선택지 순서가 바뀌어도 일관되게 판단하도록 Fine-tuning
Context + Question + Candidates
↓
OpenJev
↓
Candidate Logits
↓
Calibration
↓
Probabilities
Laya: Encoder로 후보를 직접 점수화
- ModernBERT는 다음 토큰을 예측하지 않는 Encoder 모델
- 따라서 Logit을 읽는 대신 Context와 후보를 함께 인코딩해 점수를 계산하는 방식으로 보임 (미확인, 구조 기반 추정)
- 모델이 작아 Router, Guardrail처럼 호출 빈도가 높은 위치에 적합
Context + Candidate_i
↓
ModernBERT Encoder
↓
Scoring Head
↓
Probabilities
방식은 달라도 결과는 같다. 별도의 자연어 답변 없이 한 번의 Forward Pass로 각 후보의 확률을 얻는다.
따라서 하나의 모델로 서로 다른 형태의 Decision을 처리할 수 있다.
예시
Sentiment
[positive, neutral, negative]
Agent Routing
[search, coding, reasoning]
Customer Support
[billing, shipping, technical]
3. 어디에 사용하는가
- Classification
- Routing
- Agent Tool Selection
- Ranking
- Guardrail
- Human Review 판단
예를 들어 Agent가 모든 요청에 비싼 LLM을 호출하는 대신 먼저 Decision Model을 사용할 수 있다.
사용자 요청
↓
Decision Model
↓
simple 0.81 → 작은 모델
reasoning 0.14 → 큰 모델
search 0.05 → Search Agent
또 Confidence가 낮을 때만 큰 모델이나 사람에게 넘기는 구조 역시 합리적이다.
confidence >= 0.9
→ 자동 처리
confidence < 0.9
→ LLM / Human Review
이런 구조에서는 자연어 생성보다 빠르고 잘 보정된 확률이 중요하다.
특히 작은 모델을 Router, Guardrail, Classifier, Tool Selector로 사용하는 경우 Decision Model로 대체하기 좋다.
4. 직접 사용해보기
Laya
Laya는 Jev처럼 후보 중 하나를 고르는 Decision Model을 421M 규모의 경량 모델로 구현한 오픈소스 프로젝트다.
- 421M 파라미터, ModernBERT 기반
- 라이선스는 Apache 2.0이라 상업적 사용 가능
- 작은 크기 덕분에 CPU나 소형 GPU에서도 Router, Classifier로 배치하기 쉬움 (미확인, 규모 기준 추정)
동작 구조는 2장에서 설명한 대로, Context와 각 후보를 함께 인코딩해 점수를 계산하는 방식이다.
5. Jev vs Laya
Jev가 Decision Model이라는 개념을 주목받게 만들었지만, 사실 이전에 만들어진 더 작은 오픈소스 모델이 있다.
| 항목 | Jev | Laya |
|---|---|---|
| 규모 | 비공개 | 421M |
| 구조 | Decoder 기반으로 추정 (OpenJev 기준) | ModernBERT(Encoder) 기반 |
| 판단 방식 | Prefill 후 후보 Logit 읽기 | 후보별 점수화 (미확인) |
| 배포 | TypeSafe 상용 API | Open Weight, 자체 호스팅 |
| 라이선스 | 상용 API | Apache 2.0 |
선택 기준은 다음과 같이 정리할 수 있다.
- Jev가 맞는 경우
- 판단에 긴 Context 이해나 일반 상식이 필요할 때
- 인프라 운영 없이 API로 바로 쓰고 싶을 때
- Laya가 맞는 경우
- 지연 시간과 비용이 가장 중요한 Router, Guardrail
- 데이터를 외부 API로 보낼 수 없는 환경
- 상업 서비스에 오픈 가중치를 넣어야 할 때
- 추가로 파인튜닝이 필요할 때
그 사이에는 OpenJev(27B, 비상업), Kev(0.8B~27B, Apache 2.0), CLM-8B(Contrastive Learning 기반, Apache 2.0) 같은 선택지도 있다.
참고자료
'개발 > 리뷰' 카테고리의 다른 글
| [리뷰] 실력 없음. 감각 없음. (No Skill. No Taste.) (1) | 2026.02.23 |
|---|---|
| [리뷰] DeepSeek이 바꿔버린 모든 것: MoE와 RLVR, 2025년 AI 회고 (0) | 2026.02.19 |