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-captioner-v3")
tokenizer = AutoTokenizer.from_pretrained("UniverseTBD/astrobridge-captioner-v3")
# 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: 1afc2d873b181f46
- quantization: None
- git_sha: 34eb36a39fcafb6bb09466184567cbbd55cf4422
- tier_histogram: {"single": 5564}
Eval (groundedness gate)
{
"per_modality": {
"image": {
"shuffle_test": {
"modality": "image",
"n": 29,
"mean_edit_distance": 470.44827586206895,
"null_result": false
},
"ablation_test": {
"modality": "image",
"n": 80,
"fraction_caption_changed": 1.0,
"null_result": false
}
},
"spectra": {
"shuffle_test": {
"modality": "spectra",
"n": 42,
"mean_edit_distance": 228.97619047619048,
"null_result": false
},
"ablation_test": {
"modality": "spectra",
"n": 92,
"fraction_caption_changed": 1.0,
"null_result": false
}
},
"lightcurve": {
"shuffle_test": {
"modality": "lightcurve",
"n": 6,
"mean_edit_distance": 218.83333333333334,
"null_result": false
},
"ablation_test": {
"modality": "lightcurve",
"n": 28,
"fraction_caption_changed": 1.0,
"null_result": false
}
}
}
}
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support