Skip to page content
SAVRN
Search Plan a project

Open-weight model · Image and text to text

oddeye-27b-nvfp4

by Minorufujino finalvent/oddeye-27b-nvfp4

oddeye-27b-nvfp4 is an open-weight model for image and text to text from Minorufujino, released under Apache License 2.0. It has 27.4B parameters and a 262,144-token context. At 16-bit it needs about 65.7 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

One street photo in, a structured Japanese observation record out. OddEye is the street-reading model of michiyomi. It is built on Qwen3.8-27B and compressed to 4-bit (NVFP4, about 20 GB), so a single GPU — even an RTX 5090 — can run it.

Parameters27.4B
Context262,144
Weights20.6 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve oddeye-27b-nvfp4 (27.4B parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 54.7 GB 65.7 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 27.4 GB 32.8 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 13.7 GB 16.4 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

oddeye-27b-nvfp4 on every accelerator the SAVRN Index prices, at every precision

Model Card

By Minorufujino, published under apache-2.0, revision f7ffa92d34d2.

One street photo in, a structured Japanese observation record out. OddEye is the street-reading model of michiyomi. It is built on Qwen3.8-27B and compressed to 4-bit (NVFP4, about 20 GB), so a single GPU — even an RTX 5090 — can run it. It keeps what it sees (observations) and what it infers (interpretations, each with a confidence label) in separate fields. The record has 13 top-level fields, including objects, text on signs, relations, surfaces, standard road facets (lanes, sidewalks, lighting…), interpretations and a scene summary. All numbers use the recommended prompt (v5.2c), greedy decoding and the same photos for every model. "Generic NVFP4" is a publicly distributed 4-bit version…

Read Minorufujino's full model card

OddEye 27B (experimental)

One street photo in, a structured Japanese observation record out. OddEye is the street-reading model of michiyomi. It is built on Qwen3.8-27B and compressed to 4-bit (NVFP4, about 20 GB), so a single GPU — even an RTX 5090 — can run it.

It keeps what it sees (observations) and what it infers (interpretations, each with a confidence label) in separate fields. The record has 13 top-level fields, including objects, text on signs, relations, surfaces, standard road facets (lanes, sidewalks, lighting…), interpretations and a scene summary.

Results

  • Overconfident statements and misread text: no significant difference from the BF16 original, and clearly fewer than a generic 4-bit version.
  • Speed: 1.8× the original on an RTX PRO 6000. On an RTX 5090, about 27 s per photo, or about 900 photos/h with 8 requests at once.
  • Weak points: more generic interpretations than the original; some text is still misread.

Evaluation details

All numbers use the recommended prompt (v5.2c), greedy decoding and the same photos for every model. "Generic NVFP4" is a publicly distributed 4-bit version of the same base model; "GPTQ only" is our own 4-bit calibration on michiyomi requests, without training. ↑ higher is better, ↓ lower is better.

Blind comparison (60 street photos)

BF16 original Generic NVFP4 GPTQ only OddEye
Reference-fact score ↑ 0.577 0.561 0.569 0.574
Contradicted reference facts ↓ 8.1% 10.4% 9.9% 9.1%
Overconfident statements / photo ↓ 0.57 0.85 0.82 0.55
Clear errors / photo ↓ 0.37 0.42 0.30 0.25
— misread text ↓ 0.05 0.25 0.13 0.10
— objects that are not there ↓ 0.17 0.08 0.05 0.07
Useful observations beyond the references / photo ↑ 1.27 1.43 1.53 1.40
Interpretations: useful / generic 1.18 / 0.53 1.20 / 0.55 1.28 / 0.78 1.18 / 0.88

Differences, with 95% confidence intervals (paired bootstrap over photos):

OddEye minus … Generic NVFP4 BF16 original
Overconfident statements / photo −0.30 [−0.47, −0.13] −0.02 [−0.17, 0.13]
Misread text / photo −0.15 [−0.28, −0.03] +0.05 [−0.02, 0.15]
Clear errors / photo −0.17 [−0.33, 0.02] −0.12 [−0.32, 0.08]
Reference-fact score +0.013 [−0.011, 0.037] −0.003 [−0.027, 0.019]
Generic interpretations / photo +0.33 [0.12, 0.53] +0.35 [0.17, 0.53]

Two later blind rounds on the same photos (each again with the BF16 original) found no significant difference from BF16 on the error measures either. In all three rounds OddEye misread slightly more text than BF16 (+0.03 to +0.05 per photo; the 95% intervals reach zero).

By kind of fact

Score and share of contradicted facts, per kind of reference fact (867 facts in total).

Kind of fact (facts) BF16 original Generic NVFP4 OddEye
Text on signs (104) 0.69 · 13% 0.58 · 24% 0.64 · 16%
Relations between objects (170) 0.48 · 6% 0.47 · 8% 0.51 · 4%
Counts (97) 0.55 · 9% 0.54 · 10% 0.54 · 8%
Appearance (148) 0.55 · 4% 0.52 · 6% 0.55 · 5%
Basic layout (146) 0.63 · 16% 0.62 · 16% 0.62 · 19%
Transient things: vehicles, people, works (114) 0.58 · 7% 0.59 · 7% 0.56 · 11%
Context (88) 0.59 · 1% 0.64 · 3% 0.61 · 2%

Reading text is where generic 4-bit quantisation hurts most, and where OddEye recovers most (score +0.075 [0.011, 0.153] over Generic NVFP4). Fewer relation contradictions than Generic NVFP4 (−4.3 points [−8.3, −0.6]). Transient things are a weak spot: 2.8 points [0.6, 5.6] more contradictions than BF16.

Agreement with the original model (140 photos)

Teacher-forced on the BF16 original's own answers: how much less likely each 4-bit model finds them.

Generic NVFP4 GPTQ only OddEye
Extra negative log-likelihood per token ↓ 0.051 0.040 0.015
Same top-1 token as BF16 ↑ 95.5% 95.9% 95.9%

Output structure (140 photos)

BF16 original Generic NVFP4 OddEye
All 13 top-level fields present ↑ 140 140 138
Stopped at the 8,192-token limit ↓ 0 0 2
Median output tokens 3,151 3,383 3,339

Speed and size

BF16 original Generic NVFP4 OddEye
Weights 55.6 GB 20.6 GB 20.6 GB
RTX PRO 6000 (96 GB), 32 concurrent, images/h ↑ 1,020 (with MTP) 1,749 1,833
RTX 5090 (32 GB) does not fit not tested 27.5 s per photo; ~900 images/h with 8 concurrent

Variants we tried (not released)

Variant Result against OddEye
Same training, 1,000 answers instead of 400 Closer to BF16 token by token, but more overconfident: +0.22 statements / photo [0.07, 0.37]
1,000 answers with KL distillation (BF16 top-20 distribution) More contradicted facts (+2.3 points [0.3, 4.4]) and slower (1,659 images/h)
Answers re-written as one-line JSON (37% fewer tokens) Broken nesting in 103 of 140 outputs; 31 ran to the token limit

How it was evaluated

  • 60 photos: 20 from a fixed panel plus 40 from the evaluation pool, about 14.5 reference facts each. Structure, speed and agreement use 140 photos. All evaluation photos come from image sequences not used for training.
  • A Claude model (Anthropic) graded each photo with all outputs side by side, without knowing which model wrote which, using a fixed rubric (facts held / partial / missed / contradicted, overconfident statements, clear errors, useful extras, interpretation quality). The graders looked at the photo, zooming in on small text.
  • Limits: the references were written by AI and not checked by people (one known error); the prompt revisions v5.2b/v5.2c were made from errors on these same photos, so absolute values are optimistic. Read the numbers as a comparison between models.

Quick start

vllm serve finalvent/oddeye-27b-nvfp4 --served-model-name oddeye \
  --max-model-len 16384 --kv-cache-dtype fp8 --mamba-ssm-cache-dtype bfloat16 \
  --limit-mm-per-prompt '{"image":1}' \
  --speculative-config '{"method":"mtp","num_speculative_tokens":2}' --enable-prefix-caching
# RTX 5090 (32 GB): add --max-num-seqs 8 --gpu-memory-utilization 0.92

python3 example_request.py photo.jpg > observation.json

Use the included prompt, prompt_v5.2c.md; the model was specialised on it. example_request.py (standard library only) sends exactly the request that was evaluated. Tested with vLLM 0.27–0.28 on Blackwell GPUs.

Before you use the output

  • It describes only what is visible in that photo, at the time it was taken — not the current state of the place.
  • Widths and lane counts are estimates from one image, not measurements. "Not visible" is a real answer; don't fill in what the record does not say.
  • It occasionally transcribes a licence-plate number (1 photo in 140, as did the original). Redact plates and personal names before publishing outputs.
  • Don't use it as the only basis for safety or accessibility decisions.

About

  • Experimental release from the michiyomi project, for the Tokyo Governor's Cup 2026 Final Stage. A full version will follow on the next Qwen generation.
  • Trained only on the base model's own answers (4-bit-aware self-distillation on 400 photos); no outputs of external AI services were used. Evaluation: blind comparison on 60 photos, graded by Claude (Anthropic) against AI-written references — read the numbers as a comparison between models.
  • Training photos: street-level imagery from Mapillary (not included).
  • License: Apache-2.0 (same as the base model). No conditions on the outputs. The example figure contains a photo by nashitakahashi via Mapillary and is shared under CC BY-SA 4.0.

日本語

街路の写真1枚から、日本語の構造化された観測記録(JSON)を作る、みちよみの実験版モデルです。Qwen3.8-27Bを元に、約20GBの4bit(NVFP4)に縮めて特化させました。RTX 5090を1枚積んだ機材でも動きます。

  • 見えたもの(観測)と推し量ったこと(解釈)を分けて書きます。解釈には確度が付きます。
  • 断定のしすぎと文字の誤読は、元のモデルと有意な差がありません。一般的な4bit版より少なくなりました。速さは元のモデルの約1.8倍です(RTX PRO 6000)。RTX 5090では1枚あたり約27秒です。
  • 評価の詳細(60枚の盲検比較、事実の種類ごとの得点、元のモデルとの一致度、出力の構造、速さ、試した別の作り方)は、英語の「Evaluation details」の表にあります。文字の読み取りは、一般的な4bit版より明らかに良くなりました(得点+0.075)。走っている車など一時的なものは、元のモデルより矛盾がやや多い弱点です。
  • 使い方は上のQuick startのとおりです。同梱の推奨プロンプト prompt_v5.2c.md を使ってください。
  • 出力は、撮影時点の写真に見えたものだけを書いたものです。幅などは推定値です。まれにナンバーを書き写すことがあるので、公開するときはナンバーや個人名を伏せてください。
  • 重みはApache-2.0です。出力には条件を付けません。例の図には、Mapillaryのnashitakahashiさんの写真(CC BY-SA 4.0)を使っています。

Configuration

Architecture
Qwen3_5ForConditionalGeneration
Context length (tokens)
262,144
Layers
64
Hidden size
5,120
Feed-forward size
17,408
Attention heads
24
Key/value heads
4
Head dimension
256
Vocabulary size
248,320
Model type
qwen3_5
Quantization
compressed-tensors

Identity and Version

Repository
finalvent/oddeye-27b-nvfp4
Publisher
Minorufujino
Task
Image and text to text
Modality
Image and text
Library
vllm
Parameters
27.4B parameters
Languages
ja
Revision
f7ffa92d34d24fd77745d6a75c2f16dd1fb41490
First published
2026-10-03
Last updated
2026-10-03

Files and Weights

18 files, 20.6 GB in total. The weights are 2 files totalling 20.6 GB in safetensors.

Weights2 files · 20.6 GB
Configuration6 files · 252.6 KB
Tokenizer2 files · 20.0 MB
Documentation3 files · 36.9 KB
Other4 files · 697.8 KB
Repository1 file · 1.8 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights19.7 GB 25139acf3383
model_mtp.safetensorsWeights849.4 MB 1d8268aa85ac
config.jsonConfiguration10.5 KB —
example_request.pyConfiguration2.2 KB —
generation_config.jsonConfiguration214 B —
model.safetensors.index.jsonConfiguration238.0 KB —
processor_config.jsonConfiguration1.2 KB —
recipe.yamlConfiguration384 B —
LICENSEDocumentation11.5 KB —
README.mdDocumentation11.6 KB —
prompt_v5.2c.mdDocumentation13.8 KB —
assets/oddeye-banner.pngOther109.4 KB 25767c84bbec
assets/oddeye-example.jpgOther306.7 KB 12e05de89321
assets/oddeye-results.pngOther272.8 KB f61cb04c3870
chat_template.jinjaOther9.0 KB —
.gitattributesRepository1.8 KB —
tokenizer.jsonTokenizer20.0 MB 06b9509352d2
tokenizer_config.jsonTokenizer1.2 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
20.6 GB
Download from Minorufujino

Released by Minorufujino through its official repository on Hugging Face. Read the license.

Built From

Evaluations

Each result is shown as reported, with the conditions its reporter stated. None is a SAVRN measurement. A comparison lines two results up only when their configuration, unit and setup are all stated and identical.

BenchmarkConditionsResultReported byRevisionDate
michiyomi blind evaluation, 60 street photos (internal, AI-written references) Task Street photo to structured Japanese observation (prompt v5.2c)Metric Contradicted reference facts, % (lower is better)Comparison conditions not established 9.1 finalvent
Publisher reported
Evaluated revision not stated —
michiyomi blind evaluation, 60 street photos (internal, AI-written references) Task Street photo to structured Japanese observation (prompt v5.2c)Metric Misread text per photo (lower is better)Comparison conditions not established 0.1 finalvent
Publisher reported
Evaluated revision not stated —
michiyomi blind evaluation, 60 street photos (internal, AI-written references) Task Street photo to structured Japanese observation (prompt v5.2c)Metric Overconfident statements per photo (lower is better)Comparison conditions not established 0.55 finalvent
Publisher reported
Evaluated revision not stated —
michiyomi blind evaluation, 60 street photos (internal, AI-written references) Task Street photo to structured Japanese observation (prompt v5.2c)Metric Reference-fact score (held + 0.5 x partial, higher is…Comparison conditions not established 0.574 finalvent
Publisher reported
Evaluated revision not stated —
michiyomi evaluation, 140 street photos (internal) Task Street photo to structured Japanese observation (prompt v5.2c)Metric Images per hour, RTX PRO 6000, 32 concurrentComparison conditions not established 1833 finalvent
Publisher reported
Evaluated revision not stated —
michiyomi evaluation, 140 street photos (internal) Task Street photo to structured Japanese observation (prompt v5.2c)Metric Outputs with all 13 top-level fields, %Comparison conditions not established 98.6 finalvent
Publisher reported
Evaluated revision not stated —

Memory Requirements

PrecisionWeights in memory
As published20.6 GB
16-bit54.7 GB
8-bit27.4 GB
4-bit13.7 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About oddeye-27b-nvfp4

How much GPU memory does oddeye-27b-nvfp4 need?

About 65.7 GB at 16-bit and 16.4 GB at 4-bit: the weights (27.4B parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run oddeye-27b-nvfp4 on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use oddeye-27b-nvfp4 commercially?

Yes. oddeye-27b-nvfp4 is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is oddeye-27b-nvfp4's context length?

262,144 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Image and text to text

Qwen3.8-27B-MLX-4bit

LM Studio Community

LM Studio Community models highlights program. Highlighting new & noteworthy models by the community. Join the conversation on Discord. 4-bit quantized version of Qwen3.8-27B using MLX, optimized for Apple Silicon. Special thanks to the Apple Machine Learning Research team for creating MLX. LM Studio is not the creator, originator, or owner of any Model featured in the Community Model Program. Each Community Model is created and provided by third parties. LM Studio does not endorse, support, represent or guarantee the completeness, truthfulness, accuracy, or reliability of any Community Model. You understand that Community Models can produce content that might be offensive, harmful…

Open weights apache-2.0 27.4B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen3.8-27B-MLX-8bit

LM Studio Community

LM Studio Community models highlights program. Highlighting new & noteworthy models by the community. Join the conversation on Discord. 8-bit quantized version of Qwen3.8-27B using MLX, optimized for Apple Silicon. Special thanks to the Apple Machine Learning Research team for creating MLX. LM Studio is not the creator, originator, or owner of any Model featured in the Community Model Program. Each Community Model is created and provided by third parties. LM Studio does not endorse, support, represent or guarantee the completeness, truthfulness, accuracy, or reliability of any Community Model. You understand that Community Models can produce content that might be offensive, harmful…

Open weights apache-2.0 27.4B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen3.8-27B-MLX-6bit

LM Studio Community

LM Studio Community models highlights program. Highlighting new & noteworthy models by the community. Join the conversation on Discord. 6-bit quantized version of Qwen3.8-27B using MLX, optimized for Apple Silicon. Special thanks to the Apple Machine Learning Research team for creating MLX. LM Studio is not the creator, originator, or owner of any Model featured in the Community Model Program. Each Community Model is created and provided by third parties. LM Studio does not endorse, support, represent or guarantee the completeness, truthfulness, accuracy, or reliability of any Community Model. You understand that Community Models can produce content that might be offensive, harmful…

Open weights apache-2.0 27.4B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen3.8-27B-MLX-5bit

LM Studio Community

LM Studio Community models highlights program. Highlighting new & noteworthy models by the community. Join the conversation on Discord. 5-bit quantized version of Qwen3.8-27B using MLX, optimized for Apple Silicon. Special thanks to the Apple Machine Learning Research team for creating MLX. LM Studio is not the creator, originator, or owner of any Model featured in the Community Model Program. Each Community Model is created and provided by third parties. LM Studio does not endorse, support, represent or guarantee the completeness, truthfulness, accuracy, or reliability of any Community Model. You understand that Community Models can produce content that might be offensive, harmful…

Open weights apache-2.0 27.4B parameters 262,144 tokens transformers

Model · Image and text to text

openthai2.0-qwen3.8-27b-MLX-4bit

iApp Technology

MLX 4-bit quantization (mlx-vlm) of for Apple silicon. Vision included. ~16 GB — runs on 24 GB+ unified memory. pip install mlx-vlm python -m mlxvlm generate --model iapp/openthai2.0-qwen3.8-27b-MLX-4bit \ --image document.jpg --prompt "อ่านข้อความในเอกสารนี้ทั้งหมด" --max-tokens 8192 Notes: the MTP draft head is not included (mlx-vlm has no drafter support for this architecture yet). Under TensorFold (below), drafting comes from z-lab's DFlash2 drafter TensorFold serves this checkpoint as published, images included, through an OpenAI-compatible API (/v1/chat/completions, /v1/responses, /v1/messages). It runs on Apple silicon and on NVIDIA GPUs with compute capability 8.9+: RTX 40/50…

Open weights apache-2.0 27.4B parameters 262,144 tokens mlx

Qwen3.5-KETI-HAECHI-27B is a multimodal model derived from Qwen/Qwen3.5-27B. It was developed Korean OCR, and improving tool calling and multi-step, stateful agent execution. Alongside these goals, the model preserves broad multimodal, language, and coding capabilities from the base model. heritage objects, answers questions grounded in heritage images, and reads Korean text from signs, scenes, rendered text, and public documents. - Tool calling and long-horizon task execution: selects and calls tools, carries information across multiple turns, tracks changing state, and works toward an end-to-end goal over several steps. follows Korean and English instructions, and performs visual…

Open weights apache-2.0 27.4B parameters 262,144 tokens transformers