pub fn glm_vision_enabled() -> boolExpand description
Is GLM-5.3’s vision tower enabled for this process?
Default OFF. Binding the tower is a MEMORY decision, not a correctness
one: it is 1.05 GiB per rank, and the measurement that lived in
Glm5NextWeightLoader::binds_vision_encoder says K=3 at 32 K needs
13.58 GiB against 12.07 GiB free — the tower is exactly the difference
between --speculative --num-drafts 2 fitting and not. The certified
text recipe must keep the footprint it was certified with, so images are
something an operator asks for, never something a port turns on for them.
THREE sites read this and they must agree, which is why it is one function:
the config parser (so config.vision stays None and an image request is
refused at the API edge with the existing “no vision config” error), the
loader’s binds_vision_encoder (so the checkpoint loader withholds
model.visual.* instead of uploading it), and load_vision_encoder via
config.vision. Off, every one of them behaves exactly as it did before
the tower was ported.