Ovis-U1-3B trained visual components

Lossless extraction from ATH-MaaS/Ovis-U1-3B: 750 entries, 6,806,129,596 original tensor payload bytes. Names, dtypes and trained values are preserved across three selected safetensors parts. The index lists only included visual entries.

Includes visual_tokenizer.* (AIMv2, trained 65,532-way head and normalization), vte.* (65,536×2,048 visual embedding table), and visual_generator.* (text refiner, six double-stream and twelve single-stream Yak flow blocks, full RGB VAE encoder/decoder). The Qwen3 language model is excluded.

This architecture has separate understanding and generation branches. The understanding tokenizer yields soft token distributions, padded by four zero indicator entries, then projects through the visual embedding table. It is not an image VQ codebook/decoder pair. Generation operates on 4-channel VAE latents packed into 16-channel 2×2 tokens, conditioned on language hidden states of width 4,096. VAE scaling is exactly 0.13025.

Load

Install requirements.txt. Original native classes and configs are bundled; no extra checkpoint is downloaded by the component loader.

from component import load_model
model = load_model('.')
# Normalized BCHW, height/width divisible by 28; this convenience method does not resize.
visual_tokens = model.encode(normalized_rgb)
language_inputs = model.vte(visual_tokens)
# RGB values in [-1, 1], VAE branch:
latent = model.encode_latent(rgb)
reconstruction = model.decode_latent(latent)
packed = model.pack_latent(latent)

The official tokenizer's preprocess_image is retained for real-image dynamic resizing and packing. preprocessor_config.json preserves its normalization and pixel limits. The convenience encode accepts already-normalized inputs and preserves the original merge-group order. Native encode selects the final transformer hidden-state tuple entry as upstream does, rather than substituting the post-trunk normalized output.

Validation and portability

Run python validate.py. validation.json reports exact executed checks, tensor hashes and limitations. Tests cover all 750 source tensor hashes and strict loading, packed multi-image rectangular inputs, softmax mass and indicator padding, distribution/discrete embedding paths, VAE mode reconstruction, latent packing inverse, full-depth Yak predictions and its image-conditioning branch.

CPU verification uses segmented PyTorch SDPA and split-half rotary reference implementations. They are checked against explicit attention/rotation equations. Supported CUDA tensors retain FlashAttention through an optional import. CPU tests do not establish bitwise CUDA parity. Full text-to-image generation still needs the excluded Qwen3 model and official prompt/conditioning/sampling pipeline; synthetic fixtures are not downstream quality scores.

Weights and Ovis-U1 code follow the source Apache 2.0 declaration (LICENSE, SOURCE_MODEL_CARD.md). AIM_SOURCE_LICENSE retains the inherited Apple AIMv2 source terms. Original native code headers and attribution are kept. code_provenance.json records pinned upstream files and the small portability changes.

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
2B params
Tensor type
BF16
·
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for gatilin/ovis_u1_3b_visual_components

Finetuned
(2)
this model

Collection including gatilin/ovis_u1_3b_visual_components