| { | |
| "artifact": "fusion-embedding-2-ember", | |
| "version": "0.1-preview", | |
| "pack": { | |
| "gate": "thermal", | |
| "rank": 384, | |
| "adapters": 28, | |
| "d_model": 2048, | |
| "parameters": 44154880, | |
| "dtype": "float32", | |
| "init": "zero-initialized up projection (identity at attach time)", | |
| "attach_point": "decoder layers (language_model.layers), forward hooks" | |
| }, | |
| "attaches_to": { | |
| "base": "Qwen/Qwen3-VL-Embedding-2B", | |
| "fe2": "EximiusLabs/fusion-embedding-2-2b-preview", | |
| "fe2_revision": "v0.2-preview", | |
| "note": "the decoder is byte-frozen and shared between the base and fusion-embedding-2, so the pack attaches to either" | |
| }, | |
| "readout": { | |
| "thermal_instruction": "Represent this thermal infrared image.", | |
| "doc_instruction": "Represent the user's input.", | |
| "chat_template": "<|im_start|>system\\n{instruction}<|im_end|>\\n<|im_start|>user\\n{input}<|im_end|>\\n<|im_start|>assistant\\n", | |
| "image_user_content": "<|vision_start|><|image_pad|><|vision_end|>", | |
| "pooling": "last non-pad token, L2-normalized", | |
| "thermal_input": "single-channel thermal replicated to 3 channels, vision path, max 1310720 pixels", | |
| "trained_logit_scale": 2.8418076038360596 | |
| }, | |
| "training": { | |
| "objective": "contrastive thermal->caption (InfoNCE, 1024 bank negatives)", | |
| "corpus": "IR-TD early access minus FLIR-signature images", | |
| "train_pairs": 61320, | |
| "steps": 3900, | |
| "batch": 16, | |
| "seed": 2 | |
| }, | |
| "provenance": { | |
| "flir_strip": { | |
| "rule": "size == 640x512", | |
| "excluded": 20964, | |
| "of": 84284, | |
| "list": "release_strip_640x512.json", | |
| "sha256": "65a870df5e4fe0008fd9bacd9fa81bd0c47f919779a28e398fea8d1bcabad09f" | |
| }, | |
| "llvip": "evaluation only", | |
| "dedup": "phash hamming<=4 vs LLVIP test: 0 hits" | |
| } | |
| } |