Restore prior JEVision files and card graphics
Browse files- README.md +12 -0
- examples/long-context/m1-77k-text-input.json +30 -0
- examples/long-context/m1-77k-text-response-summary.json +36 -0
- jevvision_manifest.json +7 -0
- run_jevvision.py +1 -1
- runtime/kev/jevvision.py +1 -0
- text/jevbench-m3/adapter_config.json +56 -0
- text/jevbench-m3/adapter_model.safetensors +3 -0
- text/jevbench-m3/head.pt +3 -0
README.md
CHANGED
|
@@ -33,6 +33,10 @@ The release combines a trained text adapter, a separately trained visual sidecar
|
|
| 33 |
| Request envelope | Configured for up to 80,000 processed input tokens |
|
| 34 |
| Packaging | Adapters, heads, and a runnable local server; base weights download separately |
|
| 35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
The serving route processed 76,999 text tokens and 76,998 image-plus-text tokens in recorded acceptance checks. The text check used the included KEV-0.8B option; the image check used the visual sidecar. These checks establish request handling near 77K, while long-context answer quality remains to be evaluated.
|
| 37 |
|
| 38 |
## See the visual route
|
|
@@ -83,6 +87,8 @@ python run_jevvision.py --port 8009
|
|
| 83 |
|
| 84 |
The server exposes `POST /v1/systemone` on localhost. To select the bundled KEV text checkpoint for requests without images, add `--text-adapter kev-0.8b`. Image-bearing requests automatically use the visual sidecar.
|
| 85 |
|
|
|
|
|
|
|
| 86 |
### Call from Python
|
| 87 |
|
| 88 |
```python
|
|
@@ -119,6 +125,8 @@ python examples/long-context/run_demo.py --endpoint http://127.0.0.1:8009
|
|
| 119 |
|
| 120 |
The runner writes its generated state and saves the server's response only after checking that `usage.input_tokens` is at least 75,000. A [separate recorded text-route acceptance summary](examples/long-context/recorded-77k-text-response-summary.json) documents a 76,999-token request on the bundled KEV-0.8B option; it is a request-handling check, not a result for the default JEVision text adapter.
|
| 121 |
|
|
|
|
|
|
|
| 122 |
## Architecture and training
|
| 123 |
|
| 124 |
| Included component | Purpose |
|
|
@@ -136,6 +144,10 @@ The default text adapter was fitted to public JevBench decision examples, starti
|
|
| 136 |
|
| 137 |
JEVision currently has functional checks for typed responses, image routing, and long request acceptance, plus the recorded real-photo example above. Independent, broad image accuracy and long-context answer quality have not yet been measured. The 80,000-token value is a service limit, and requests beyond it are rejected instead of silently truncated. No comparative accuracy, latency, or cost claim is made here.
|
| 138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 139 |
The [manifest](jevvision_manifest.json) identifies the components, their source revisions, hashes, and serving limit. Users should assess the model on their own images and decision tasks before relying on its outputs.
|
| 140 |
|
| 141 |
## License
|
|
|
|
| 33 |
| Request envelope | Configured for up to 80,000 processed input tokens |
|
| 34 |
| Packaging | Adapters, heads, and a runnable local server; base weights download separately |
|
| 35 |
|
| 36 |
+

|
| 37 |
+
|
| 38 |
+
This earlier comparison graphic shows the input routes and context limits alongside text-only development results. Its public-panel score uses examples seen during training.
|
| 39 |
+
|
| 40 |
The serving route processed 76,999 text tokens and 76,998 image-plus-text tokens in recorded acceptance checks. The text check used the included KEV-0.8B option; the image check used the visual sidecar. These checks establish request handling near 77K, while long-context answer quality remains to be evaluated.
|
| 41 |
|
| 42 |
## See the visual route
|
|
|
|
| 87 |
|
| 88 |
The server exposes `POST /v1/systemone` on localhost. To select the bundled KEV text checkpoint for requests without images, add `--text-adapter kev-0.8b`. Image-bearing requests automatically use the visual sidecar.
|
| 89 |
|
| 90 |
+
The earlier `--text-adapter jevbench-m3` selection is also available for existing scripts and points to the same text weights as the default route.
|
| 91 |
+
|
| 92 |
### Call from Python
|
| 93 |
|
| 94 |
```python
|
|
|
|
| 125 |
|
| 126 |
The runner writes its generated state and saves the server's response only after checking that `usage.input_tokens` is at least 75,000. A [separate recorded text-route acceptance summary](examples/long-context/recorded-77k-text-response-summary.json) documents a 76,999-token request on the bundled KEV-0.8B option; it is a request-handling check, not a result for the default JEVision text adapter.
|
| 127 |
|
| 128 |
+
The original archived [request recipe](examples/long-context/m1-77k-text-input.json) and [response summary](examples/long-context/m1-77k-text-response-summary.json) are preserved at their earlier paths.
|
| 129 |
+
|
| 130 |
## Architecture and training
|
| 131 |
|
| 132 |
| Included component | Purpose |
|
|
|
|
| 144 |
|
| 145 |
JEVision currently has functional checks for typed responses, image routing, and long request acceptance, plus the recorded real-photo example above. Independent, broad image accuracy and long-context answer quality have not yet been measured. The 80,000-token value is a service limit, and requests beyond it are rejected instead of silently truncated. No comparative accuracy, latency, or cost claim is made here.
|
| 146 |
|
| 147 |
+

