BioAnalyst: A Foundation Model for Biodiversity
Paper • 2507.09080 • Published
Rollout-finetuned version of the BioAnalyst Foundation Model (BFM) Large (702M params) on BioCube monthly climate + biodiversity data using the paper's BFMRollout pipeline (arXiv:2507.09080v2, Section 3.2).
| Metric | Rollout FT | Pretrained | Paper |
|---|---|---|---|
| F1 (Eq.20) | 0.6446 | 0.6450 | 0.9964 |
| Sorensen (Eq.22) | 0.0112 | 0.0110 | 0.31 |
| Species MAE (norm) | 0.020769 | 0.0210 | 0.0836 |
import torch
from safetensors.torch import load_file
from bfm_model.bfm.model import BFMRollout
# 1. Build BFMRollout with VeRA
model = BFMRollout(
embed_dim=512, depth=10, patch_size=8,
swin_backbone_size="large", perceiver_latents=16100,
rollout_steps=1, finetune_mode="peft",
use_vera=True, peft_r=256, d_initial=0.1,
peft_mode="single", peft_steps=1,
# ... (see finetune_rollout_large.py for full config)
)
# 2. Load pretrained base weights
state = load_file("bfm-pretrain-large.safetensors", device="cpu")
model.load_state_dict(state, strict=False)
# 3. Load finetuned VeRA weights from Lightning checkpoint
ckpt = torch.load("epoch=036-val_loss=0.627335.ckpt", map_location="cpu")
model.load_state_dict(ckpt["state_dict"], strict=False)
model.eval()
epoch=036-val_loss=0.627335.ckpt - Best Lightning checkpoint (epoch 36)last.ckpt - Final checkpoint (epoch 49)bfm_rollout_eval_results.json - Full evaluation resultsfinetune_rollout_large.py - Finetuning scripteval_rollout_large.py - Evaluation script@article{foerster2025bfm,
title={A Foundation Model for Forecasting Biodiversity Dynamics},
author={Foerster et al.},
journal={arXiv preprint arXiv:2507.09080v2},
year={2025}
}