Skip to content

Releases

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 23:48

What's changed

  • Search saved transcripts on Ask documents (#7) (dc46260)
  • Release 0.4.0 (9d561f8)

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 23:21

What's changed

  • Note that a version bump also has to relock (3f7aef3)
  • License the studio under Apache-2.0 (6439445)
  • Show a Grounding run in the README (da1cfb9)
  • Illustrate the Chat page in the README (8408032)
  • Tighten the README and correct three of its claims (641e719)
  • Note that the attach control is a +, not a paperclip (8c1d3af)
  • Upgrade mlx-vlm to 0.7.3 and Streamlit to 1.64 (74a6cfa)
  • Correct why MLX work has to stay on one thread (a88116b)
  • Note that AppTest misreports sidebar state across page switches (d7ba197)
  • Correct why CI has no Linux job (26a7d16)
  • Declare huggingface-hub and fix the PLC0415 count (b7b894b)
  • Pin the checkpoint to a Hub commit (0df6ec5)
  • Add watchdog as a dev dependency (9044ecb)
  • Replace the Nord theme with a dark and light Polar Indigo pair (84eb0cb)
  • Retake the README screenshots on the Polar Indigo theme (59c3383)
  • Rename the project to Cohere Document Intelligence (a2e90b0)
  • Call it the app rather than the studio in prose (1d5c11a)
  • Add the 8-bit + R7B pipeline plan and Claude Code guards (#1) (e2d3a0b)
  • M0: Foundations for the document pipeline (#2) (427aa83)
  • M1: Feasibility of 8-bit and the R7B reader on 16 GB (#3) (a623537)
  • M2: Working pipeline for Ask documents (#4) (693357d)
  • M3: Quality and polish (#5) (e3b29aa)
  • M4: Docs and release (#6) (5ef961f)
  • Release 0.3.0 (97d7ca0)

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 02:34

What's changed

  • Build release notes from commits, not pull requests (97eb779)
  • Add a CI badge to the README (840af4a)
  • Publish releases automatically instead of drafting them (bb306e8)
  • Document that a version bump publishes a release (ba7233c)
  • Drop a redundant width kwarg and document the stats slot (f892e75)
  • Keep sidebar settings when switching pages (c37b117)
  • Stop re-encoding the grounding image on every rerun (ff56722)
  • Switch to a dark-only Nord theme (b5899b7)
  • Document the sidebar persistence and dark-only theme rules (624c1c8)
  • Distinguish an empty grounding result from unparsable prose (725a174)
  • Record why the model loads before the page body paints (6b06a3e)
  • Release 0.2.0 (f31979a)

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 22:52

First release of North Micro Vision Studio: a local Streamlit app for running Cohere's North Micro Vision — a 2.4B-parameter, Apache-2.0 vision-language model that reads images at their native resolution rather than squashing them to a fixed square — on Apple Silicon via MLX. Documents, charts, OCR and visual grounding, with nothing leaving the machine.

It runs the bf16 conversion only (mlx-community/North-Micro-Vision-Instruct-bf16, ~5 GB), so results stay comparable to Cohere's published numbers.

Two pages

Chat — multi-turn document Q&A, OCR, chart reading and captioning. Each image stays bound to the turn it arrived on, so a follow-up question can refer back to a page uploaded several turns earlier. Responses stream token by token.

Grounding — single-shot detection with a bounding-box overlay, a table of parsed coordinates and a PNG download. Boxes come back on a 0–1000 grid rather than in pixels, so the overlay is drawn on your full-resolution upload even though the encoder saw a downscaled copy.

Worth knowing

  • Token cost scales with pixel area. The encoder spends one token per 32×32 px block, so tokens = pixels / 1024. The image budget slider is the only lever on prefill latency and KV-cache memory; its ceiling is 3,868,706 px — A4 at 200 dpi, the largest resolution Cohere trained on.
  • Every MLX call runs on one pinned worker thread. mlx-vlm binds its generation stream to whichever thread first imports it, and Streamlit runs each rerun on a fresh thread, so a naive app works exactly once and then fails. The single worker also serialises GPU work across browser tabs, which matters because MLX generation is not reentrant.
  • No system prompt is ever sent. Cohere states the model was not trained to follow them, so task instructions go in the user turn.

Requirements

An Apple Silicon Mac (16 GB unified memory is enough; peak is ~6.2 GB), Python 3.11–3.13, and uv. The first launch pulls ~5 GB of weights into the Hugging Face cache.

uv sync
uv run streamlit run streamlit_app.py

Measured on an M2 Max (32 GB)

Weight load 3.4 s · prefill ~590 tok/s · decode 72–88 tok/s · peak 6.17 GB

What's changed

  • Initial commit (f647374)
  • Add Streamlit studio for North Micro Vision on MLX (c7a5d08)
  • Fix defects found in code review (103cc2b)
  • Enforce the module-scope MLX import ban with a hook (06222a9)
  • Ignore .claude/settings.local.json (1cae663)
  • Add CI workflow and draft releases on version bump (f29e4e7)
  • Pin setup-uv to an exact release (f26c3c9)

Full Changelog: https://github.com/darylalim/north-micro-vision-studio/commits/v0.1.0