독립적인 개발자 Allan Riordan Boll이 9월 25일 공개한 Python 예시는 Jev 방식의 판단 요청에 이미지 첨부를 더합니다. 웹캠 프레임을 짧은 질문과 함께 비전 모델에 보내고, 모델의 다음 토큰 확률을 예/아니요 값, 선택지 또는 점수로 변환합니다. 이 예시는 독립적인 래퍼이며 Jev의 비전 기능이나 Jev 모델 테스트가 아닙니다.

개발자에게 유용한 점은 이 기법의 적용 범위입니다. 비전 모델은 설명문을 작성하지 않고도 제약된 질문에 답할 수 있지만, 반환되는 선택지 확률은 프롬프트, 사용할 수 있는 토큰 대안, 모델에 따라 달라집니다. 이 게시물은 살펴볼 만한 작동 패턴을 제시할 뿐 정확도 연구는 아닙니다.

큰 변화

  • 무엇이 달라졌나:한 개발자가 Jev와 연관된 소규모 판단 형식을 일반 비전 모델을 사용해 이미지에 적용했습니다. 각 요청에 이미지를 첨부하고 한 글자로 답하게 해 시각적 질문을 소프트웨어가 처리할 수 있는 값으로 바꿉니다.
  • 왜 중요한가:개발자는 질문마다 별도의 이미지 분류기를 만들지 않고도 텍스트로 시각적 기준을 바꾸고 유형이 지정된 결과를 받을 수 있습니다. 이 예시는 사람과 식물의 가시 여부, 실내외 장면, 밝기를 다루지만, 그런 판단이 다른 카메라나 장면에서도 얼마나 안정적으로 적용되는지는 입증하지 않습니다.
  • 살펴볼 점:실무에서 판단할 점은 선택한 모델과 엔드포인트가 작업에 충분히 일관되게 필요한 대체 토큰 점수를 반환하는지 여부입니다. 웹캠 결과가 어떤 동작을 유발하기 전에 대표 이미지에서 프레임 처리량과 판단 품질을 함께 측정해야 합니다.

이미지 판단의 작동 방식

TypeSafe AI의 Jev 빠른 시작 문서에는 유형이 지정된 state과 유형이 지정된 questions: noul은 예/아니요 값에 choice, 이름이 붙은 선택지용 score, 순서형 단계용입니다. Boll의 스크립트는 이 이름을 사용하고 이미지 경로나 base64 데이터 URL 배열인 attachments을 추가합니다. 이 필드는 그가 요청 객체에 추가한 확장입니다. 인용된 Jev 빠른 시작 문서는 텍스트 상태를 설명하지만 이를 Jev API 입력으로 문서화하지 않습니다.

각 질문마다 스크립트는 예를 들어 [A] true와 [B] false 같은 문자 선택지를 포함한 프롬프트를 만듭니다. 모델에 가장 적합한 문자로 답하라고 요청한 뒤 첫 번째 출력 토큰의 top_logprobs을 읽습니다. 반환된 로그 확률을 지수화하고, 나열된 문자들의 가중치를 정규화해 질문 유형에 대응시킵니다. choice는 가중치가 가장 높은 선택지와 그 분포를 반환합니다. noul는 true의 가중치를 반환합니다. score는 순서형 단계의 가중 평균을 반환합니다. 생략된 선택지 토큰에 여전히 의미 있는 가중치가 남을 수 있으면 스크립트는 응답을 거부합니다.

각 질문에 이미지가 함께 전달됩니다. 이 예시는 한 번의 모델 호출로 모든 답을 얻는 대신 개별 요청을 보냅니다. OpenAI 경로는 Responses API에서 input_image, top_logprobs 및 message.output_text.logprobs을 사용합니다. 로컬 llama.cpp 경로는 Chat Completions와 image_url 콘텐츠 항목 및 로그 확률을 사용합니다. OpenAI의 이미지 가이드는 base64 이미지 데이터 URL을 설명하고, 해당 Responses 참조 문서는 로그 확률 출력과 토큰 위치당 최대 20개의 대체 항목이 반환될 수 있음을 설명합니다. llama.cpp 서버 문서는 채팅 인터페이스에서 이미지 URL을 설명합니다. 이 자료들은 요청 패턴을 뒷받침하지만, 어느 엔드포인트에서도 예시를 실행하지는 않았습니다.

웹캠 예시가 측정하는 것

