# 답을 쓰기 전에 고릅니다, 브라우저 AI 실험

> SemIf는 같은 로컬 모델이 선택지 확률을 바로 읽는 방식과 JSON으로 쓰는 방식을 비교합니다. 빠르기와 판단의 정확도를 따로 봅니다.

- 출처 사이트: AI피셜 (https://aifficial.net/posts/semif-browser-choice-probabilities/)
- 발행: 2026-09-19
- 카테고리: AI 도구 · 태그: 온디바이스 AI, 추론, 오픈소스, 브라우저

## 핵심 답변

OpenJev라는 이름으로 소개된 독립 실험 SemIf는 브라우저에서 선택지 점수를 바로 읽는 방식과 JSON 생성 방식을 비교합니다. 두 방식은 같은 로컬 모델에서 순서대로 실행됩니다. 실행 시간은 기기에서 재며 사전 입력된 성능 수치를 보여 주는 구조가 아닙니다.

## 한 장 요약(만화)

![초록 후드의 AI 마스코트가 세 컷에서 브라우저 모델에 선택지를 주고, 점수 읽기와 JSON 생성을 비교한 뒤 상대 점수와 정답 확률의 차이를 설명합니다.](https://aifficial.net/images/posts/semif-browser-choice-probabilities/comic-v1.0.0.webp)

## 요약

- OpenJev라는 이름으로 소개된 독립 실험 SemIf는 브라우저에서 선택지 점수를 바로 읽는 방식과 JSON 생성 방식을 비교합니다.
- 두 방식은 같은 로컬 모델에서 순서대로 실행됩니다. 실행 시간은 기기에서 재며 사전 입력된 성능 수치를 보여 주는 구조가 아닙니다.
- 화면의 확률은 사용자가 제시한 선택지 사이의 상대 점수입니다. 답이 옳을 확률이나 TypeSafe의 Jev와 같은 정확도를 뜻하지 않습니다.

## 핵심 사실

| 항목 | 값 |
|---|---|
| 두 경로 | 선택지 점수 읽기 · JSON 생성 (같은 모델을 순서대로 실행하는 비교입니다.) |
| 기본 다운로드 | MiniCPM5 2B · 1.56GB (공식 데모의 표기이며 기기 메모리는 별도로 필요합니다.) |
| 프로젝트 관계 | 독립 연구 실험 (TypeSafe의 공식 제품이나 승인받은 구현이 아닙니다.) |


## 문장으로 답할 필요가 없는 질문

고객 문의를 결제, 로그인, 배송 중 어디로 보내야 할지 고른다고 생각해 보겠습니다. 앱에 필요한 결과는 세 선택지 중 하나인데, 챗봇은 그 답을 설명하는 문장이나 JSON까지 차례로 만들 수 있습니다. SemIf는 그 출력 과정을 줄였을 때 무엇이 달라지는지 브라우저에서 비교하는 실험입니다. 이전 이름은 OpenJev이며 [TypeSafe의 Jev](/posts/typesafe-system-one-jev/)와 별개로 운영되는 프로젝트입니다. 

먼저 상태와 질문, 허용할 선택지를 입력합니다. 직접 읽기 경로는 모델의 선택지 점수인 로짓(logits)을 읽고, 주어진 선택지 사이에서 합이 1이 되도록 정규화합니다. 생성 경로는 같은 종류의 분포를 JSON 문장으로 한 토큰씩 씁니다. 두 경로에 같은 판단 문제를 주지만 출력하는 방법이 다릅니다. 

## 같은 기기에서 시간을 따로 잽니다

SemIf는 하나의 로컬 모델에서 두 경로를 차례로 실행합니다. 동시에 실행해 기기 자원을 서로 차지하는 상황을 피하려는 구성입니다. 초기 다운로드와 준비 시간, 판단 시간, 생성 첫 토큰과 전체 완료 시간을 나누어 보여 줍니다. 화면의 시간은 실행한 기기에서 얻은 값이므로 다른 기기의 속도로 그대로 옮길 수 없습니다. 



바탕의 wllama는 llama.cpp를 웹어셈블리(WebAssembly, Wasm)로 브라우저에서 실행하는 라이브러리입니다. Wasm은 브라우저가 실행할 수 있는 코드 형식으로, 웹페이지 안에 계산기를 넣는 것과 비슷하게 모델 실행 기능을 옮길 수 있습니다. 브라우저에서 돌린다는 사실만으로 계산량이나 다운로드가 사라지는 것은 아닙니다. 

기본 선택 모델은 MiniCPM5 2B의 GGUF 배포본이며 화면은 다운로드를 1.56GB로 표시합니다. GGUF는 모델 가중치와 실행에 필요한 정보를 담는 파일 형식입니다. 공개 모델 페이지와 브라우저 데모는 각각 모델 배포와 실행 환경을 담당합니다. 작은 기기에서는 크기뿐 아니라 사용 가능한 메모리도 확인해야 합니다. 

## 선택지 밖에 답이 있다면

상대 점수는 선택지를 어떻게 만들었는지에 영향을 받습니다. '기타'가 빠진 문의 분류에서 가장 높은 값을 얻은 항목이 실제 정답이라고 보장할 수는 없습니다. SemIf도 점수가 보정된 신뢰도(calibrated confidence)가 아니라고 명시합니다. 보정된 신뢰도란 예컨대 80%라고 예측한 여러 사례 중 실제 정답 비율도 약 80%가 되도록 점검한 값입니다. 


저는 이 실험이 AI에게 어떤 출력을 요구할지 다시 생각하게 하는 것 같습니다. 앱이 선택 하나만 필요로 하는데 길게 답하게 했다면, 기능을 늘리기 전에 출력 계약부터 고칠 여지가 있습니다. 그 차이를 같은 모델과 기기에서 살펴보게 한 구성이 흥미롭습니다.

다만 빨라진 분류기는 잘못된 선택지도 더 빨리 고를 수 있습니다. 도입을 시험한다면 평균 시간 옆에 오분류 사례와 '판단 보류' 비율을 함께 놓는 편이 유용할 듯합니다. 독자님의 서비스에서 설명문이 필요한 결정과, 짧은 선택으로 충분한 결정은 각각 무엇일까요? 



## 자주 묻는 질문

**Q. 80%라고 뜨면 정답일 확률도 80%입니까?**

아닙니다. 제공한 선택지 토큰 사이에서 정규화한 값입니다. 정답률에 맞춰 보정한 신뢰도와 다르며 선택지 밖의 답은 포함하지 않습니다.

**Q. 빠른 경로가 더 정확합니까?**

이 데모가 직접 비교하는 것은 출력 방식과 시간입니다. 지연시간을 줄였다는 사실만으로 판단의 정확도가 높아졌다고 볼 수 없습니다.

## 출처

1. [SemIf 공식 브라우저 데모](https://openjev.com/) (official)
2. [wllama 공식 저장소](https://github.com/ngxson/wllama) (official)
3. [MiniCPM5 2B GGUF 모델](https://huggingface.co/openbmb/MiniCPM5-2B-GGUF) (official)

_이 문서는 AI피셜 편집부가 작성했습니다. 인용 시 출처를 표기해 주세요._