/ Модель

Характеристики

Лицензия
CC BY 4.0
Опубликована
27 сен 2026

eeg-fm-masking_jepa_r9cm_L2

ЭмбеддингиТекст → embedding

Предварительно обученный энкодер JEPA извлекает признаки из многоканальной ЭЭГ для downstream-оценки и дообучения.

535скачиваний за 30 дней0лайковвеса обновлены29 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Это предварительно обученный энкодер ЭЭГ PierreGtch, опубликованный как одна из 58 моделей в исследовании «What masking geometry works best for EEG foundation models?». Он использует архитектуру JEPA: предиктор обучался предсказывать эмбеддинги замаскированных участков, сформированные EMA-учителем; в репозитории доступны веса энкодера, без предиктора и учителя. Вариант использует пространственный радиус маскирования 9 см и временную длину 2 патча — конфигурацию, рекомендованную авторами статьи.

Модель предназначена для извлечения признаков из многоканальных сигналов ЭЭГ и последующего использования в оценке или дообучении под downstream-задачи. Требуются данные с частотой 200 Гц, в вольтах, с трёхмерными координатами каждого электрода; обработчик сам масштабирует и ограничивает сигнал. Модель допускает разные наборы каналов. README приводит результаты оценки замороженного энкодера на наборах OpenEEGBench. Веса распространяются по лицензии CC BY 4.0.

Сценарии применения

  • извлечение признаков из записей ЭЭГ
  • подготовка эмбеддингов ЭЭГ для классификации
  • оценка нейроинтерфейсов на наборах OpenEEGBench
  • дообучение энкодера для задач анализа мозговых сигналов

Ограничения

Для входа требуются сигналы с частотой 200 Гц, единицы вольты и трёхмерные координаты всех каналов; предварительно стандартизировать данные не следует. Репозиторий содержит только энкодер, а не предиктор JEPA и EMA-учителя.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

eeg-fm-masking_jepa_r9cm_L2

Pretrained EEG encoder from the paper What masking geometry works best for EEG foundation models? (arXiv:2609.33487 · website · code · all 58 models).

It is one of 58 encoders trained under an identical recipe where only the masking geometry changes: 5 spatial radii × 6 temporal lengths × 2 frameworks (the r = all, L = 33 cell, which would mask the whole window, does not exist). This model is a JEPA (joint-embedding predictive architecture): a predictor maps the encoder's context to the embeddings an EMA teacher produces for the masked patches (no variance/covariance regulariser).

FrameworkJEPA
Mask spatial radius r9 cm
Mask temporal length L2 patches
Masker parameter pct_unmasked0.45
Checkpointend of epoch 10 of 10 (the one evaluated in the paper); epochs 1–9 in epoch_01/ … epoch_09/
Encoder parameters12.69 M
Training runtl2ef402

This is the masking geometry recommended by the paper (r = 9 cm, L = 2).

What is in this repo

  • model.safetensors: the encoder only (patch tokeniser feature_encoder.* + transformer model.*), i.e. exactly the tensors loaded for the downstream evaluation of the paper. The JEPA predictor and the EMA teacher are not included; for JEPA the published weights are the student encoder, as evaluated in the paper.
  • epoch_01/ … epoch_09/: model.safetensors of the intermediate checkpoints (end of epochs 1 to 9 of the same run), with the same tensors and key names; they use the same config.json.
  • config.json: the keyword arguments of ContextualEncoderBenchmarkWrapper (architecture + input scaling). Pass it unchanged as model_kwargs.
  • metadata.json: masking parameters, training-run id, checkpoint epoch/step.

Input requirements

  • Sampling rate: 200 Hz. The signal is cut into 1 s patches (200 samples, 20-sample overlap).
  • Units: volts. The wrapper multiplies by factor = 1e+06 and applies per-window median_std_clip scaling (clip at σ = 15) itself; do not standardise the data beforehand.
  • Channel positions in metres (MNE info["chs"][i]["loc"][:3]). The model is montage-agnostic: any number and set of channels works, as long as every channel has a 3D position.

Usage

Install the code: pip install git+https://github.com/PierreGtch/eeg-fm-masking.

Loading the model

import json
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from eeg_fm_masking.oeb.wrapper import ContextualEncoderBenchmarkWrapper

repo = "PierreGtch/eeg-fm-masking_jepa_r9cm_L2"
config = json.load(open(hf_hub_download(repo, "config.json")))
model = ContextualEncoderBenchmarkWrapper(
    n_chans=n_chans, n_times=n_times, n_outputs=n_outputs, sfreq=200.0,
    chs_info=chs_info,  # MNE channel info (info["chs"]), positions in metres
    **config,
)
model.load_state_dict(load_file(hf_hub_download(repo, "model.safetensors")), strict=False)

strict=False only leaves out the dataset-dependent parts (channel-position buffer and classification head).

Evaluation / fine-tuning with OpenEEGBench

import json
from huggingface_hub import hf_hub_download
from open_eeg_bench.backbone import PretrainedBackbone

repo = "PierreGtch/eeg-fm-masking_jepa_r9cm_L2"
backbone = PretrainedBackbone(
    model_cls="eeg_fm_masking.oeb.wrapper.ContextualEncoderBenchmarkWrapper",
    hub_repo=repo,
    model_kwargs=json.load(open(hf_hub_download(repo, "config.json"))),
)

Intermediate checkpoints (epochs 1–9)

The end-of-epoch checkpoints of the same run are in the subfolders epoch_01/ … epoch_09/ (the final epoch 10 is the model.safetensors at the root). Build model as above, then:

epoch = 5  # 1 to 9
weights = load_file(hf_hub_download(repo, "model.safetensors", subfolder=f"epoch_{epoch:02d}"))
model.load_state_dict(weights, strict=False)

Downstream results (OpenEEGBench, frozen encoder + ridge probe)

Frozen encoder, ridge regression/classification on the flattened contextual features, 12 datasets × 5 seeds. Balanced accuracy for classification, R² for seed-vig.

DatasetMetricScore (mean ± sd)Seeds
arithmetic_zyma2019balanced acc.0.737 ± 0.0155
bcic2020-3balanced acc.0.277 ± 0.0085
bcic2abalanced acc.0.460 ± 0.0045
chbmitbalanced acc.0.908 ± 0.0175
facedbalanced acc.0.280 ± 0.0065
isruc-sleepbalanced acc.0.682 ± 0.0085
mdd_mumtaz2016balanced acc.0.858 ± 0.0095
physionetbalanced acc.0.533 ± 0.0075
seed-vbalanced acc.0.307 ± 0.0015
seed-vigR²-0.258 ± 0.0115
tuabbalanced acc.0.805 ± 0.0015
tuevbalanced acc.0.929 ± 0.0325

Training

  • Data: the openly-licensed subset of the REVE pre-training corpus (323 recordings), so that the weights can be redistributed.
  • Schedule: 10 epochs, 2 × H100, batch size 600 per GPU, learning rate 0.00024 (warm-up 3080 steps, final 1e-06), weight decay 0.01.

License and citation

Weights released under CC-BY-4.0; code under MIT (GitHub). If you use these models, please cite the paper:

@misc{guetschel2026maskinggeometryworksbest,
      title={What masking geometry works best for EEG foundation models?},
      author={Pierre Guetschel and Bruno Aristimunha and Yassine El Ouahidi and Arnaud Delorme and Thomas Moreau and Michael Tangermann},
      year={2026},
      eprint={2609.33487},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/2609.33487},
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Архитектура ? неизвестна transformers в образе рантайма.

Ревизия весов
88877d4

0 моделей