Label a PDF, separate a packet, or choose the next action. Blink gives a probability for every offered option. It does not generate text.
Live models: blink-4b (Qwen3.5-4B text) and blink-mimo-9b (MiMo-V2.6-Distill-Qwen-9B). blink-27b is in Results.
Documents tab: Blink 9B labels complete PDFs or finds the separate documents in a packet. Inspect every original page, edit category rules, review uncertain decisions, and download result JSON and split PDFs. English scan OCR runs in this Space before Blink reads the text. An optional 4B comparison uses the same prepared text and rules.
Computer use tab: blink works through ten original apps from numbered screenshots, one step at a time. No model finds the boxes: each app's page lists its clickable elements in the browser (canvas apps report their own hit regions), and the harness numbers them on the screenshot. How one step works follows a recorded step from the raw screen to blink's decision, and every step of a run shows exactly what blink was sent. Screen click runs blink-mimo-9b live on a screenshot of your own, with boxes you draw or a numbered grid.
Ask tab: Qwen/Qwen3.5-4B drafts questions and options. blink scores options without generating text.
API: See the API tab to use TypeSafe clients with a local blink server or call this Space via Gradio.
Code: GitHub · Docs: thegovind.github.io/blink
The first page offers task choices. More decisions, Ask, Playground, Results, and How it works are under Explore. Existing deep links still open their original panels.
Selectable text is extracted locally with PDFium. Image-only pages use local Tesseract English OCR. No external OCR or decision API is called. The model is the existing published checkpoint, not a new document-trained model.
The mixed sample contains eight pages and five documents. It includes adjacent invoices with different references and supporting appendices that belong with their parent. Both live models reproduced these illustrative labels and ranges in the recorded examples. These are three fictional demonstrations, not a benchmark or a production accuracy claim. Saved results are labeled; the run button always makes a new model call.
Scores are conditional on the offered categories, not calibrated accuracy estimates. Split category scores are means of scored page probabilities. Fixed review thresholds flag low category scores, Other, near-threshold boundaries, and category disagreement. Unreadable pages stay in the packet, are not scored, and always require review. Every successful split and export covers every original page exactly once. Filenames are retained in provenance but never sent to the model.
Demo limits: PDF only, 12 MiB, 12 pages, 24,000 extracted characters total and 8,000 per page. Splitting also caps repeated question context at 100,000 characters; a larger packet remains loaded so it can still be classified. Longer inputs are refused, never truncated. Files that need a password to open and Office files are not supported. There is no handwriting recognition. A PDF with no readable page text cannot be scored, but unreadable attachments in a readable packet are retained and flagged. Preparation has a 60-second limit. Split exports are unencrypted PDFs.
Model-only timing excludes PDF preparation and the device wait. Saved model times come from actual Space calls. Saved JSON retains preparation measured separately by the recording client, not by the hosted parser; this reference timing is omitted from the UI strip.
Privacy: Processing runs in this Space. Gradio retains temporary uploads and downloads for up to an hour. Do not upload confidential documents. Only the bundled fictional examples and their saved model outputs are published.
The dedicated Gradio endpoint is /v1_document, with a PDF upload, task, category rules JSON, and model. The API tab has a complete gradio_client example. The existing /v1_systemone text API is unchanged.
| Decision Index 0.1 (archived) | Index |
|---|---|
| blink-27b | 63.44 |
| Jev 1.13.0 | 59.51 |
| blink-mimo-9b | 56.53 |
| blink-4b | 52.12 |
These are local runs with the official kit's scorer, not leaderboard submissions. The full suite picked the 27B finalist, so its full-suite score is post-selection. The 4B was fixed before its full run. blink-27b trained on the public train splits of ContractNLI, iSarcasmEval and VAST (all of Language), plus Amazon ESCI and Humicroedit. Set Language to Jev's score and its index would be 60.44 vs Jev's 59.51. That's arithmetic, not an ablation.
| JevBench public-item development proxy | Score |
|---|---|
| blink-4b | 76.5 |
| JevK5 v0.2.0 | 76.1 |
JevBench figures are public-item development proxies, not official scores or predictions. Held-out, judge and sealed items need the maintainer's run; no official score, rank or parity is claimed.
| Held-out tasks (equal-task mean accuracy) | Accuracy | 95% CI |
|---|---|---|
| blink-27b | 78.3% | 76.6–80.0 |
| blink-mimo-9b | 73.5% | 71.7–75.2 |
| blink-4b | 68.5% | 66.7–70.4 |
Eight public tasks, 250 items each, never used for training or model selection.
| Type | Input | Answer |
|---|---|---|
choice | Up to 255 options | A probability per option and the top choice |
noul | Yes/no question | Probability of yes |
score | 2–10 ordered levels | Probabilities and expected level |
Supervised fine-tuning with LoRA r16 on attention, DeltaNet, and MLP projections. Embeddings, norms, and heads stay frozen.
The model reads option letters directly. Details: blink-4b and blink-27b model cards.
blink.py uses the evaluation prompt and option-letter readout.
The probabilities are conditional on the offered options, not certified chances of being right. Temperature is 1.0, not fitted.
Inputs are capped at 131,072 tokens per question (longest evaluated prompt: 37,906). Longer inputs are refused, not truncated. Models generate no text, explanations, or tool calls. Text in a state can still sway an answer.
Weights are for non-commercial research and evaluation; the app code is Apache-2.0.
Label a PDF, separate a packet, or choose the next action. Blink gives a probability for every offered option. It does not generate text.
Live models: blink-4b (Qwen3.5-4B text) and blink-mimo-9b (MiMo-V2.6-Distill-Qwen-9B). blink-27b is in Results.
Documents tab: Blink 9B labels complete PDFs or finds the separate documents in a packet. Inspect every original page, edit category rules, review uncertain decisions, and download result JSON and split PDFs. English scan OCR runs in this Space before Blink reads the text. An optional 4B comparison uses the same prepared text and rules.
Computer use tab: blink works through ten original apps from numbered screenshots, one step at a time. No model finds the boxes: each app's page lists its clickable elements in the browser (canvas apps report their own hit regions), and the harness numbers them on the screenshot. How one step works follows a recorded step from the raw screen to blink's decision, and every step of a run shows exactly what blink was sent. Screen click runs blink-mimo-9b live on a screenshot of your own, with boxes you draw or a numbered grid.
Ask tab: Qwen/Qwen3.5-4B drafts questions and options. blink scores options without generating text.
API: See the API tab to use TypeSafe clients with a local blink server or call this Space via Gradio.
Code: GitHub · Docs: thegovind.github.io/blink
The first page offers task choices. More decisions, Ask, Playground, Results, and How it works are under Explore. Existing deep links still open their original panels.
Selectable text is extracted locally with PDFium. Image-only pages use local Tesseract English OCR. No external OCR or decision API is called. The model is the existing published checkpoint, not a new document-trained model.
The mixed sample contains eight pages and five documents. It includes adjacent invoices with different references and supporting appendices that belong with their parent. Both live models reproduced these illustrative labels and ranges in the recorded examples. These are three fictional demonstrations, not a benchmark or a production accuracy claim. Saved results are labeled; the run button always makes a new model call.
Scores are conditional on the offered categories, not calibrated accuracy estimates. Split category scores are means of scored page probabilities. Fixed review thresholds flag low category scores, Other, near-threshold boundaries, and category disagreement. Unreadable pages stay in the packet, are not scored, and always require review. Every successful split and export covers every original page exactly once. Filenames are retained in provenance but never sent to the model.
Demo limits: PDF only, 12 MiB, 12 pages, 24,000 extracted characters total and 8,000 per page. Splitting also caps repeated question context at 100,000 characters; a larger packet remains loaded so it can still be classified. Longer inputs are refused, never truncated. Files that need a password to open and Office files are not supported. There is no handwriting recognition. A PDF with no readable page text cannot be scored, but unreadable attachments in a readable packet are retained and flagged. Preparation has a 60-second limit. Split exports are unencrypted PDFs.
Model-only timing excludes PDF preparation and the device wait. Saved model times come from actual Space calls. Saved JSON retains preparation measured separately by the recording client, not by the hosted parser; this reference timing is omitted from the UI strip.
Privacy: Processing runs in this Space. Gradio retains temporary uploads and downloads for up to an hour. Do not upload confidential documents. Only the bundled fictional examples and their saved model outputs are published.
The dedicated Gradio endpoint is /v1_document, with a PDF upload, task, category rules JSON, and model. The API tab has a complete gradio_client example. The existing /v1_systemone text API is unchanged.
| Decision Index 0.1 (archived) | Index |
|---|---|
| blink-27b | 63.44 |
| Jev 1.13.0 | 59.51 |
| blink-mimo-9b | 56.53 |
| blink-4b | 52.12 |
These are local runs with the official kit's scorer, not leaderboard submissions. The full suite picked the 27B finalist, so its full-suite score is post-selection. The 4B was fixed before its full run. blink-27b trained on the public train splits of ContractNLI, iSarcasmEval and VAST (all of Language), plus Amazon ESCI and Humicroedit. Set Language to Jev's score and its index would be 60.44 vs Jev's 59.51. That's arithmetic, not an ablation.
| JevBench public-item development proxy | Score |
|---|---|
| blink-4b | 76.5 |
| JevK5 v0.2.0 | 76.1 |
JevBench figures are public-item development proxies, not official scores or predictions. Held-out, judge and sealed items need the maintainer's run; no official score, rank or parity is claimed.
| Held-out tasks (equal-task mean accuracy) | Accuracy | 95% CI |
|---|---|---|
| blink-27b | 78.3% | 76.6–80.0 |
| blink-mimo-9b | 73.5% | 71.7–75.2 |
| blink-4b | 68.5% | 66.7–70.4 |
Eight public tasks, 250 items each, never used for training or model selection.
| Type | Input | Answer |
|---|---|---|
choice | Up to 255 options | A probability per option and the top choice |
noul | Yes/no question | Probability of yes |
score | 2–10 ordered levels | Probabilities and expected level |
Supervised fine-tuning with LoRA r16 on attention, DeltaNet, and MLP projections. Embeddings, norms, and heads stay frozen.
The model reads option letters directly. Details: blink-4b and blink-27b model cards.
blink.py uses the evaluation prompt and option-letter readout.
The probabilities are conditional on the offered options, not certified chances of being right. Temperature is 1.0, not fitted.
Inputs are capped at 131,072 tokens per question (longest evaluated prompt: 37,906). Longer inputs are refused, not truncated. Models generate no text, explanations, or tool calls. Text in a state can still sway an answer.
Weights are for non-commercial research and evaluation; the app code is Apache-2.0.