TypeSafe의 Jev에 제대로 놀라기: 이거 LLM으로도 할 수 있지 않나요?

TMT

https://zenn.dev/nwn/articles/824026c76116e0

Jev란?

TypeSafe AI의 ‘Jev’는 문장을 생성하는 대신, 소프트웨어가 바로 활용할 수 있는 판단과 확률을 빠르게 반환하는 모델입니다.
자세한 설명은 공식 사이트를 참고해 주세요.

이를 보고 솔직히 ‘이건 기존 LLM으로도 할 수 있지 않나?’라는 생각이 들었습니다.

JSON 출력

먼저 눈길이 간 것은 이 데모입니다.
LLM으로 JSON을 출력할 때보다 Jev로 병렬 추론을 수행했을 때 속도가 크게 빨라졌다고 합니다.

LLM으로 재현하려면?

LLM으로 JSON을 출력할 때는 보통 {부터 키 이름, 값, 쉼표, }까지 토큰을 하나씩 자기회귀 방식으로 생성합니다.

하지만 이번처럼 출력할 후보가 미리 정해져 있다면, 반드시 JSON 전체를 생성할 필요는 없습니다.

예를 들어,

true
false

처럼 각 답변 후보를 단일 토큰에 대응시키고, 답변이 나올 위치에서 truefalse의 로짓(logit)만 확인하면 한 번의 순전파(forward pass)로 해당 질문에 대한 모델의 판단을 얻을 수 있습니다.

선택지가 여러 개일 때도 마찬가지입니다.

A: approve
B: reject
C: escalate

처럼 후보마다 짧은 ID를 부여하고 첫 번째 토큰의 로짓을 비교하면 됩니다. 최종 JSON은 모델이 문자열로 생성하게 하지 않고, 얻은 결과를 바탕으로 코드에서 조립합니다.

또 서로 독립적인 질문이 여러 개라면, 각각을 별도의 입력으로 묶어 배치 추론을 수행할 수 있습니다. 프롬프트에서 공통으로 쓰이는 부분이 길다면 KV 캐시를 재사용해 매번 동일한 접두부를 처음부터 계산하지 않아도 됩니다.

즉, 다음과 같이 구성할 수 있습니다.

공통 컨텍스트

   KV 캐시
   ↙  ↓  ↘
 Q1   Q2   Q3
 ↓    ↓    ↓
logit logit logit
   ↘  ↓  ↙
 코드에서 JSON으로 조립

이 방법을 쓰면 JSON을 끝까지 자기회귀 방식으로 생성할 때보다 출력 토큰 수에 비례해 늘어나는 대기 시간을 크게 줄일 수 있습니다.

검증

이 방법을 적용해 Gemma3 270M으로 병렬 추론 방식과 JSON 출력 방식을 비교했습니다.
프롬프트는 앞서 소개한 데모와 같은 출력이 나오도록 제가 적당히 추정해 작성했습니다.

결과는 다음과 같습니다.

이렇게 해서 JSON 출력 방식보다 속도를 77배 높일 수 있었습니다.
LLM과 비교하려면 이런 방식과 비교해야 공정하다고 할 수 있을 것입니다.

게임 플레이

DOOM

다음으로 눈길이 간 것은 Jev로 DOOM을 실시간 플레이하는 데모입니다.
여기서 중요한 점은 약 100ms라는 짧은 시간 안에 판단을 반환할 수 있어 실시간 제어에 활용할 수 있다는 것입니다.

다만 Jev는 이미지 입력을 지원하지 않으므로, 게임 상태를 구조화된 데이터로 변환하는 하네스를 거쳐 조작하는 것으로 보입니다.

마리오로 검증

마찬가지로 Jev로 마리오를 플레이하는 데모와 하네스도 있었습니다. 아마 제삼자가 검증한 사례인 듯합니다. 이쪽은 하네스가 공개되어 있어서 이를 이용해 Jev와 여러 LLM의 결과를 비교해 봤습니다.
우선 제 환경에서 실행한 Jev는 공개 데모만큼 게임을 잘하지 못했습니다.

공개 데모와 비교하면 제 환경에서는 지연 시간이 약 3배 길었습니다. 따라서 이런 지연 시간 차이가 플레이 결과에도 영향을 주었을 가능성이 있습니다.

한편, 같은 환경에서 LLM과 비교했을 때는 Jev가 가장 좋은 결과를 냈습니다.

Image

다만 이번에 비교할 수 있었던 LLM에는 제약이 있습니다.

앞 절에서 사용한 ‘첫 번째 토큰의 로짓을 확인하는’ 방법을 쓰려면 API를 통해 로짓이나 로그 확률(logprobs)을 가져올 수 있는 모델이 필요합니다. 현재 고성능 모델 중 상당수는 추론 모델인데, 이런 모델은 API에서 필요한 로짓을 가져올 수 없는 경우가 많아 이번 비교에서는 주로 이전 세대의 비추론 모델을 사용했습니다.

따라서 이번 결과만으로 ‘Jev가 최신 LLM보다 뛰어나다’고 단정할 수는 없습니다.

Jev의 강점은?

지금까지의 검증을 보면, Jev의 특징을 단순히 ‘기존 LLM으로는 할 수 없는 일을 해냈다’고 받아들이는 것은 조금 다른 이야기인 듯합니다.
그렇더라도 이처럼 확률을 출력하는 인터페이스를 API로 제공했다는 점에는 실용적인 가치가 있다고 할 수 있습니다.

지연 시간 측면에서도 최신 고속 비추론 모델은 약 100ms 수준에 진입하고 있습니다.
예를 들어 DeepSeek V4 Flash는 NVIDIA B300 한 대에서 첫 토큰이 나오기까지 걸리는 시간(TTFT)이 약 90ms로 측정된 결과가 있습니다.

LLM 자체의 추론 비용과 지연 시간도 빠르게 개선되고 있고, 아마 OpenAI나 Anthropic이 비슷한 인터페이스로 LLM API를 제공하기만 해도 이와 유사한 일을 할 수 있을 것입니다.
따라서 특정 용도에 특화함으로써 얻는 이점이 앞으로 얼마나 큰 가치를 지닐지는 아직 모르겠다는 것이 현재 제 생각입니다.

덧붙임

제가 놓친 부분을 지적해 주신 분이 있어, 해당 댓글을 인용해 내용을 덧붙입니다.

개발사에 따르면 기존 LLM은 프롬프트 안에서 선택지가 놓인 순서에 따른 편향(Position Bias), 토크나이저의 토큰 분할 방식, 모델의 과신(Overconfidence) 등에 큰 영향을 받아, 현실 세계의 확실성과 일치하는 ‘보정된 확률(Calibrated Probability)’을 내놓지 못한다고 합니다.
반면 Jev는 단순히 수치를 출력하는 데 그치지 않고, 그 수치가 확률론적·통계적으로 적절히 보정(Calibration)된 신뢰할 수 있는 추정량이라는 점이 큰 장점이라고 개발사는 주장합니다.

이와 관련해 ‘보정된 확률’이 필요한 용도나 LLM에 간단한 보정을 추가했을 때와의 비교 등은 앞으로 살펴볼 과제로 남겨 두겠습니다.

Edit this page

Search the archive

Find a page by title, or search the text inside one.