Model Card for REVE-small

REVE (project page) is a transformer-based foundation model for EEG signal processing, designed to adapt to any electrode configuration and a wide range of EEG tasks. REVE-small is a 4-layer version of REVE-base, with the same layer design.

Model Details

Architecture

REVE-small REVE-base
Transformer layers 4 22
Width / heads / head dim 512 / 8 / 64 512 / 8 / 64
Feed-forward GEGLU, ratio 2.66 GEGLU, ratio 2.66
Parameters 12.7M 69.2M

It uses the same patching (200 samples with a 20-sample overlap, at 200 Hz) and the same 4D positional encoding as REVE-base, so it works with the REVE position bank.

Training

REVE-small was pretrained with the REVE masked-autoencoding objective. This checkpoint was saved at epoch 15 of a 200-epoch schedule, so it is an early checkpoint, not a fully trained model. Only the encoder is released; the MAE decoder and the optimizer state are not.

Developed by the BRAIN team and UdeM

Funded by: This research was supported by the French National Research Agency (ANR) through its AI@IMT program and grant ANR-24-CE23-7365, as well as by a grant from the Brittany region. Further support was provided by a Discovery Grant from the Natural Sciences and Engineering Research Council of Canada (NSERC), by funding from the Canada Research Chairs program and the Fonds de recherche du Québec – Nature et technologies (FRQ-NT). This work was granted access to the HPC resources of IDRIS under the allocation 2024-AD011015237R1 made by GENCI, as well as HPC provided by Digital Alliance Canada.

Model Sources

Uses

Extract embeddings with REVE-small and the position bank:

from transformers import AutoModel

pos_bank = AutoModel.from_pretrained("brain-bzh/reve-positions", trust_remote_code=True)
model = AutoModel.from_pretrained("tkhieu/reve-small", trust_remote_code=True)

eeg_data = ...  # EEG data as a torch Tensor (batch_size, channels, time_points), sampled at 200 Hz

electrode_names = [...]  # electrode names of the channels in eeg_data
positions = pos_bank(electrode_names)  # (channels, 3)
positions = positions.expand(eeg_data.size(0), -1, -1)  # (batch_size, channels, 3)

output = model(eeg_data, positions)  # (batch_size, channels, patches, 512)

License and Responsible Use

REVE-small is available for research, commercial, educational, and personal use under the REVE Responsible Use License v1.0. By downloading, using, modifying, redistributing, or deploying REVE-small or a derivative model, you agree to comply with the terms of the LICENSE.

Downloads last month
-
Safetensors
Model size
12.7M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for tkhieu/reve-small