Reverse-engineered Jev-like model
Jev 스타일 모델을 독립적으로 재구현한 오픈소스 스타터 — jevlike
TypeSafe가 설계를 공개하지 않은 상용 모델 Jev와 동일한 입출력 형태를 갖는 독립 구현 스타터 jevlike가 공개되었습니다. 텍스트와 N개의 옵션 목록을 받아 한 번의 패스로 각 옵션의 확률을 반환하는 방식으로, 합성 데이터에서 약 98%의 정확도와 자기회귀 디코딩 대비 약 100배 빠른 속도를 보고했습니다.
- 주제
본문
TypeSafe의 상용 모델 Jev는 텍스트와 함께 계속 바뀌는 텍스트 옵션 목록을 입력받아 각 옵션에 대한 확률을 반환하는 모델이지만, 그 설계는 공개된 적이 없습니다. vinnylarouge가 공개한 jevlike는 Jev를 복제한 것이 아니라 동일한 입출력 형태를 갖는 독립적인 스타터 모델로, 답을 단어 단위로 생성하는 대신 한 번의 패스로 모든 옵션을 채점합니다.
동작 방식과 인코더
각 옵션은 텍스트를 표현하는 짧은 수치 목록인 쿼리 벡터가 됩니다. 이 쿼리가 컨텍스트 토큰들에 어텐션 가중치를 부여해 옵션별 컨텍스트 벡터를 만들고, 공유된 내적(dot product)이 옵션-컨텍스트 쌍을 하나의 점수로 바꾼 뒤, 옵션들 전체에 softmax를 적용해 합이 1인 확률로 변환합니다. 기본 인코더는 바이트 임베딩을 처음부터 학습하며 컨텍스트는 192바이트, 옵션은 32바이트로 잘라내고 --context-tokens와 --option-tokens로 늘릴 수 있습니다. 선택적으로 Hugging Face의 사전학습 인코더를 가중치를 고정한 채 사용하는 경로도 제공되며, 예시로 Qwen2.5-0.5B가 제시됩니다. 체크포인트는 채점 헤드와 인코더 이름만 저장하고 고정된 인코더 가중치는 복사하지 않으므로, 로드 시 동일한 Hugging Face 모델에 접근할 수 있어야 합니다.
학습과 평가 절차
학습 데이터는 한 줄에 하나의 JSON 객체를 두는 JSONL 형식으로, context 문자열과 options 배열, 정답의 0 기반 인덱스인 label로 구성되며 행마다 옵션 수가 달라도 되고 최소 두 개입니다. uv로 환경을 만든 뒤 jevlike-data synthetic으로 합성 데이터를 생성하고, jevlike-train으로 학습, jevlike-eval로 평가, jevlike-predict로 새 메뉴를 채점하는 CLI 흐름을 제공합니다. 평가는 top-1 정확도, top-3 정확도, 신뢰도와 실제 정확도를 비교하는 expected calibration error, 그리고 각 메뉴를 엉뚱한 컨텍스트와 짝지은 shuffled-context 통제 조건을 출력하며, 유용한 모델이라면 이 통제 조건을 능가해야 합니다. 관련 레코드는 같은 split에 묶어 준중복이 테스트 세트로 새지 않게 하라는 데이터 지침도 함께 제시됩니다. CPU, Apple MPS, CUDA를 --device로 지원합니다.
비전 채점과 Doom·체스 예시
같은 옵션-어텐션 헤드로 이미지 패치에서 컨트롤러 버튼을 채점할 수도 있습니다. 공개된 10초 필름은 Doom의 deadly_corridor 전투 장면에서 7개 버튼을 고르는 구간과, 5개 키로 체스 수를 두는 구간을 이어 붙인 것이며 각 결정에 쓰인 텐서를 도식으로 보여줍니다. Doom 구간의 공동 체크포인트는 기록된 10개 에피소드에서 평균 0.60킬, -97.50 보상이었고, 체스 전용 체크포인트는 무작위 무버 상대 50게임에서 4승 46무 0패, Stockfish 레벨 0 상대로는 0승 2무 48패였습니다. 저자는 이 구간들이 활동성을 기준으로 고른 것이며 일반적인 플레이나 능력 주장이 아니라고 명시했습니다. 두 게임 모두 jevlike.vision의 비전 채점기를 가져다 쓰며 모델 사본은 하나뿐이고, Doom·체스 단일 게임 체크포인트와 공유 12옵션 체크포인트가 릴리스에 포함됩니다.
실험 수치와 한계
스타터를 만들기까지의 실험에서 원패스 채점기는 합성 메뉴에서 약 98% 정확도를 냈습니다. 타깃이 겹치지 않게 분리한 Wikispeedia 다음 클릭 예측 데이터에서는 고정된 Qwen2.5-0.5B 인코더와 채점기 조합이 26%를 기록해 셔플 및 무작위 인코더 통제 조건의 약 8%를 상회했고, 4만 건의 클릭으로 처음부터 학습한 작은 모델은 29%였습니다. 옵션이 8개일 때 원패스 방식은 400토큰을 생성해야 하는 소형 디코더보다 약 100배 빨랐습니다. 다만 저자는 이 수치들이 로컬 실험 결과일 뿐이며 Jev와 동등한 품질이나 TypeSafe의 비공개 학습법 재현을 보인 것이 아니라고 선을 긋습니다. 바이트 인코더는 저렴하지만 언어 의미에 약하고, 사전학습 경로는 큰 모델 다운로드와 메모리가 필요하며, 원패스 채점은 예측 전에 전체 옵션 목록이 있어야 한다는 한계도 열거됩니다. 코드는 MIT 라이선스입니다.
Hacker News 반응
- @rochansinha — Doom도 플레이할 수 있습니다 - (저자의 X 게시물 링크)
- @steeve — "그들은 2년간 스텔스로 만들었고, 나는 2시간 스텔스로 만들었습니다… 타입 세이프가 필요한 JSON 워크로드용으로 온디바이스 추론이 5배 빠른 Qwen-2.5-1B-RLCD를 기꺼이 오픈소스로 공개합니다"라는 X 게시물을 공유했습니다.
- @flockonus — OSS가 대단하다는 점에는 의문의 여지가 없지만, 이 영상은 기껏해야 풍자입니다. 오른쪽과 왼쪽 결과가 뚜렷이 다르다는 건 조금만 주의하면 알 수 있습니다. Jev가 '똑똑'하지 않다면 흥미롭지 않고, 1B 파라미터 모델은 분명 똑똑하지 않습니다.
- @tomrod — 마음에 듭니다! Jev는 내부에 더 많은 것이 있을 거라 생각하지만, 효율적인 범용 트랜스포머라는 아이디어가 좋습니다.
원문: Hacker News / 번역·요약: Trawling