/ Модель

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

Параметры
24,8 млн
Лицензия
Apache 2.0
Архитектура
rad-jepa-3d · dense
Опубликована
8 авг 2026

Rad-Jepa-3D

Эмбеддинги изображенийИзображение → embedding3 профессии

Rad-JEPA 3D извлекает векторные представления из объёмных КТ-снимков для поиска похожих исследований и медицинского анализа.

24скачиваний за 30 дней1лайквеса обновлены21 авг 2026

Бенчмарки

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

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

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

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

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

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

Rad-JEPA 3D — модель для получения признаковых представлений объёмных КТ-снимков, разработанная авторами проекта Rad-JEPA 3D. Энкодер на основе 12 блоков H-Mamba сочетает ветвь Mamba для межсрезовой непрерывности и grouped-query attention для пространственного контекста; маршрутизатор объединяет их признаки. Модель обучена самонаблюдаемым методом V-JEPA с регуляризацией HSOR на примерно 120 тысячах КТ-объёмов. В метаданных указаны 24,8 млн параметров; README отдельно описывает энкодер размером 18,3 млн параметров и MLLM-компонент с Qwen3-4B и LoRA-адаптерами.

Модель предназначена для извлечения векторов признаков из трёхмерных КТ-объёмов, в том числе для поиска похожих исследований и последующего использования в задачах медицинского анализа. Энкодер принимает объём формы (1, 32, 256, 256) с float32 значениями, нормированными в диапазон [0, 1], и выдаёт до 1024 патчевых векторов размерности 384 либо один глобальный вектор той же размерности. Данные карточки указывают английский язык, но модель работает с изображениями, а не с текстовыми запросами. Лицензия — Apache-2.0.

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

  • извлечение эмбеддингов из трёхмерных КТ-объёмов
  • поиск похожих КТ-исследований по векторным представлениям
  • подготовка признаков КТ для классификаторов и других downstream-моделей

Ограничения

Описанный формат входа требует КТ-объёма формы (1, 32, 256, 256) с нормализацией в диапазон [0, 1]; для других размеров и видов изображений применимость не заявлена. Заявленные результаты MLLM и spatial reasoning относятся к отдельному компоненту с Qwen3-4B и сами по себе не характеризуют качество извлечения признаков энкодером.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

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

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

Открыть на Hugging Face

Rad-JEPA 3D: Radiology Joint-Embedding Predictive Model for 3D Computed Tomography

arXiv GitHub

Overview

Rad-JEPA 3D is a joint-embedding predictive framework that learns volumetric CT representations by predicting the latent features of a complete scan from a masked view. At its core is a hybrid H-Mamba encoder that fuses a Mamba state-space branch (inter-slice continuity) with a grouped-query attention branch (cross-plane spatial context), combined through a lightweight per-token router. Hidden States Orthogonal Regularization (HSOR) aligns student-teacher hidden states and reduces feature redundancy across encoder layers.

Pretrained on ~120,000 CT scans, Rad-JEPA 3D achieves state-of-the-art results with only 4.0B total parameters: competitive closed-ended VQA and the best average spatial-reasoning score on the Spatial-Med benchmark.

Model Checkpoints

FileDescriptionSizeParams
config.jsonModel configuration (architecture + checkpoint paths)——
encoder/encoder.ptH-Mamba encoder (hybrid Mamba + GQA, 12 layers, 384-d)149M18.3M
mllms_qwen3/stage2_best.ptFull MLLM (vision encoder + projector + Qwen3-4B LoRA adapters)615M4.0B

Encoder Details

  • Architecture: 12 H-Mamba blocks with per-layer routing between Mamba SSM and grouped-query attention (GQA) with 3D RoPE
  • Input: 3D CT volume (1, 32, 256, 256) — patchified via Conv3d(8,16,16) into 1024 tokens at 384-d
  • Output: 1024 patch tokens at 384-d; global-pool to a single 384-d embedding
  • Pretraining: V-JEPA objective (L1 loss in representation space) + HSOR on ~120k CT volumes
  • Scan order: Raster (not Morton)
  • Epoch: 252

MLLM Details

  • Vision encoder: Same H-Mamba encoder as above (LoRA-adapted during stage 2)
  • Projector: 2-layer MLP (384 → 1024 → 2560)
  • LLM: Qwen3-4B with LoRA adapters (r=16, alpha=32)
  • Training: Stage 1 (projector + CLIP contrastive) → Stage 2 (vision + projector + LoRA)

Quick Start

Install the code and pull the weights from the Hub:

git clone https://github.com/huyquoctrinh/RadJepa.git
cd RadJepa/src
pip install huggingface_hub

Download the Weights

from huggingface_hub import snapshot_download

repo_dir = snapshot_download("huyquoctrinh/Rad-JEPA-3D")
# repo_dir now contains config.json, encoder/encoder.pt, mllms_qwen3/stage2_best.pt

Or fetch a single file:

from huggingface_hub import hf_hub_download

config_path  = hf_hub_download("huyquoctrinh/Rad-JEPA-3D", "config.json")
encoder_path = hf_hub_download("huyquoctrinh/Rad-JEPA-3D", "encoder/encoder.pt")

Load the Encoder

import os, torch
from load_checkpoint import load_encoder

enc, cfg, meta = load_encoder(
    os.path.join(repo_dir, "encoder/encoder.pt"),
    router_mode="layer",
)

# Encode a 3D CT volume
volume = torch.randn(1, 1, 32, 256, 256).cuda()  # or load a real .npy
with torch.no_grad():
    tokens = enc(volume, indices=None)       # (1, 1024, 384)
    embedding = tokens.mean(dim=1)           # (1, 384)

Load the MLLM

from load_checkpoint import load_mllm

model = load_mllm(
    os.path.join(repo_dir, "mllms_qwen3/stage2_best.pt"),
    config_overrides={
        "use_hybrid": True,
        "vision_use_morton": False,
        "vision_checkpoint": os.path.join(repo_dir, "encoder/encoder.pt"),
    },
)

volume = torch.randn(1, 1, 32, 256, 256).cuda()
answer = model.generate(volume, "What organ is shown in this CT scan?")
print(answer)

Extract Frozen Embeddings for kNN

from load_checkpoint import load_encoder, encoder_extract_fn

enc, cfg, meta = load_encoder(
    os.path.join(repo_dir, "encoder/encoder.pt"), router_mode="layer"
)
extract = encoder_extract_fn(enc, batch_size=32)

npy_paths = ["volume_001.npy", "volume_002.npy", ...]
embeddings = extract(npy_paths)  # (N, 384) float32

Input Format

Volumes should be (1, 32, 256, 256) float32 tensors normalized to [0, 1]. For M3D-Cap data this is per-volume min-max normalization. See src/infer/extract_m3d.py and src/infer/extract_inspect.py in the codebase for preprocessing scripts.

Citation

@article{trinh2025radjepa3d,
  title={Rad-JEPA 3D: Radiology Joint-Embedding Predictive Model for 3D Computed Tomography},
  author={Trinh, Quoc-Huy and Nguyen, Minh-Van and Bagci, Ulas},
  journal={arXiv preprint arXiv:2607.26196},
  year={2025}
}

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

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

GPU в ailist

Универсальный рантайм · image-feature-extraction

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

Архитектура rad-jepa-3d неизвестна transformers в образе рантайма.

Класс архитектуры
HMambaEncoder
Ревизия весов
6f292da

0 моделей