Results

- Fewer mistakes than a generic 4-bit version of the same size: fewer overconfident statements and fewer clear errors.
- Captures about as many facts as the original model (0.53 against 0.54).
- 1.8× faster than the original, and it fits on one RTX 5090 (about 27 s per photo).
Scores
Blind comparison on 100 street photos, with the recommended prompt.
Table with columns: Original (BF16), Generic 4-bit, OddEye | Original (BF16) | Generic 4-bit | OddEye |
|---|
| Reference facts captured ↑ | 0.54 | 0.53 | 0.53 |
| Reference facts contradicted ↓ | 9.3% | 12.4% | 11.3% |
| Overconfident statements per photo ↓ | 0.70 | 0.97 | 0.69 |
| Clear errors per photo ↓ | 0.35 | 0.43 | 0.26 |
| Useful observations beyond the references, per photo ↑ | 1.67 | 1.58 | 1.72 |
Speed and size
Table with columns: Original (BF16), Generic 4-bit, OddEye | Original (BF16) | Generic 4-bit | OddEye |
|---|
| Weights | 55.6 GB | 20.6 GB | 20.6 GB |
| Images per hour, RTX PRO 6000 (32 at once) ↑ | 1,020 | 1,749 | 1,833 |
| RTX 5090 (32 GB) | does not fit | not tested | 27.5 s per photo; ~900 images/h (8 at once) |
How it was evaluated
- 100 street photos from Japan, 40 of which were never seen while developing the prompt or the model. None share an image sequence with the training photos.
- Each photo has about 15 reference facts written by AI from the photo. A Claude model (Anthropic) graded all outputs side by side, without knowing which model wrote which. Read the numbers as a comparison between models, not as absolute accuracy.
- "Generic 4-bit" is a publicly distributed NVFP4 version of the same base model. All three models were run with the same settings, including MTP speculative decoding.
Quick start
vllm serve finalvent/OddEye-0.1-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, and warns if an output is cut off at the 8,192-token limit (about 1 in 70). 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.
- Lane counts, sidewalks and small text are where it slips most; check those fields when they matter. Some interpretations are generic and add little.
- 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
- Version 0.1, an experimental release from the michiyomi project for the Tokyo Governor's Cup 2026 Final Stage. It pairs with prompt v5.2c. Later versions will be separate repositories; the full version, OddEye 1.0, will be built 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.
- 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.
日本語
OddEye 0.1 27B(実験版)
街路の写真を1枚入れると、日本語の構造化された観測記録が返ってきます。 OddEyeは、みちよみの街路を読むモデルです。Qwen3.8-27Bを元に、4bit(NVFP4、約20GB)に縮めたので、GPU 1枚で動きます。RTX 5090でも動きます。
例の図はページの先頭にあります。見えたもの(観測)と、推し量ったこと(解釈。それぞれに確度が付きます)を、別々の欄に書きます。記録の最上位の欄は13あり、物、看板の文字、物どうしの関係、表面の状態、道路の標準項目(車線・歩道・街路灯など)、解釈、場面の要約などがあります。
結果

- 同じ大きさの一般的な4bit版より、誤りが少ない:断定のしすぎと、明らかな誤りが少なくなりました。
- 参照factを捉える度合いは、元のモデルとほぼ同じです(0.53と0.54)。
- 元のモデルの1.8倍速く、RTX 5090 1枚に収まります(1枚あたり約27秒)。
成績
100枚の街路写真での盲検比較です。推奨プロンプトを使っています。
Table with columns: 元のモデル(BF16), 一般的な4bit版, OddEye | 元のモデル(BF16) | 一般的な4bit版 | OddEye |
|---|
| 参照factを捉えた度合い(0〜1) ↑ | 0.54 | 0.53 | 0.53 |
| 参照factと矛盾した割合 ↓ | 9.3% | 12.4% | 11.3% |
| 断定のしすぎ(1枚あたり) ↓ | 0.70 | 0.97 | 0.69 |
| 明らかな誤り(1枚あたり) ↓ | 0.35 | 0.43 | |
速さと大きさ
Table with columns: 元のモデル(BF16), 一般的な4bit版, OddEye | 元のモデル(BF16) | 一般的な4bit版 | OddEye |
|---|
| 重みの大きさ | 55.6 GB | 20.6 GB | 20.6 GB |
| 1時間あたりの画像数(RTX PRO 6000、同時32件) ↑ | 1,020 | 1,749 | 1,833 |
| RTX 5090(32 GB) | 載らない | 試していない | 1枚あたり27.5秒、同時8件で毎時約900枚 |
評価のしかた
- 日本の街路写真100枚です。うち40枚は、プロンプトやモデルを作るあいだに一度も見ていない写真です。どの写真も、学習に使った写真と撮影系列が重なりません。
- 各写真には、AIが写真から書いた参照factが約15件あります。Claude(Anthropic)が、どのモデルの出力かを伏せたまま、すべての出力を並べて採点しました。数字は絶対的な正確さではなく、モデル同士の比較として読んでください。
- 「一般的な4bit版」は、同じ元モデルを配布用にNVFP4へ量子化した版です。3つのモデルは、MTPの先読みを含めて同じ設定で動かしました。
使い方
vllm serve finalvent/OddEye-0.1-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)では --max-num-seqs 8 --gpu-memory-utilization 0.92 を足す python3 example_request.py photo.jpg > observation.json
同梱の推奨プロンプト prompt_v5.2c.md を使ってください。モデルはこのプロンプトに特化しています。example_request.py(Pythonの標準ライブラリだけで動きます)は、評価と同じ形の要求を送ります。出力が8,192 tokenの上限で途切れたとき(約70回に1回)は、警告を出します。動作は、Blackwell世代のGPUと vLLM 0.27〜0.28 で確かめました。
出力を使う前に
- 出力は、その写真に写っているものを、撮影した時点で書いたものです。その場所の現在の状態ではありません。
- 幅や車線数は、写真1枚からの推定値で、測った値ではありません。「見えない」も意味のある答えです。記録にないことを補わないでください。
- 間違えやすいのは、車線数、歩道、小さな文字です。大事な場合は、これらの欄を確かめてください。解釈には、一般的で情報の少ないものも混じります。
- まれにナンバープレートの数字を書き写すことがあります(140枚中1枚。元のモデルも同じ)。出力を公開するときは、ナンバーや個人名を伏せてください。
- 安全やバリアフリーの判断の、唯一の根拠にはしないでください。
このモデルについて
- 版は0.1で、みちよみプロジェクトの実験版です。都知事杯2026のFinal Stageに向けて公開しました。推奨プロンプト v5.2c と組で使います。次の版は別のリポジトリとして公開します。本格版のOddEye 1.0は、次の世代のQwenで作る予定です。
- 学習には、元のモデル自身の回答だけを使いました(400枚の写真で、4bitを意識した自己蒸留)。外部のAIサービスの出力は使っていません。
- 学習に使った写真は、Mapillary の街路写真です(このリポジトリには含めていません)。
- ライセンスは、元のモデルと同じApache-2.0です。出力には条件を付けません。例の図には、Mapillaryのnashitakahashiさんの写真を使っていて、図はCC BY-SA 4.0で共有しています。