SAVRN
Search Contact SAVRN

Open-weight model · Video classification

VJEPA2-ViTL-SSv2-CoreAI

by Daisuke Majima (MLBoy) mlboydaisuke/VJEPA2-ViTL-SSv2-CoreAI

Core AI is Apple's on-device ML runtime in iOS 27 / macOS 27 and the successor to Core ML: PyTorch models are exported with Apple's coreai-torch (LLMs: coreai.llm.export) into.aimodel bundles that run on the GPU or the Neural Engine, e.g.

Parameters
Context
Weights707.3 MB
Licensemit
AccessOpen weights
Monthly Downloads4.2k

Model Card

By Daisuke Majima (MLBoy), published under mit, revision dd923ed016a0.

Core AI is Apple's on-device ML runtime in iOS 27 / macOS 27 and the successor to Core ML: PyTorch models are exported with Apple's coreai-torch (LLMs: coreai.llm.export) into.aimodel bundles that run on the GPU or the Neural Engine, e.g. Qwen3-8B 4-bit decodes at 94 tok/s on an M4 Max GPU, MLX 90 under the same protocol (apple-silicon-llm-bench, macOS 27 beta 26A5353q, 2026-06-11). This model has no row on DeviceMark, the on-device LLM leaderboard. V-JEPA 2 (Meta AI) running natively on the Apple Core AI engine — the zoo's first world model: a self-supervised video encoder that learns by predicting in representation space (JEPA), here with the Something-Something v2 action head (174…

Read Daisuke Majima (MLBoy)'s full model card

Core AI is Apple's on-device ML runtime in iOS 27 / macOS 27 and the successor to Core ML: PyTorch models are exported with Apple's coreai-torch (LLMs: coreai.llm.export) into .aimodel bundles that run on the GPU or the Neural Engine, e.g. Qwen3-8B 4-bit decodes at 94 tok/s on an M4 Max GPU, MLX 90 under the same protocol (apple-silicon-llm-bench, macOS 27 beta 26A5353q, 2026-06-11).

This model has no row on DeviceMark, the on-device LLM leaderboard.

V-JEPA 2 (ViT-L, SSv2 action recognition) — Apple Core AI

V-JEPA 2 (Meta AI) running natively on the Apple Core AI engine — the zoo's first world model: a self-supervised video encoder that learns by predicting in representation space (JEPA), here with the Something-Something v2 action head (174 classes of physical interactions — put/lift/push/roll/cover/pretend…).

  • One bundle: ViT-L backbone (3D RoPE attention) + attentive pooler + classifier, ~375M params, fp16 ~675 MB.
  • I/O: pixel_values_videos [1,16,3,256,256] (16 frames, RGB 0..1, ImageNet mean/std) → logits [1,174] (labels.json).
  • Verified: engine vs PyTorch reference cosine 0.999996, top-5 identical; a synthetic motion probe (square moving up vs down) flips the predicted direction correctly.
  • Speed: ~150–180 ms per 16-frame clip on an M4 Max (GPU) — real-time video understanding.

Use it

One line — this model is the default behind the kit's task op (import CoreAIOps; no session, no model plumbing, downloads on first use):

let actions = try await CoreAI.recognizeAction(videoAt: videoURL)

Every op, one shape — Cookbook.

Run it (source) — the ActionCamera runner (live camera action recognition, one app for every video model in the catalog):

git clone https://github.com/john-rocky/coreai-kit
open coreai-kit/Examples/ActionCamera/ActionCamera.xcodeproj
# → Run, then pick "V-JEPA 2 ViT-L (SSv2)" in the model picker

# agents / headless (macOS):
cd coreai-kit/Examples/ActionCamera
swift run action-cli --model vjepa2-vitl-ssv2 --video sample.mp4

Build with it — complete; the glue is kit API, copy-paste runs:

import CoreAIKitVision

