NuTonic/brief-composer-sft-v1
BriefComposer SFT Multi-image analytical brief rows composed from completed FireWatch, OceanScout, LandShift, and FloodPulse dataset folders (metadata/ + images/). Each sample stitches 1–4 images and metadata-derived headlines into one executive-style assistant reply. Record counts (this build) Split JSONL lines train 6307 validation 851 test 842 total 8000 Inputs Source roots: one or more --source-root directories (each must… See the full description on the dataset page: https://huggingface.co/datasets/NuTonic/brief-composer-sft-v1.
BriefComposer SFT
Multi-image analytical brief rows composed from completed FireWatch, OceanScout, LandShift, and FloodPulse dataset folders (metadata/ + images/). Each sample stitches 1–4 images and metadata-derived headlines into one executive-style assistant reply.
Record counts (this build)
Inputs
- Source roots: one or more
--source-rootdirectories (each must containimages/andmetadata/from the profile builders). - CLI:
build_lfm_vl_brief_sft.py --samples Ncontrols JSONL line count. Run after the four temporal profile datasets are built so metadata and PNGs exist.
Dataset layout
data/train.jsonl,data/validation.jsonl,data/test.jsonl— VLM SFT samples (messageslist with system/user/assistant content; images referenced by relative paths under this folder).images/— PNG chips (typically mixed profile images per row) consumed by the JSONL.metadata/— one JSON sidecar per tile/sample (scene ids, bbox, optionalregions, profile tag).
Splits
Train / validation / test use a stable hash of the synthetic sample id (brief_######) assigned at compose time.
Regenerating locally
Run from the nutonic repository root (paths relative to that root):
python data/scripts/build_lfm_vl_brief_sft.py <see --help for required args>Upload to the Hub (requires a token with write access to the target dataset repo):
export HF_TOKEN="hf_..." # or HUGGING_FACE_HUB_TOKEN
python data/scripts/build_lfm_vl_brief_sft.py ... --upload-repo NuTonic/brief-composer-sft-v1 --hf-token "$HF_TOKEN"Skip upload with --no-upload. Resume partial STAC downloads with --skip-existing.
Orchestrator (all PRO profiles)
python data/scripts/run_pro_sft_orchestrator.py \
--events-per-profile 0 \
--hf-org YOUR_ORG \
--upload-repo-firewatch YOUR_ORG/firewatch-sft-v1 \
--hf-token "$HF_TOKEN"Use --upload-repo-<profile> per profile, or --hf-org to upload to YOUR_ORG/<default-repo-suffix> for each builder. See run_pro_sft_orchestrator.py --help.
Environment
STAC: scenes are resolved from Element84 Earth Search (sentinel-2-l2a by default). No Earth Engine or Mapbox keys are required for this pipeline.
Hub target for this artifact
Dataset repo id: NuTonic/brief-composer-sft-v1
Card URL: https://huggingface.co/datasets/NuTonic/brief-composer-sft-v1
Limitations
- Optical-only Sentinel-2; cloud cover and revisit gaps can drop events or leave empty change masks.
- Detections and captions are heuristic (indices / thresholds), not operational truth labels.
- Assistant text follows conservative wording (candidates, confidence qualifiers).
Hub layout (sharded)
This snapshot was processed with python data/scripts/shard_lfm_vl_dataset_for_hub.py so that `images/, mapbox_stills/, overlays/, and metadata/ use at most **8000** files per leaf directory (Hub git limit: 10k files per directory). JSONL paths may include sNNNNN/` shard segments where needed.
