Instructions to use thirdExec/seisground-weights with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use thirdExec/seisground-weights with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
SeisGround — trained weights
Vision–language weights for seismic fault interpretation: a frozen seismic encoder measures fault geometry (count, location, dip, throw, per-fault mask); a language model then copies those measured numbers into tagged narration through a non-differentiable digit seam, so the text can only state values the vision reader actually measured.
Pipeline: frozen SFM-Base-512 encoder → DETR reader (48 queries, Hungarian, ∅) → digit-copy seam → Qwen2.5-1.5B LM narrator (LoRA).
⚠️ The encoder is NOT in this repo. These weights run on top of the third-party Seismic Foundation Model (ViT-B/16 @512), which we use frozen and unmodified. Download it from the authors: shenghanlin/SeismicFoundationModel (Sheng et al., arXiv:2309.02791) and place it at
hybrid/checkpoints/SFM-Base-512.pth.Code, scripts, and setup: github.com/Thirdbot/ModelV2 (see
SETUP.md).
What each file is — and which result it backs
The repo mirrors the code's hybrid/checkpoints/ tree, so hf download … --local-dir hybrid/checkpoints
reconstructs a runnable layout with no path surgery.
Main pipeline (synthetic training → deployable narration)
| File | What it is | Backs |
|---|---|---|
reader.pt |
Synthetic base reader — DETR set-prediction that measures fault count/location/dip/throw + per-fault mask. | Synthetic vision table (pooled IoU 0.230, det F1 0.433, class 0.93, dip 28.06° vs const 32.19°, throw 53.60 vs 56.23 ms) |
stage2_grounding.pt |
Grounding-stage LM adapter — teaches the narrator to read the digit seam. | (pipeline component) |
stage3_narrator.pt |
Deployed narrator (grounding+fuse LoRA) — free-generates tagged narration that copies the measured facts. | Faithfulness table (copy 0.77 GT-injected / 0.89 reader-piped; CHAIR$_I$ 0.185; dip-swap 16/16) |
stage3_answer.pt |
Answer-fold narrator variant (the </think>→<answer> fold). |
(ablation / alternate narration) |
stage1_e12dcce6ed/ |
Geology LoRA adapter — Qwen2.5-1.5B-Instruct, r16/α16, lr 2e-5, 4-bit, trained on GeoGPT-CoT-QA. Frozen thereafter; supplies the <think>/<answer> reasoning scaffold. |
Geology stage-1 |
Real-field A/B + ratio-selection track (ab_experiment/)
Real adapters (r32, base frozen, zero-init residual) trained on top of a fresh synthetic base.
See ab_experiment/PROVENANCE.md for the full identity config.
| File | What it is | Backs |
|---|---|---|
ab_experiment/reader_synth.pt |
Synthetic reader base for this track (the frozen substrate the real adapters sit on). | — |
ab_experiment/B_joint.pt |
DEPLOYED model. 1:1:1 joint round-robin real adapter with real dip/throw supervision (TRAIN_MEASURE=1, data-gated to Smeaheia). |
A/B table (B row) + all deployed inference |
ab_experiment/A_joint.pt |
Control — same 1:1:1, no real attribute supervision (TRAIN_MEASURE=0). Identical to B except the measurement heads never see real dip/throw. |
A/B table (A row) |
ab_experiment/ratio1.pt, ratio2.pt |
The two non-selected mixing ratios (4:3:3 and 8:1:1) from ratio selection. 1:1:1 won on held-out val (mean det F1 0.363 vs 0.333 vs 0.166) and became A/B. | Ratio-selection table |
ab_experiment/alone_cracks.pt, alone_smeaheia.pt |
Single-survey "alone" baselines (no joint mixing). | Zero-shot / alone / joint table |
If you release only a subset, keep the rows for the files you actually upload.
A_jointis the paper's control; deployment needs onlyB_joint(+reader,stage3_narrator, the geology adapter, and the SFM link).
How to use
# 1) get the weights (mirrors hybrid/checkpoints/)
hf download thirdExec/seisground-weights --local-dir hybrid/checkpoints
# 2) add the frozen SFM encoder (third-party — see the note above) → hybrid/checkpoints/SFM-Base-512.pth
# 3) run inference (from the ModelV2 repo)
DATASET=synthetic python -m hybrid.eval.inference # in-distribution
DATASET=thebe READER=hybrid/checkpoints/ab_experiment/B_joint.pt python -m hybrid.eval.inference # a real survey
IMAGE=path/to/section.png READER=hybrid/checkpoints/ab_experiment/B_joint.pt python -m hybrid.infer # your own image
The narrator defaults to stage3_narrator.pt; override with CKPT= / NARRATOR=.
Training data
| Dataset | Role | Source |
|---|---|---|
| Synthetic seismic VQA (1,261 scenes / 1,320 regions) | full supervision — masks, attributes, narration | thirdExec/synthetic-seismic-vlm |
| GeoGPT-CoT-QA | geology reasoning scaffold (stage 1) | GeoGPT-Research-Project/GeoGPT-CoT-QA |
| Thebe (37,796 patches) | real fault masks | Kaggle mycarta/thebe-fault-patches-256 / Harvard Dataverse DOI 10.7910/DVN/YBYGBK |
| CRACKS (397) | real fault masks | gOLIVES/CRACKS |
| Smeaheia (430, GN1101 3-D cube) | real masks + independent dip/throw GT | co2datashare.org |
Identity config (defines the numbers)
Encoder SFM-Base-512 frozen (d768/depth12/patch16/img512/tile512/grid32) · loss Focal-Tversky α0.4/β0.6/γ1.0, POS_WEIGHT_MAX 15, clDice 1.0 · N_QUERIES 48 · DET_TAU 0.1 · DET_THRESH 0.9 · DILATE_R 0 (pure masks, 16px floor) · geology LoRA r16/α16 lr2e-5 4-bit · reader lr1e-4 (encoder frozen) · grounding lr1e-4 · fold lr2e-5 · real adapter r32 lr1e-4 · ACTIVE_CLASSES=fault · TOTAL_STEPS 100000 (1 round-robin epoch) · single seed 42.
Trained on RTX 3090 Ti 24 GB / 62 GB RAM; Python 3.13, CUDA 12.8, torch 2.10, transformers 5.5, peft 0.19, trl 0.21. The method is VRAM-agnostic — only compute-layout knobs (batch, grad-ckpt, cache cap) change to fit smaller GPUs; the identity config, and therefore the result, does not move.
Provenance & honest limits
- Single run, seed pinned (
SEED=42in the training entry points) — not multi-seed averaged. Small-margin metrics (CRACKS det F1, dip parity, low-count Smeaheia) carry run variance; CUDA kernels are not bit-deterministic. - Masks are pure (DILATE_R 0). Segmentation numbers are at zero dilation; they are not comparable to any dilated (DILATE_R > 0) evaluation.
- Two Thebe builds are not comparable. These A/B weights use the 37,796-patch Kaggle build (pure masks). Do not compare their mask numbers to any older dilated-mask Thebe result.
- The narrator copies measured facts (digit seam); it does not regress numbers and cannot state a value the reader did not measure. Out-of-domain prompts are answered against the on-screen seismic scene, not as a general chatbot.
License
Weights released under CC-BY-4.0 (confirm/adjust before publishing). Derived from Qwen2.5-1.5B-Instruct (Apache-2.0) via LoRA; respect the upstream licenses of the SFM encoder and each training dataset. The SFM encoder itself is not redistributed here — obtain it from its original release.
Citation
If you use these weights, cite the paper (see the GitHub repo for the current reference) and the underlying assets: the SFM encoder (Sheng et al., 2023), GeoGPT-CoT-QA, Thebe, CRACKS, and Smeaheia.
- Downloads last month
- -