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-v6")
tokenizer = AutoTokenizer.from_pretrained("UniverseTBD/astrobridge-model-v6")
# 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: bf18d043bdcaa5d5
- quantization: None
- git_sha: a5fa267401ffe7e85cb2c0870f8bc3a642acc18e
- tier_histogram: {"single": 4120, "joint": 1318}
Eval (groundedness gate)
{
"per_modality": {
"image": {
"shuffle_test": {
"modality": "image",
"n": 68,
"mean_edit_distance": 364.3235294117647,
"null_result": false
},
"ablation_test": {
"modality": "image",
"n": 122,
"fraction_caption_changed": 1.0,
"null_result": false
}
},
"spectra": {
"shuffle_test": {
"modality": "spectra",
"n": 15,
"mean_edit_distance": 233.33333333333334,
"null_result": false
},
"ablation_test": {
"modality": "spectra",
"n": 54,
"fraction_caption_changed": 1.0,
"null_result": false
}
},
"lightcurve": {
"shuffle_test": {
"modality": "lightcurve",
"n": 4,
"mean_edit_distance": 291.5,
"null_result": false
},
"ablation_test": {
"modality": "lightcurve",
"n": 24,
"fraction_caption_changed": 1.0,
"null_result": false
}
}
}
}
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support