AstroBridge Captioner
n-modality (image + spectra) astronomy captioner. LoRA adapter + fusion stack trained on top of
a frozen Qwen/Qwen3.5-9B. The base model itself is NOT included here โ load it fresh from
Qwen/Qwen3.5-9B and apply this adapter on top.
How to load
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
base = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3.5-9B", dtype=torch.bfloat16, trust_remote_code=True
)
llm = PeftModel.from_pretrained(base, "UniverseTBD/astrobridge-model-v2")
tokenizer = AutoTokenizer.from_pretrained("UniverseTBD/astrobridge-model-v2")
# middle.pt (fusion stack: projectors/modality_identity/qformer/adapter) needs the captioner
# package's FusionStack class to reload โ see captioner/model/captioner.py and
# captioner/train/stage1.py's run_stage1 for how it's constructed and wired to the LLM.
Training info
- config_hash: a0591172a043ba43
- quantization: None
- git_sha: bd87e62bac3d3ecdcbe2d061a9ef0d562427a5f4
- tier_histogram: {"single": 5564}
Eval (groundedness gate)
{
"per_modality": {
"image": {
"shuffle_test": {
"modality": "image",
"n": 34,
"mean_edit_distance": 461.44117647058823,
"null_result": false
},
"ablation_test": {
"modality": "image",
"n": 86,
"fraction_caption_changed": 1.0,
"null_result": false
}
},
"spectra": {
"shuffle_test": {
"modality": "spectra",
"n": 28,
"mean_edit_distance": 237.64285714285714,
"null_result": false
},
"ablation_test": {
"modality": "spectra",
"n": 67,
"fraction_caption_changed": 1.0,
"null_result": false
}
},
"lightcurve": {
"shuffle_test": {
"modality": "lightcurve",
"n": 9,
"mean_edit_distance": 232.66666666666666,
"null_result": false
},
"ablation_test": {
"modality": "lightcurve",
"n": 47,
"fraction_caption_changed": 1.0,
"null_result": false
}
}
}
}
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support