--- license: apache-2.0 base_model: InternScience/Agents-A1-4B library_name: mlx tags: - mlx - vision - agentic pipeline_tag: image-text-to-text --- # ToPo-ToPo/Agents-A1-4B-mlx-4bit MLX **4bit** conversion of [`InternScience/Agents-A1-4B`](https://huggingface.co/InternScience/Agents-A1-4B) for Apple Silicon (mlx-vlm). `Agents-A1-4B` is a `Qwen3_5ForConditionalGeneration` (Qwen3.5-VL family) vision-language model. The text tower uses a hybrid of linear attention and full attention (`full_attention_interval: 4`) with interleaved MRoPE. ## Provenance (self-converted from official weights) - Source: [`InternScience/Agents-A1-4B`](https://huggingface.co/InternScience/Agents-A1-4B) (license: apache-2.0) - Tool: `mlx-vlm 0.6.6` — `mlx_vlm.convert --hf-path InternScience/Agents-A1-4B --mlx-path . -q --q-bits 4 --q-group-size 64` - Effective: **5.347 bits/weight** - Size on disk: 2.8 GB — peak memory 4.2 GB, ~165 tok/s generation (M-series, short prompt) Effective bit width is higher than nominal because embeddings and parts of the vision tower are kept at higher precision (mlx default behaviour). ## Validation Checked after conversion: correctly described a synthetic test image (red square / blue circle, both shape and colour), and answered a text-only arithmetic prompt correctly. This is a smoke test, not a benchmark — no eval suite was run. ## Usage ```python from mlx_vlm import load, generate model, processor = load("ToPo-ToPo/Agents-A1-4B-mlx-4bit") ``` CLI: ```bash mlx_vlm.generate --model ToPo-ToPo/Agents-A1-4B-mlx-4bit \ --image path/to/image.png --prompt "Describe this image." --max-tokens 200 ``` ## Requirements `mlx-vlm >= 0.6.6`. Earlier versions do not implement the `qwen3_5` architecture and cannot load or convert this model. ## License Apache-2.0, inherited from the base model. Weights were converted/quantized to MLX format; no other modification to the weights. ## Note on config files `tokenizer_config.json` and `processor_config.json` were re-serialized by `transformers 5.14.1` during conversion, so they differ textually from upstream: the chat template now lives in `chat_template.jinja` (byte-identical to upstream), special tokens moved into `model_specific_special_tokens`, and the image processor uses `min_pixels`/`max_pixels` instead of `size`/`resample`. The tokenizer was verified functionally identical to upstream (identical vocab, and identical encode/decode on a spot-check set). Users on `transformers 4.x` should prefer the upstream config files.