let recognizer = try await ActionRecognizer(catalog: "vjepa2-vitl-ssv2")
let actions = try await recognizer.classify(videoAt: videoURL, topK: 3)
// actions: ranked [Prediction] — .label ("Pushing [something] from left to right"),
// .probability; 174 SSv2 classes, fully on-device

The take-home is Examples/ActionCamera/Sources/QuickStart.swift — this exact code as one typed function, no UI; the CLI is an argument shell over it, and the GUI classifies a rolling 16-frame clip from CameraFeed. Live camera? Keep the last 16 CameraFeed frames and call classify(frames:) — other frame counts are uniformly resampled to 16. The bundled sample.mp4 is a synthetic clip (a hand pushing a block); point --video at real footage for real results.

Integration checklist

  • SPM: https://github.com/john-rocky/coreai-kit → product CoreAIKitVision
  • Info.plist: NSCameraUsageDescription — only for the live camera; the snippet needs none
  • Entitlements: none needed
  • First run downloads the model — 0.7 GB (Mac) / 0.7 GB (iPhone) — then it loads from the local cache (Application Support; progress via the downloadProgress callback)
  • Measure in Release — Debug is ~3× slower on per-token host work

Files

path what
macos/vjepa2_ssv2_fp16.aimodel fp16 bundle (macOS / JIT)
ios/vjepa2_ssv2_fp16.h18p.aimodelc iOS AOT bundle (iPhone, A18 Pro+ GPU)
macos/labels.json, ios/labels.json 174 SSv2 class names
macos/metadata.json I/O + preprocessing spec

Live demo app: coreai-video — camera → live top-3 actions. iPhone 17 Pro: ~0.34 s per 16-frame clip.

Preprocessing

Sample 16 frames uniformly from the clip, resize+center-crop to 256×256, scale to 0..1, normalize with ImageNet mean [0.485,0.456,0.406] / std [0.229,0.224,0.225], layout [1,16,3,256,256].

Credits


More models in this format: Core AI Model Zoo — 75 models, each with the recipe that produced it.

Want a different model on-device? Open a request — free, open weights only; the export and its measured numbers get published publicly.

Configuration

Model type
coreai-aimodel

Identity and Version

Repository
mlboydaisuke/VJEPA2-ViTL-SSv2-CoreAI
Publisher
Daisuke Majima (MLBoy)
Task
Video classification
Modality
Video
Library
coreai
Parameters
Not stated by the source
Languages
on-device
Revision
dd923ed016a08597f3cb87a04d0ce1b8583deb85
First published
2026-07-02
Last updated
2026-09-14

Files and Weights

18 files, 1.4 GB in total. The weights are 1 file totalling 707.3 MB in bin.

Weights1 file · 707.3 MB
Configuration7 files · 22.3 KB
Documentation1 file · 5.8 KB
Other8 files · 710.2 MB
Repository1 file · 2.1 KB
Every file
FileTypeSizeSHA-256
ios/vjepa2_ssv2_fp16.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/resources.binWeights707.3 MB f0e1fed5c835
config.jsonConfiguration307 B
ios/labels.jsonConfiguration9.9 KB
ios/vjepa2_ssv2_fp16.h18p.aimodelc/metadata.jsonConfiguration193 B
ios/vjepa2_ssv2_fp16.h18p.aimodelc/stats.jsonConfiguration1.3 KB
macos/labels.jsonConfiguration9.9 KB
macos/metadata.jsonConfiguration527 B
macos/vjepa2_ssv2_fp16.aimodel/metadata.jsonConfiguration105 B
README.mdDocumentation5.8 KB
ios/vjepa2_ssv2_fp16.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/manifest.plistOther46.7 KB
ios/vjepa2_ssv2_fp16.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/original_model_0.mpsgraphOther332.0 KB cc7e95905e4f
ios/vjepa2_ssv2_fp16.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/specialized_model_0.mpsgraphOther1.2 MB ac2886b1bf61
ios/vjepa2_ssv2_fp16.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/specialized_model_1.mpsgraphOther670.1 KB 0b4b4192fbd4
ios/vjepa2_ssv2_fp16.h18p.aimodelc/main-h18p.mlirbOther2.0 KB
ios/vjepa2_ssv2_fp16.h18p.aimodelc/main.hashOther32 B
macos/vjepa2_ssv2_fp16.aimodel/main.hashOther32 B
macos/vjepa2_ssv2_fp16.aimodel/main.mlirbOther708.0 MB b9291c41aaf2
.gitattributesRepository2.1 KB