스크립트는 OpenCV로 프레임을 캡처해 JPEG로 인코딩하고 사람이나 식물이 보이는지, 실내인지 실외인지, 밝기는 어느 정도인지 네 가지 질문을 합니다. 미리보기가 계속되는 동안 백그라운드 작업자는 한 번에 프레임 하나를 평가합니다. 카메라 설정은 Linux V4L2를 사용하므로 게시된 파일은 수정 없이 범용 웹캠 설정으로 사용할 수 없습니다. 본문은 프레임당 질문이 세 개라고 하지만 공개된 코드에는 네 개가 있습니다. 여기서는 개수를 셀 때 코드를 기준으로 삼았습니다.

Boll은 약 초당 프레임 하나를 평가했다고 보고합니다. RTX 3090에서 로컬로 제공한 Gemma 4 12B QAT 모델을 사용한 결과이며, 약 초당 0.2프레임은 호스팅된 GPT-6 Luna를 사용한 경우입니다. 그는 연결을 반복하는 일이 호스팅 결과에 영향을 줄 수 있다고 제안합니다. 게시물에는 하드웨어, 네트워크, 이미지 크기, 캐싱, 정확도 또는 요청 시간을 통제한 비교가 없습니다. 이 수치는 작성자의 설정과 코드에서 나온 값이지 모델 전반의 속도 순위가 아닙니다. OpenAI는 GPT-6 Luna가 이미지 입력을 받는다고 명시하며, 해당 모델 가이드는 Luna가 예시에서 사용한 none의 추론 설정을 지원한다고 설명합니다.

스크립트를 적용하려는 개발자는 먼저 구체적인 점검을 해야 합니다. 모델이 이미지 입력을 받고 필요한 첫 토큰 대안을 제공하는지 확인하고, 모든 선택지 문자가 나타나는지 확인한 다음, 대상 카메라나 데이터셋에서 라벨이 붙은 이미지로 반환된 판단을 평가합니다. 정규화된 가중치는 나열된 문자 토큰에 대한 상대값입니다. 그 자체가 시각적 판단의 정답 여부를 측정한 확률은 아닙니다. OpenAI의 오래된 logprobs 쿡북은 토큰 확률의 개념을 설명하지만 보관 자료로 표시되어 있으며 API 예시가 오래되었을 수 있습니다.

이 래퍼는 유형이 지정된 결과 뒤에 애플리케이션 코드가 맡는 역할도 분명히 합니다. 모델은 제공된 이미지를 글로 제시된 기준에 따라 판단합니다. 애플리케이션은 프레임을 선택하고, 점수가 없을 때 처리하며, 결과를 실제 동작에 안전하게 사용할 수 있는지 결정합니다. Boll의 예시는 표를 출력할 뿐 자동 동작이나 측정된 배포 사례를 보고하지 않습니다.

출처 및 추가 자료

  • Allan Riordan Boll, “A Jev-like wrapper for LLMs, including vision models,” 2026년 9월 25일: 원본 Python 예시, 웹캠 작업 흐름, 작성자가 보고한 프레임 처리 속도. 본문은 프레임마다 세 질문이라고 하지만 코드는 네 개를 정의합니다. 측정값은 독립적이거나 통제된 벤치마크가 아닙니다.
  • TypeSafe AI, Jev 빠른 시작 문서: 텍스트 상태와 noul, choice, score 질문 유형을 설명합니다. 작성자의 사용자 지정 attachments 필드를 Jev API 기능으로 문서화하지 않습니다.
  • OpenAI, Images and vision: input_image, 이미지 URL, 비전 입력용 base64 데이터 URL을 설명합니다. Responses API 참조 문서는 message.output_text.logprobs 및 반환되는 대체 항목의 한도를 설명합니다.
  • OpenAI, GPT-6 Luna 모델 및 모델 가이드: 이미지 입력과 모델의 none 추론 설정을 확인합니다. 모델 가이드에는 매개변수 호환성이 나옵니다. 이 문서들은 블로그 작성자의 처리량을 검증하지 않습니다.
  • llama.cpp 서버 문서: OpenAI 호환 채팅 엔드포인트와 이미지 URL 입력을 설명합니다. 정확한 버전과 모델에서 백엔드가 지원되는지, 토큰 목록이 반환되는지는 확인이 더 필요합니다.
  • OpenAI 쿡북, Using logprobs: 토큰 확률에 대한 배경 설명입니다. OpenAI는 이 레시피를 보관 자료로 표시하고 일부 모델이나 API에는 오래된 정보가 포함될 수 있다고 경고합니다.