|
Download README.md from yang-ai-lab/OpenSLA: direct link, hf CLI and curl.
- Browser
- Download file 6.13 kB
-
https://huggingface.co/yang-ai-lab/OpenSLA/resolve/main/README.md
- Command line
-
hf download hf://yang-ai-lab/OpenSLA/README.md
-
curl -L -o README.md https://huggingface.co/yang-ai-lab/OpenSLA/resolve/main/README.md
6.13 kB
| license: mit | |
| tags: | |
| - sensor-language-action | |
| - physiological-signals | |
| - clinical | |
| - multimodal | |
| - time-series | |
| pipeline_tag: question-answering | |
| library_name: pytorch | |
| language: | |
| - en | |
| base_model: | |
| - Qwen/Qwen3.5-2B | |
| # Sensor-Language-Action Models | |
| [](https://arxiv.org/abs/2610.08244) | |
| [](https://yang-ai-lab.github.io/OpenSLA/) | |
| [](https://github.com/yang-ai-lab/OpenSLA) | |
| [](https://github.com/yang-ai-lab/Sensor-Language-Action-Model/blob/main/LICENSE) | |
| [](#-installation) | |
| ## 🔥 News | |
| - **[2026-10-06]** Our paper is available on [arXiv](https://arxiv.org/abs/2610.08244). | |
| - **[2026-10-06]** Code released on [GitHub](https://github.com/yang-ai-lab/OpenSLA), and model released on [HuggingFace](https://huggingface.co/yang-ai-lab/OpenSLA). | |
| - **[2026-10-06]** [Project website](https://yang-ai-lab.github.io/OpenSLA/) is live! | |
| ## 📖 Introduction | |
| **OpenSLA** is a new family of models - *Sensor-Langauge-Action* (SLA) models. It takes a multi-channel sensor history together with language context and | |
| produces a structured action prediction and a sensor-state caption. We release | |
| two variants: | |
| - **OpenSLA-B**: sensor tokens are projected and prepended to the language | |
| prompt as a flat token prefix. | |
| - **OpenSLA-H**: builds on B with a hierarchical sensor encoder that compresses | |
| the signal into local, per-channel, and global memory tokens. | |
| ## 📖 Table of Contents | |
| 1. [Installation](#-installation) | |
| 2. [Quick Start](#-quick-start) | |
| 3. [Pretrained Weights](#-pretrained-weights) | |
| 4. [Usage](#-usage) | |
| 5. [Datasets](#-datasets) | |
| 6. [Citation](#-citation) | |
| ## 💿 Installation | |
| ```bash | |
| git clone https://github.com/yang-ai-lab/Sensor-Language-Action-Model.git | |
| cd Sensor-Language-Action-Model | |
| pip install -r requirements.txt | |
| ``` | |
| ### Dependencies | |
| - Python >= 3.10 | |
| - PyTorch >= 2.5 | |
| - Transformers >= 5.8.1 (for the Qwen3.5 backbone) | |
| - PEFT >= 0.12 | |
| ## 🚀 Quick Start | |
| `demo.ipynb` loads a checkpoint, builds an input batch, and runs prediction. | |
| The same flow in Python: | |
| ```python | |
| import torch | |
| from opensla import OpenSLA, SensorBatch | |
| model = OpenSLA.from_checkpoint( | |
| "pretrained_weights/opensla_h_clinical.pt", domain="clinical", | |
| dino_checkpoint="pretrained_weights/waveform_encoder.ckpt", | |
| numeric_config="pretrained_weights/numeric_config.json", | |
| action_group_types="pretrained_weights/action_group_types.json", | |
| ) | |
| batch = torch.load("data/preprocessed_batch.pt", weights_only=True) | |
| predictions = model.predict(batch["input_text"], SensorBatch(**batch["sensors"])) | |
| ``` | |
| ## 📦 Pretrained Weights | |
| | Model | Domain | Files | | |
| |-------|--------|-------| | |
| | OpenSLA-H | clinical | `opensla_h_clinical.pt`, `waveform_encoder.ckpt`, `numeric_config.json`, `action_group_types.json` | | |
| Download the files from this repository and put them under `pretrained_weights/` | |
| in the code repository. | |
| ## 👩💻 Usage | |
| ### Input Format | |
| The model takes preprocessed signals as a `.pt` dictionary with `domain`, | |
| `input_text` (one text context per sample), and `sensors`. The sensors are: | |
| - **Waveform**: `waveform` of shape `[B, M, C, T]`, with `M` one-minute slots, | |
| `C` physical channels, and `T = 7500` samples per slot (60 s at 125 Hz), plus | |
| a boolean `waveform_channel_mask` (`[B, M, C]`) marking observed | |
| channel-minutes and int64 `waveform_modality_ids` (`[B, C]`) indexing | |
| `opensla.WAVEFORM_MODALITIES[domain]`. | |
| - **Numeric**: observed events as parallel `[B, E]` tensors (`values`, | |
| `rel_time_min` in minutes before the decision, `measure_ids`, `source_ids`, | |
| `event_mask`), plus per-measure summary features (`summary_features`, | |
| `summary_measure_ids`). | |
| ### Command line | |
| Point `configs/template.json` at your weights and input batch, then: | |
| ```bash | |
| opensla --config configs/template.json --dry-run # print the resolved config | |
| opensla --config configs/template.json # write outputs/predictions.jsonl | |
| ``` | |
| On Slurm: | |
| ```bash | |
| sbatch --account=YOUR_ACCOUNT --partition=YOUR_PARTITION scripts/run_template.sbatch --config configs/template.json | |
| ``` | |
| ## 📊 Datasets | |
| The models are trained and evaluated on six datasets from three healthcare | |
| settings, with an additional MIMIC-IV held out as an external clinical cohort. All of them are | |
| publicly available and can be accessed through the following links. | |
| | Dataset | Domain | Sensors | Source | | |
| |---------|--------|---------|--------| | |
| | MC-MED | Clinical | ECG, plethysmography, respiration, arterial pressure; vital signs, labs, ventilator and other charted measurements | [PhysioNet](https://physionet.org/content/mc-med/1.0.0/) | | |
| | MIMIC-III | Clinical | same as MC-MED | [PhysioNet](https://physionet.org/content/mimiciii/1.4/) | | |
| | MIMIC-IV | Clinical, external evaluation only | waveform-linked subset | [PhysioNet](https://physionet.org/content/mimiciv/2.0/), [waveforms](https://physionet.org/content/mimic4wdb/0.1.0/) | | |
| | MOVER | Operating room | ECG, plethysmography, arterial/central venous pressure, capnography, airway pressure, EEG; vital signs, hemodynamics, ventilation gases, labs | [UCI MOVER](https://mover.ics.uci.edu/) | | |
| | VitalDB | Operating room | same as MOVER | [vitaldb.net](https://vitaldb.net/dataset/), [PhysioNet](https://physionet.org/content/vitaldb/1.0.0/) | | |
| | MetaboNet | CGM | glucose trace; basal insulin delivery | [metabo-net.org](https://metabo-net.org/) | | |
| | PEDAP | CGM | glucose trace; basal insulin delivery | [Jaeb Center](https://public.jaeb.org/datasets/diabetes) | | |
| ## 📝 Citation | |
| If you use this code or models in your research, please cite our paper: | |
| ```bibtex | |
| @misc{xu2026opensla, | |
| title = {Sensor-Language-Action Models}, | |
| author = {Xu, Yuekai and Shuai, Zitao and Yang, Yuzhe}, | |
| journal = {arXiv preprint}, | |
| year = {2026} | |
| } | |
| ``` | |
| ## Acknowledgments | |
| The waveform encoder adapts from the sensor encoder from | |
| [OSF](https://github.com/yang-ai-lab/OSF-Open-Sleep-FM) (MIT License). |