필요한 정보 모아보기
테크

Jev API 키 없이 로컬 실행 - NanoJev-MLX 직접 테스트해보니

#Jev#NanoJev#MLX#TypeSafe#온디바이스AI

TypeSafe AI의 판단 전용 모델 'Jev'는 지금까지 회사가 제공하는 API로만 쓸 수 있었다. 그런데 한 개발자 커뮤니티가 이 모델의 인터페이스를 그대로 재구현해 오픈소스로 공개했고, 아이폰 AI 에이전트 앱 'Chatlo'는 최신 업데이트(v1.5)에서 이를 실제로 탑재해 인터넷 연결이나 API 키 없이 기기 안에서 로컬로 돌아가게 만들었다. 원본 모델을 그대로 가져온 게 아니라 Qwen3-0.6B를 바탕으로 같은 입출력 방식을 따라 하도록 따로 학습시킨 재구현 모델이라, 실제로 실무에 쓸 만한지는 직접 돌려봐야 알 수 있는 부분이었다.

Jev는 문장을 생성하는 대신 미리 정해진 선택지 중 하나를 확률과 함께 골라주는 '판단 전용' 모델이다(자세한 구조는 이전 글 참고). 이번에 나온 오픈소스 버전은 두 겹으로 이루어져 있다. 밑바탕은 C-Tianyu(TianyuCodings)가 공개한 'NanoJev'로, Qwen3-0.6B를 기반으로 Jev와 같은 입출력 방식을 재현하도록 학습시킨 6억 파라미터짜리 모델이다. 그 위에 chenyangcun이라는 개발자가 애플 실리콘에 맞춰 최적화한 게 'NanoJev-MLX'이고, Chatlo가 쓰는 게 바로 이 버전이다.

실제로 설치해서 돌려봤다

M4 맥미니(16GB)에 직접 설치해봤다. 과정은 이렇다.

  1. Python 3.11 가상환경을 만들고 mlx, mlx-lm 등 의존성을 설치한다.
  2. Hugging Face에서 원본 체크포인트를 내려받는다 — 여기서 주의할 점이 하나 있는데, 공식 가이드에 나온 allow_patterns 옵션 없이 그냥 받으면 학습 로그와 실험 기록까지 전부 딸려와서 용량이 15GB를 훌쩍 넘는다. 실제로 필요한 추론용 파일(가중치, 토크나이저, config)만 받으면 2.4GB 정도다.
  3. MLX의 8비트 양자화를 돌린다 — 실행해보니 2274.6MB였던 백본이 1071.9MB로 줄었다(52.9% 감소). 문서에 적힌 "2.27GB→1.06GB"와 거의 정확히 일치했다.
  4. 로컬 서버를 띄우고 TypeSafe의 공식 API 형식 그대로(POST /v1/systemone) 요청을 보내본다.

응답 속도는 기대 이상이었다. 첫 요청은 모델을 메모리에 올리느라 1.7초가 걸렸지만, 그다음부터는 요청당 60~80ms 안팎으로 안정적이었다 — 프로젝트가 자체적으로 공개한 "약 230ms" 수치보다도 빨랐다(다만 이건 신경망 처리 가속장치인 뉴럴 엔진 전용 경로가 아니라 GPU 경로만 켜고 잰 결과다 - 뉴럴 엔진용 별도 모델은 이번 테스트에 포함하지 않았다).

문제는 정확도 쪽에서 나왔다. "OAuth 콜백 코드의 토큰 유출 여부를 검토하라"는 보안 리뷰성 요청과 "README 오타를 고쳐달라"는 단순 요청을 각각 던져봤는데, 두 요청에 대한 확률 분포가 거의 똑같았고(신뢰도 0.06 안팎) 어느 쪽도 확신 있게 답하지 못했다. 원인은 단정하기 어렵다. 원본 NanoJev의 성능 검증은 미로찾기, 스네이크 게임, 슈팅 게임(ViZDoom) 같은 단순화된 의사결정 과제를 기준으로 이뤄졌고, MLX 버전 README는 자체 '실제 세션 벤치마크' 24건을 모두 맞혔다고 적고 있다. 적어도 이번에 던진 두 요청에서는 신뢰도가 낮게 나왔다는 것까지가 확인된 사실이다.

실무에 붙이기 전에 봐야 할 것

속도만 보면 매력적이다. API 키도, 네트워크도 필요 없이 로컬에서 60ms대로 판단을 내려준다는 건 에이전트 파이프라인의 "이 작업 위험한가?" 같은 간단한 게이트 용도로는 충분히 매력적인 조건이다. 다만 이번에 확인한 것처럼 실제 코딩 작업 맥락에서의 판단 정확도는 검증되지 않은 상태로 남아 있다 — 저장소가 자체 공개한 "정확도 100%" 같은 벤치마크 수치도 제3자가 독립적으로 검증한 게 아니라 제작자 본인이 만든 테스트셋 기준이라는 점은 감안해야 한다.

라이선스도 한 겹이 아니다. NanoJev-MLX의 포팅 코드는 Apache-2.0이지만, 그 밑에 있는 NanoJev 원본은 MIT 라이선스이고, 다시 그 밑에는 Qwen3-0.6B 자체의 라이선스 조건이 깔려 있다. 세 겹을 다 확인하지 않고 그냥 가져다 쓰면 나중에 배포 단계에서 걸릴 수 있다.

당장 프로덕션에 붙이기보다는, 정말 단순한 이진 판단(예/아니오 수준)에 한정해서 먼저 테스트해보고 확신이 생기면 범위를 넓히는 쪽을 권한다. TypeSafe 쪽에서 정식 로컬 배포 옵션을 내놓을지는 아직 알려진 바가 없다.

출처 github.comhuggingface.coapps.apple.comtypesafe.ai

내용이 틀렸나요? 정정 요청

관련 글