SAVRN
Search Contact SAVRN

Open-weight model · Video classification

vi-sign-language-videomae-base

by Star Duong star092304/vi-sign-language-videomae-base

This repository houses a fine-tuned VideoMAE (Base) model optimized for multi-class Vietnamese Sign Language Recognition (VSLR).

Parameters86M
Context
Weights1.0 GB
Licensemit
AccessOpen weights
Monthly Downloads2.9k

Runs On

What it takes to serve vi-sign-language-videomae-base (86M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.2 GB 0.2 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.1 GB 0.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.0 GB 0.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Sep 18, 2026.

Model Card

By Star Duong, published under mit, revision 9759fc78b5d6.

This repository houses a fine-tuned VideoMAE (Base) model optimized for multi-class Vietnamese Sign Language Recognition (VSLR). The model architecture adapts self-supervised video representations to accurately classify short video clips of sign gestures into distinct Vietnamese text labels. The model processes short video sequences by partitioning them into spatiotemporal patches, mapping sequential gestures (such as "Ăn", "Bệnh viện", "Xin lỗi") to their corresponding semantic classes. The training routine was monitored closely across key evaluation metrics to prevent overfitting while maximizing classification accuracy on the validation split. The plot below illustrates the progression…

Read Star Duong's full model card

Vietnamese Sign Language Recognition (VSLR) Model

This repository houses a fine-tuned VideoMAE (Base) model optimized for multi-class Vietnamese Sign Language Recognition (VSLR). The model architecture adapts self-supervised video representations to accurately classify short video clips of sign gestures into distinct Vietnamese text labels.


Model Description

The model processes short video sequences by partitioning them into spatiotemporal patches, mapping sequential gestures (such as "Ăn", "Bệnh viện", "Xin lỗi") to their corresponding semantic classes.


Training & Evaluation Visualizations

The training routine was monitored closely across key evaluation metrics to prevent overfitting while maximizing classification accuracy on the validation split.

1. Training and Validation Metrics

The plot below illustrates the progression of accuracy, precision, recall, and F1-score across successive training epochs.

2. Loss Curves

The loss progression shows stable convergence, highlighting the adaptation of downstream spatiotemporal features from the initial Kinetics-400 pretraining weights.


Inference & Usage

The following example is adapted from inference/inference_for_colab.ipynb and demonstrates how to run local inference using the fine-tuned VideoMAE model.

Prerequisites

pip install transformers torch decord huggingface-hub

Python Inference Example

import torch
import torch.nn as nn
import numpy as np
from transformers import VideoMAEImageProcessor, VideoMAEForVideoClassification
from decord import VideoReader, cpu
from huggingface_hub import hf_hub_download

MODEL_NAME = "star092304/vi-sign-language-videomae-base"
VIDEO_PATH = "path_to_a_test_sign_video.mp4"
NUM_FRAMES = 16
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"

processor = VideoMAEImageProcessor.from_pretrained(MODEL_NAME)
model = VideoMAEForVideoClassification.from_pretrained(
    MODEL_NAME,
    ignore_mismatched_sizes=True,
)

# Rebuild the sequential classifier head exactly as used in the original notebook.
in_features = model.classifier.in_features
NUM_CLASSES = model.config.num_labels
model.classifier = nn.Sequential(
    nn.LayerNorm(in_features),
    nn.Dropout(0.3),
    nn.Linear(in_features, NUM_CLASSES),
)

seq_ckpt_path = hf_hub_download(
    repo_id=MODEL_NAME,
    filename="classifier_sequential.pth",
)
seq_sd = torch.load(seq_ckpt_path, map_location="cpu", weights_only=True)
model.load_state_dict(seq_sd, strict=False)

model = model.to(DEVICE)
model.eval()


def load_video(video_path: str, num_frames: int = 16) -> list:
    vr = VideoReader(video_path, ctx=cpu(0))
    total = len(vr)
    indices = np.linspace(0, total - 1, num_frames).astype(int)
    frames = vr.get_batch(indices).asnumpy()
    return list(frames)

frames = load_video(VIDEO_PATH, num_frames=NUM_FRAMES)
inputs = processor(frames, return_tensors="pt")
inputs = {k: v.to(DEVICE) for k, v in inputs.items()}

with torch.no_grad():
    outputs = model(**inputs)

logits = outputs.logits
pred_id = logits.argmax(-1).item()
pred_label = model.config.id2label[pred_id]
probs = torch.softmax(logits, dim=-1)[0]

print(f"Predicted class : {pred_label}")
print(f"Class ID        : {pred_id}")
print(f"Confidence      : {probs[pred_id].item():.4f}")

print("\nTop-5 predictions:")
for rank, idx in enumerate(torch.argsort(probs, descending=True)[:5], 1):
    idx = idx.item()
    print(f"  {rank}. [{idx:3d}] {model.config.id2label[idx]:<30s} {probs[idx].item():.4f}")

Acknowledgments

  • Dataset source: The star092304/ViSignLanguage-Video collection, originally hosted via the PTIT AI Challenge platform.
  • Pretrained Weights: Multimedia Computing Group, Nanjing University (MCG-NJU).

Configuration

Architecture
VideoMAEForVideoClassification
Layers
12
Hidden size
768
Feed-forward size
3,072
Attention heads
12
Model type
videomae

Identity and Version

Repository
star092304/vi-sign-language-videomae-base
Publisher
Star Duong
Task
Video classification
Modality
Video
Library
transformers
Parameters
86M parameters
Languages
vi
Revision
9759fc78b5d69625317bb658b4104040f9427fa3
First published
2026-05-31
Last updated
2026-05-31

Files and Weights

14 files, 1.0 GB in total. The weights are 3 files totalling 1.0 GB in pth, safetensors.

Weights3 files · 1.0 GB
Configuration2 files · 6.3 KB
Documentation1 file · 4.9 KB
Other7 files · 282.1 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
classifier_sequential.pthWeights345.3 MB 139dcb459071
model.safetensorsWeights345.2 MB c845a9922dc1
videomae_best_model.pthWeights345.3 MB 050f2154d641
config.jsonConfiguration5.9 KB
preprocessor_config.jsonConfiguration415 B
README.mdDocumentation4.9 KB
inference/inference_for_colab.ipynbOther30.0 KB
label_mapping.pklOther1.3 KB d57950c25dcf
src/pipeline_VideoMAE.ipynbOther82.0 KB
test/cv_submission.csvOther60.4 KB
test/public_test.csvOther34.4 KB
training_plots/loss.pngOther32.9 KB
training_plots/metrics.pngOther41.1 KB
.gitattributesRepository1.5 KB

License and Download

License
mit
Access
Open weights, no gate
Download size
1.0 GB
Download from Star Duong

Released by Star Duong through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published1.0 GB
16-bit0.2 GB
8-bit0.1 GB
4-bit0.0 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About vi-sign-language-videomae-base

How much GPU memory does vi-sign-language-videomae-base need?

About 0.2 GB at 16-bit and 0.1 GB at 4-bit: the weights (86M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run vi-sign-language-videomae-base on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use vi-sign-language-videomae-base commercially?

Yes. vi-sign-language-videomae-base is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.

Similar Models

Model · Video classification

videomae-base-finetuned-ucf101-subset

Hon Nguyen

This model is a fine-tuned version of MCG-NJU/videomae-base on an unknown dataset. It achieves the following results on the evaluation set: The following hyperparameters were used during training: - learningrate: 5e-05 - trainbatchsize: 8 - evalbatchsize: 8 - lrschedulertype: linear - trainingsteps: 370 - Transformers 5.16.1 - Pytorch 2.14.0+cu126 - Datasets 5.0.1 - Tokenizers 0.23.2

Open weights cc-by-nc-4.0 86M parameters transformers

Model · Video classification

finetuned-ucf101-subset

Hon Nguyen

This model is a fine-tuned version of MCG-NJU/videomae-base on an unknown dataset. It achieves the following results on the evaluation set: The following hyperparameters were used during training: - learningrate: 5e-05 - trainbatchsize: 8 - evalbatchsize: 8 - lrschedulertype: linear - trainingsteps: 370 - Transformers 5.16.1 - Pytorch 2.11.0+cu128 - Datasets 5.0.1 - Tokenizers 0.23.1

Open weights cc-by-nc-4.0 86M parameters transformers

Model · Video classification

videomae-violence-detector

Oleg Radzhabov

This model is a fine-tuned version of MCG-NJU/videomae-base for binary violence classification (violent / non-violent). It builds on Nikeytas/videomae-crime-detector-production-v1, which was itself fine-tuned from videomae-base on a subset of UCF Crime. Starting from that checkpoint, this model was further fine-tuned on the Bus Violence Dataset to close the domain gap to public-transport surveillance footage. - UCF Crime (jinmang2/ucfcrime) — inherited from the base checkpoint - Bus Violence Dataset (Zenodo) — real moving-bus footage, binary violent / non-violent labels, used for domain-specific fine-tuning Evaluated on a held-out Bus Violence Dataset test split (n = 280). The base…

Open weights mit 86M parameters

This model is a fine-tuned version of MCG-NJU/videomae-base-finetuned-kinetics on an unknown dataset. It achieves the following results on the evaluation set: The following hyperparameters were used during training: - learningrate: 5e-05 - trainbatchsize: 16 - evalbatchsize: 16 - lrschedulertype: linear - lrschedulerwarmupratio: 0.1 - trainingsteps: 348 - Transformers 4.49.0 - Pytorch 2.6.0+cu126 - Datasets 3.3.2 - Tokenizers 0.21.0

Open weights cc-by-nc-4.0 86M parameters transformers

Model · Video classification

VideoMAEv2-Base

OpenGVLab

VideoMAEv2-Base model pre-trained for 800 epochs in a self-supervised way on UnlabeldHybrid-1M dataset. It was introduced in the paper [[CVPR23]VideoMAE V2: Scaling Video Masked Autoencoders with Dual Masking](https://arxiv.org/abs/2203.12602) by Wang et al. and first released in GitHub. You can use the raw model for video feature extraction. Here is how to use this model to extract a video feature

Open weights cc-by-nc-4.0 86M parameters

VideoMAE model pre-trained for 1600 epochs in a self-supervised way and fine-tuned in a supervised way on Kinetics-400. It was introduced in the paper VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training by Tong et al. and first released in this repository. Disclaimer: The team releasing VideoMAE did not write a model card for this model so this model card has been written by the Hugging Face team. VideoMAE is an extension of Masked Autoencoders (MAE) to video. The architecture of the model is very similar to that of a standard Vision Transformer (ViT), with a decoder on top for predicting pixel values for masked patches. Videos are presented to…

Open weights cc-by-nc-4.0 87M parameters transformers