Jev at home에서 작동하지만, Gemma 4 31B를 사용하여 4090으로 타이핑된 예/아니오, 선택 항목, 루브릭 답변 및 레이블별
요약
본 글은 TypeSafe의 Jev와 유사하게 텍스트 기반 질문(예/아니오, 라벨 선택 등)에 대해 확률적 답변을 제공하는 'typevet'이라는 도구를 소개합니다. 이 도구는 Gemma 4 31B 모델과 RTX 4090 환경에서 작동하며, 특히 이미지 입력 처리와 JSON 스키마 기반의 정확한 추론 능력을 입증했습니다.
핵심 포인트
- 텍스트 질문에 대해 확률적 답변을 제공하는 typevet 구축 및 소개
- Gemma 4 31B를 사용하여 로컬(RTX 4090) 환경에서 이미지 처리 테스트 성공
- 이미지 입력 시, 텍스트만으로는 오류가 나던 경우에도 정확한 추론 가능성을 입증
- vLLM과 llama.cpp 등 다양한 환경에서 높은 성능 및 안정성 확인
TypeSafe의 Jev는 텍스트가 아닌 질문(예/아니오, 단일 라벨 선택, 루브릭 레벨 선택)에 대해 각 답변별 확률과 함께 답합니다. 공식 문서는 '이미지, 오디오 및 비디오는 지원하지 않습니다 (아직).'라고 명시하고 있습니다. 저는 오픈 모델을 사용하여 제 카드에서 사진에 대한 동일한 종류의 답변을 원했기 때문에 typevet을 구축했습니다 (MIT, Python 3.12). 작동 방식은 다음과 같습니다. 샘플링도 없고 파싱도 없습니다. typevet이 네이티브 Gemma 4 턴 자체를 구성하고, 빈 생각(empty-thought) 비사고 전채우기(prefill)로 프롬프트를 끝낸 다음, 허용된 답변 토큰에 대한 다음 토큰 분포만 읽습니다. 결과는 라벨과 모든 옵션에 대한 확률이거나 오류입니다. 이미지는 llama.cpp의 /completion으로 base64 형식으로 prompt.multimodal_data에 전송되며, 이미지당 하나의 미디어 마커를 사용합니다. vLLM에서는 image_url 블록으로 전송됩니다. 또한 JSON 스키마를 전달하는 객체를 반환하거나 오류를 발생시키는 JSON 경로도 있습니다.
로컬 설정: Gemma 4 31B, 제 24 GiB vramfit 패키지 (HF의 파일과 바이트가 동일하며, 비전용 프로젝트어 사이드카 사용), llama.cpp b11223, RTX 4090 한 장. 아무것도 기기를 벗어나지 않습니다.
영수증 테스트: CORD v2(CC BY 4.0)의 실제 영수증 6개와 각각 3개의 합성 지출 청구서 (정확한 총액, 두 자리 숫자 교체, ?로 마스킹된 숫자). 세 가지 라벨 선택: 일치/불일치/불충분한 증거. 각 청구서는 텍스트만으로 전송한 다음, 영수증 사진과 함께 전송했습니다.
정확한 총액, 일치라고 언급: 텍스트만으로는 6/6, 사진과 함께는 6/6
교체된 총액, 불일치라고 언급: 텍스트만으로는 0/6, 사진과 함께는 6/6
마스킹된 총액, 불충분하다고 언급: 텍스트만으로는 6/6, 사진과 함께는 6/6
예시: 청구서가 646329라고 하고 영수증이 664,329인 경우. 텍스트만으로: 일치 확률 0.99964. 사진과 함께: 불일치 확률 0.99999.
교체된 모든 총액은 0.99998 이상에서 포착되었으며, 마스킹된 항목들은 매번 기권했습니다. 테스트에서는 이미지가 실제로 도착했는지도 확인합니다: 각 사진이 프롬프트 토큰을 228개 추가하여 1,108토큰으로 만들었고, 카운트가 증가하지 않으면 게이트가 실패합니다.
호스팅 환경.
vLLM 0.30.0, BF16 Gemma 4 31B, H100 한 대로 동일한 코드를 사용하여 테스트한 결과: 영수증 테스트는 18/18을 통과했으며, 레이블 순서를 뒤집어도 답변은 18개 중 0개가 바뀌었습니다. 질문당 480개의 Banking77 기록에 대한 처리량(Throughput)은 in flight 상태가 1일 때 기록당 중앙값 0.24초, in flight 상태가 64일 때 초당 39.6개 기록을 달성했으며 오류는 없었습니다. 선행 기술(Prior art)에는 마땅히 공로를 인정해야 할 곳이 있습니다. 텍스트 기반 결정 모델은 TypeLLM (SGLang)에서 왔으며, 이들이 9/24에 자체 이미지 입력을 추가했습니다. typevet의 이미지 경로는 llama.cpp의 요청 형태(request shape)에 별도의 코드입니다. allanrbo는 9/25에 웹캠 이미지를 사용한 Gemma 4 12B용 Jev와 유사한 단일 스크립트를 게시했습니다. VQAScore는 2024년부터 VLMs로부터 '예(Yes)'의 확률을 읽어왔습니다. typevet의 각도(angle)는 라이브러리이지 스크립트가 아니며, 31B 모델은 24 GiB 카드 한 대로 구동되고 vLLM에서 동일한 코드를 사용하며 이미지 도착 확인 기능이 포함되어 있습니다. 범위(Scope): 서버당 1회 실행으로 18개 클레임에 대해 테스트했습니다. 제시된 확률은 모델의 신뢰도이며 보정되지 않았습니다. 코드: https://github.com/Alberto-Codes/typevet 문서: https://alberto-codes.github.io/typevet/ 클레임별 확률: https://github.com/Alberto-Codes/typevet/issues/203#issuecomment-5899231642 모델: https://huggingface.co/Alberto-Codes/gemma-4-31B-it-fit24gib-GGUF 작성 글: https://alberto.codes/blog/2026-09-29-gemma-was-sure-the-total-matched-it-had-not-seen-the-receipt /u/One_Temperature5983 제출 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기