TL;DR

  • Nanojev는 블랙박스 프로빙으로 추정한 TypeSafe의 폐쇄형 System One 의사결정 모델을 약 200줄로 재구성한 최소 동작 버전임.
  • 상태를 한 번 인코딩하고 질문별 캐시 복사본을 사용하는 구조로, 생성 텍스트 대신 예/아니오·선택·순서형 점수의 확률을 출력함.
  • Qwen3.5-4B-Base, LoRA, 포인터 헤드를 사용하며, 옵션 목록 뒤의 <decide> 토큰으로 모든 옵션의 </opt> 토큰을 점수화함.
  • 6,191개 학습 요청1,000개 평가 요청으로 학습한 결과, 두 번째 에포크에서 정확도 0.907을 기록하고 온도 보정으로 ECE 0.022를 달성함.
  • 한 상태에 대한 20개 질문은 포크 방식에서 160ms, 행 단위 처리에서 1.9초가 걸리며, 형제 질문의 비밀은 보이지 않고 상태에 심은 비밀은 발견됨.

Nanojev

  • nanojev는 TypeSafe의 폐쇄형 System One 의사결정 모델인 Jev를 가상으로 재구성한 프로젝트임.
  • Archer Hume의 *Jev's Architecture Unmasked*와 Jared Palmerkev에서 영감을 받았으며, 블랙박스 프로빙이 시사하는 동작의 가장 작은 작동 버전을 지향함.
  • 상태를 읽고 유형이 지정된 질문에 답하며, 생성 텍스트가 아니라 확률을 출력함.
  • 예/아니오
  • 하나 선택
  • 순서형 점수
  • 디코딩 루프를 사용하지 않으며, 포인터 헤드가 은닉 상태(hidden states)에서 옵션 확률을 읽음.
  • 상태는 한 번 인코딩하고, 각 질문은 캐시의 복사본에서 이어지므로 서로의 형제 질문을 볼 수 없음.
  • 옵션 목록 뒤의 <decide> 토큰이 각 옵션의 </opt> 토큰을 점수화하는 리스트 단위(listwise) 옵션 구조임.
  • 학습된 보정(calibration)을 사용하며, 라벨이 지정된 결과에 대한 교차 엔트로피와 하나의 피팅된 온도를 결합함.
  • 신뢰도는 해당 확률 분포에 대한 산술 연산으로 계산됨.

파일

  • nanojev.py: 인코딩, Qwen3.5-4B-BaseLoRA 및 포인터 헤드, 추론, 답변 기능을 포함함.
  • nanojev_train.py: 학습, 평가, 온도 피팅을 수행함.
  • nanojev_serve.py: POST /v1/systemone 서버를 제공함.
  • data/: 55개 도메인에 걸친 에이전트 작성·감사 데이터로, 학습 요청 6,191개와 평가 요청 1,000개로 구성됨.

실행

  • 의존성 설치는 pip install -r requirements.txt로 수행함.
  • 학습은 python nanojev_train.py로 실행하며, RTX 5090에서 약 12분이 소요됨.
  • 요청 처리는 python nanojev.py request.json으로 수행함.
  • 서버는 python nanojev_serve.py 8009로 실행함.

결과

  • 평가 질문은 2,344개이며, 학습에 포함되지 않은 도메인은 5개임.
  • 첫 번째 에포크의 지표는 정확도 0.895, 음의 로그 가능도(NLL) 0.257, 기대 보정 오차(ECE) 0.013임.
  • 두 번째 에포크의 지표는 정확도 0.907, NLL 0.333, ECE 0.054임.
  • 온도 T=1.97을 적용하면 정확도는 0.907로 유지되고, NLL은 0.246, ECE는 0.022가 됨.
  • 학습에 포함되지 않은 도메인에서는 정확도 0.910, ECE 0.028임.
  • 질문 유형별 결과는 noul 0.956, choice 0.933, score 0.787임.
  • 두 번째 에포크는 정확도를 높이지만 과도한 확신도 함께 높이며, 온도 보정은 답변을 바꾸지 않고 과도한 확신을 복구함.
  • 하나의 상태에 대한 질문 20개 처리 시간은 포크 방식에서 160ms, 행 단위 처리에서 1.9초임.
  • 형제 질문에 비밀을 심으면 해당 비밀은 보이지 않으며 확률은 0.001임.
  • 상태 자체에 비밀을 심으면 발견되며 확률은 0.999임.
  • 에세이의 레퍼런스 카드 테스트는 카드가 마지막 옵션일 때 실패함.