|
| 148 |
+
|
| 149 |
+
This preserved results graphic separates the in-sample public panel from a small grouped holdout. It does not evaluate the visual route.
|
| 150 |
+
|
| 151 |
The [manifest](jevvision_manifest.json) identifies the components, their source revisions, hashes, and serving limit. Users should assess the model on their own images and decision tasks before relying on its outputs.
|
| 152 |
|
| 153 |
## License
|
examples/long-context/m1-77k-text-input.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"source": "M1 context acceptance, private version 3",
|
| 3 |
+
"model": "kev-latest",
|
| 4 |
+
"text_adapter": {
|
| 5 |
+
"repo_id": "jaredpalmer/kev-0.8b",
|
| 6 |
+
"revision": "54f4f8777356cd5bbbb6c6919c657f26e6f2f6d8"
|
| 7 |
+
},
|
| 8 |
+
"base_model": {
|
| 9 |
+
"repo_id": "Qwen/Qwen3.5-0.8B-Base",
|
| 10 |
+
"revision": "dc7cdfe2ee4154fa7e30f5b51ca41bfa40174e68"
|
| 11 |
+
},
|
| 12 |
+
"text_only": true,
|
| 13 |
+
"reported_input_tokens": 76999,
|
| 14 |
+
"state_recipe": {
|
| 15 |
+
"prefix": "M1 context acceptance. ",
|
| 16 |
+
"repeated_text": "The stored memo remained unchanged. ",
|
| 17 |
+
"repeat_count": 12827,
|
| 18 |
+
"suffix": " END-OF-CONTEXT marker."
|
| 19 |
+
},
|
| 20 |
+
"questions": {
|
| 21 |
+
"m1": {
|
| 22 |
+
"type": "choice",
|
| 23 |
+
"instructions": "Which note is being referred to?",
|
| 24 |
+
"criteria": {
|
| 25 |
+
"memo": "The stored memo",
|
| 26 |
+
"other": "A different item"
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
}
|
examples/long-context/m1-77k-text-response-summary.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"summary_type": "recorded response summary; not the raw API body",
|
| 3 |
+
"experiment": "M1 context acceptance, private version 3",
|
| 4 |
+
"source_report": {
|
| 5 |
+
"filename": "report.json",
|
| 6 |
+
"sha256": "f0fde673452b0d4a1329fc328e045afeb5223023e7ea3f2d16c53d3ce8d716b9"
|
| 7 |
+
},
|
| 8 |
+
"request": {
|
| 9 |
+
"model": "kev-latest",
|
| 10 |
+
"question_id": "m1",
|
| 11 |
+
"text_adapter": "jaredpalmer/kev-0.8b@54f4f8777356cd5bbbb6c6919c657f26e6f2f6d8",
|
| 12 |
+
"base_model_revision": "dc7cdfe2ee4154fa7e30f5b51ca41bfa40174e68",
|
| 13 |
+
"text_only": true
|
| 14 |
+
},
|
| 15 |
+
"observed": {
|
| 16 |
+
"http_status": 200,
|
| 17 |
+
"answer_type": "choice",
|
| 18 |
+
"choice": "memo",
|
| 19 |
+
"input_tokens": 76999,
|
| 20 |
+
"output_tokens": 44,
|
| 21 |
+
"prefill_chunks": 602,
|
| 22 |
+
"latency_ms": 313746.3,
|
| 23 |
+
"verified_response_fields": [
|
| 24 |
+
"type",
|
| 25 |
+
"choice",
|
| 26 |
+
"confidence",
|
| 27 |
+
"probabilities"
|
| 28 |
+
]
|
| 29 |
+
},
|
| 30 |
+
"not_retained": [
|
| 31 |
+
"numeric confidence value",
|
| 32 |
+
"per-option probability values",
|
| 33 |
+
"original raw API response body"
|
| 34 |
+
],
|
| 35 |
+
"scope": "Long-context request acceptance and response-schema smoke; not a general long-context accuracy evaluation."
|
| 36 |
+
}
|
jevvision_manifest.json
CHANGED
|
@@ -13,6 +13,10 @@
|
|
| 13 |
"path": "text/jevvision-text",
|
| 14 |
"role": "default typed-decision text branch"
|
| 15 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
"kev-0.8b": {
|
| 17 |
"path": "text/kev-0.8b",
|
| 18 |
"role": "pinned KEV text baseline",
|
|
@@ -37,6 +41,9 @@
|
|
| 37 |
"text/jevvision-text/adapter_model.safetensors": "0f71c01d01cc9a82648417f3b036e329e0fe27dd44cd6847fa141b85518e1022",
|
| 38 |
"text/jevvision-text/adapter_config.json": "917dbb4e84a81737b187d98633afe8139eded84eabe83cfcf8c9e210a3001615",
|
| 39 |
"text/jevvision-text/head.pt": "b3ac9f2e10a903bfec76020ee4a730921c22531267de7493aff57b80c741e906",
|
|
|
|
|
|
|
|
|
|
| 40 |
"text/kev-0.8b/adapter_model.safetensors": "c81d5716f0af7622d8d2b97013c333d48263ca01113f9a7cf4526e96f6ac0b26",
|
| 41 |
"text/kev-0.8b/adapter_config.json": "748acb2cda88454cb1ba69d745ba336f3fcb5486eac349e90960c8b8d8d3e854",
|
| 42 |
"text/kev-0.8b/head.pt": "39f4343ccccc65e583bbfff0de0e11bfedb849fcfaaf94b50ac4f2b73bc79c65",
|
|
|
|
| 13 |
"path": "text/jevvision-text",
|
| 14 |
"role": "default typed-decision text branch"
|
| 15 |
},
|
| 16 |
+
"jevbench-m3": {
|
| 17 |
+
"path": "text/jevbench-m3",
|
| 18 |
+
"role": "compatibility path for the default text branch"
|
| 19 |
+
},
|
| 20 |
"kev-0.8b": {
|
| 21 |
"path": "text/kev-0.8b",
|
| 22 |
"role": "pinned KEV text baseline",
|
|
|
|
| 41 |
"text/jevvision-text/adapter_model.safetensors": "0f71c01d01cc9a82648417f3b036e329e0fe27dd44cd6847fa141b85518e1022",
|
| 42 |
"text/jevvision-text/adapter_config.json": "917dbb4e84a81737b187d98633afe8139eded84eabe83cfcf8c9e210a3001615",
|
| 43 |
"text/jevvision-text/head.pt": "b3ac9f2e10a903bfec76020ee4a730921c22531267de7493aff57b80c741e906",
|
| 44 |
+
"text/jevbench-m3/adapter_model.safetensors": "0f71c01d01cc9a82648417f3b036e329e0fe27dd44cd6847fa141b85518e1022",
|
| 45 |
+
"text/jevbench-m3/adapter_config.json": "917dbb4e84a81737b187d98633afe8139eded84eabe83cfcf8c9e210a3001615",
|
| 46 |
+
"text/jevbench-m3/head.pt": "b3ac9f2e10a903bfec76020ee4a730921c22531267de7493aff57b80c741e906",
|
| 47 |
"text/kev-0.8b/adapter_model.safetensors": "c81d5716f0af7622d8d2b97013c333d48263ca01113f9a7cf4526e96f6ac0b26",
|
| 48 |
"text/kev-0.8b/adapter_config.json": "748acb2cda88454cb1ba69d745ba336f3fcb5486eac349e90960c8b8d8d3e854",
|
| 49 |
"text/kev-0.8b/head.pt": "39f4343ccccc65e583bbfff0de0e11bfedb849fcfaaf94b50ac4f2b73bc79c65",
|
run_jevvision.py
CHANGED
|
@@ -10,7 +10,7 @@ from pathlib import Path
|
|
| 10 |
def main() -> None:
|
| 11 |
root = Path(__file__).resolve().parent
|
| 12 |
parser = argparse.ArgumentParser()
|
| 13 |
-
parser.add_argument("--text-adapter", choices=("jevvision-text", "kev-0.8b"), default="jevvision-text")
|
| 14 |
parser.add_argument("--port", type=int, default=8009)
|
| 15 |
args = parser.parse_args()
|
| 16 |
|
|
|
|
| 10 |
def main() -> None:
|
| 11 |
root = Path(__file__).resolve().parent
|
| 12 |
parser = argparse.ArgumentParser()
|
| 13 |
+
parser.add_argument("--text-adapter", choices=("jevvision-text", "jevbench-m3", "kev-0.8b"), default="jevvision-text")
|
| 14 |
parser.add_argument("--port", type=int, default=8009)
|
| 15 |
args = parser.parse_args()
|
| 16 |
|
runtime/kev/jevvision.py
CHANGED
|
@@ -22,6 +22,7 @@ from .serve import SERVE_CONTEXT_TOKENS, Server
|
|
| 22 |
|
| 23 |
TEXT_ADAPTERS = {
|
| 24 |
"jevvision-text": "text/jevvision-text",
|
|
|
|
| 25 |
"kev-0.8b": "text/kev-0.8b",
|
| 26 |
}
|
| 27 |
MAX_IMAGE_BYTES = 10 * 1024 * 1024
|
|
|
|
| 22 |
|
| 23 |
TEXT_ADAPTERS = {
|
| 24 |
"jevvision-text": "text/jevvision-text",
|
| 25 |
+
"jevbench-m3": "text/jevbench-m3",
|
| 26 |
"kev-0.8b": "text/kev-0.8b",
|
| 27 |
}
|
| 28 |
MAX_IMAGE_BYTES = 10 * 1024 * 1024
|
text/jevbench-m3/adapter_config.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"alora_invocation_tokens": null,
|
| 3 |
+
"alpha_pattern": {},
|
| 4 |
+
"arrow_config": null,
|
| 5 |
+
"auto_mapping": null,
|
| 6 |
+
"base_model_name_or_path": "Qwen/Qwen3.5-0.8B-Base",
|
| 7 |
+
"bias": "none",
|
| 8 |
+
"corda_config": null,
|
| 9 |
+
"ensure_weight_tying": false,
|
| 10 |
+
"eva_config": null,
|
| 11 |
+
"exclude_modules": null,
|
| 12 |
+
"fan_in_fan_out": false,
|
| 13 |
+
"inference_mode": true,
|
| 14 |
+
"init_lora_weights": true,
|
| 15 |
+
"kasa_config": null,
|
| 16 |
+
"layer_replication": null,
|
| 17 |
+
"layers_pattern": null,
|
| 18 |
+
"layers_to_transform": null,
|
| 19 |
+
"loftq_config": {},
|
| 20 |
+
"lora_alpha": 32,
|
| 21 |
+
"lora_bias": false,
|
| 22 |
+
"lora_dropout": 0.05,
|
| 23 |
+
"lora_ga_config": null,
|
| 24 |
+
"megatron_config": null,
|
| 25 |
+
"megatron_core": "megatron.core",
|
| 26 |
+
"modules_to_save": null,
|
| 27 |
+
"monteclora_config": null,
|
| 28 |
+
"peft_type": "LORA",
|
| 29 |
+
"peft_version": "0.21.0",
|
| 30 |
+
"qalora_group_size": 16,
|
| 31 |
+
"r": 16,
|
| 32 |
+
"rank_pattern": {},
|
| 33 |
+
"revision": null,
|
| 34 |
+
"target_modules": [
|
| 35 |
+
"q_proj",
|
| 36 |
+
"v_proj",
|
| 37 |
+
"gate_proj",
|
| 38 |
+
"in_proj_a",
|
| 39 |
+
"k_proj",
|
| 40 |
+
"up_proj",
|
| 41 |
+
"out_proj",
|
| 42 |
+
"down_proj",
|
| 43 |
+
"in_proj_b",
|
| 44 |
+
"in_proj_z",
|
| 45 |
+
"o_proj",
|
| 46 |
+
"in_proj_qkv"
|
| 47 |
+
],
|
| 48 |
+
"target_parameters": null,
|
| 49 |
+
"task_type": "FEATURE_EXTRACTION",
|
| 50 |
+
"trainable_token_indices": null,
|
| 51 |
+
"use_bdlora": null,
|
| 52 |
+
"use_dora": false,
|
| 53 |
+
"use_qalora": false,
|
| 54 |
+
"use_rslora": false,
|
| 55 |
+
"velora_config": null
|
| 56 |
+
}
|
text/jevbench-m3/adapter_model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0f71c01d01cc9a82648417f3b036e329e0fe27dd44cd6847fa141b85518e1022
|
| 3 |
+
size 43338624
|
text/jevbench-m3/head.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b3ac9f2e10a903bfec76020ee4a730921c22531267de7493aff57b80c741e906
|
| 3 |
+
size 2103039
|