License and Download

License
mit
Access
Open weights, no gate
Download size
707.3 MB
Download from Daisuke Majima (MLBoy)

Released by Daisuke Majima (MLBoy) through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published707.3 MB

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

Questions About VJEPA2-ViTL-SSv2-CoreAI

Can I use VJEPA2-ViTL-SSv2-CoreAI commercially?

Yes. VJEPA2-ViTL-SSv2-CoreAI 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

vivit-b-16x2-kinetics400

Google

ViViT model as introduced in the paper ViViT: A Video Vision Transformer by Arnab et al. and first released in this repository. Disclaimer: The team releasing ViViT did not write a model card for this model so this model card has been written by the Hugging Face team. ViViT is an extension of the Vision Transformer (ViT) to video. We refer to the paper for details. The model is mostly meant to intended to be fine-tuned on a downstream task, like video classification. See the model hub to look for fine-tuned versions on a task that interests you. For code examples, we refer to the documentation.

Open weights mit transformers

Model · Video classification

vivit-b-16x2

Google

ViViT model as introduced in the paper ViViT: A Video Vision Transformer by Arnab et al. and first released in this repository. Disclaimer: The team releasing ViViT did not write a model card for this model so this model card has been written by the Hugging Face team. ViViT is an extension of the Vision Transformer (ViT) to video. We refer to the paper for details. The model is mostly meant to intended to be fine-tuned on a downstream task, like video classification. See the model hub to look for fine-tuned versions on a task that interests you. For code examples, we refer to the documentation.

Open weights mit transformers

Model · Video classification

timesformer-base-finetuned-k600

AI at Meta

TimeSformer model pre-trained on Kinetics-600. It was introduced in the paper TimeSformer: Is Space-Time Attention All You Need for Video Understanding? by Tong et al. and first released in this repository. Disclaimer: The team releasing TimeSformer did not write a model card for this model so this model card has been written by fcakyon. You can use the raw model for video classification into one of the 600 possible Kinetics-600 labels. Here is how to use this model to classify a video: For more code examples, we refer to the documentation.

Open weights cc-by-nc-4.0 transformers

Model · Video classification

timesformer-base-finetuned-k400

AI at Meta

TimeSformer model pre-trained on Kinetics-400. It was introduced in the paper TimeSformer: Is Space-Time Attention All You Need for Video Understanding? by Tong et al. and first released in this repository. Disclaimer: The team releasing TimeSformer did not write a model card for this model so this model card has been written by fcakyon. You can use the raw model for video classification into one of the 400 possible Kinetics-400 labels. Here is how to use this model to classify a video: For more code examples, we refer to the documentation.

Open weights cc-by-nc-4.0 transformers

Model · Video classification

xclip-large-patch14-16-frames

Microsoft

X-CLIP model (large-sized, patch resolution of 14) trained fully-supervised on Kinetics-400. It was introduced in the paper Expanding Language-Image Pretrained Models for General Video Recognition by Ni et al. and first released in this repository. This model was trained using 16 frames per video, at a resolution of 336x336. Disclaimer: The team releasing X-CLIP did not write a model card for this model so this model card has been written by the Hugging Face team. X-CLIP is a minimal extension of CLIP for general video-language understanding. The model is trained in a contrastive way on (video, text) pairs. This allows the model to be used for tasks like zero-shot, few-shot or fully…

Open weights mit 77 tokens transformers

VideoMAE model pre-trained for 2400 epochs in a self-supervised way and fine-tuned in a supervised way on Something-Something-v2. 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…

Open weights cc-by-nc-4.0 transformers