jepacpp/lejepa-vits16-pretrain-in1k-GGUF

Model

LeJEPA ViT-S/16 (IN1k) β€” GGUF for jepa.cpp

0

13 commits

1 linked in READMEs

updated Sep 1, 2026

See the code

README

LeJEPA ViT-S/16 (IN1k) β€” GGUF for jepa.cpp

The community LeJEPA ViT-S/16 image encoder (a DINOv2-style ViTv2 backbone) pretrained on ImageNet-1k, converted to GGUF for jepa.cpp β€” a ggml C/C++ engine that runs it on a plain CPU with no Python and no PyTorch. The smallest and fastest model in the set.

22 M parameters; D = 384, 12 layers, 6 heads, patch 16, 224x224. Everything the engine needs β€” dimensions, positional scheme, preprocessing recipe, and class labels where there are any β€” travels inside the file, so inference needs one binary and one GGUF and nothing else.

Run it

git clone --recursive https://github.com/aselimc/jepa.cpp && cd jepa.cpp
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release && cmake --build build -j
hf download jepacpp/lejepa-vits16-pretrain-in1k-GGUF lejepa-vits16-pretrain-in1k-f16.gguf --local-dir models/gguf

# one image -> a CLS feature
build/jepa-embed -m lejepa-vits16-pretrain-in1k-f16.gguf -i photo.jpg --pool cls -t 32 -o feat.npy

--pool selects mean, cls, lewm or none (the full token map); -o writes a .npy. scripts/download_models.sh fetches whole sets at once. The C API is one header, include/jepa.h β€” full reference on the C API page.

Files

filesizesha256 (first 16)tiermeasured against the PyTorch reference
lejepa-vits16-pretrain-in1k-f32.gguf82.7 MiB932a6be946ba5434exactcos mean 1.000000, worst 1.000000, rel_max 1.2e-05 α΅–
lejepa-vits16-pretrain-in1k-f16.gguf42.2 MiBd47212196cb764f5paritycos mean 0.999999, worst 0.999994 α΅–
lejepa-vits16-pretrain-in1k-q8_0.gguf23.2 MiB5c8f5fd803b06047paritycos mean 0.999263, worst 0.995193 α΅–
lejepa-vits16-pretrain-in1k-q4_0.gguf13.0 MiB50c64f08c83754b5advisorycos mean 0.965778, worst 0.830929, pooled_mean 0.992347, cls 0.987218 ᡈ
lejepa-vits16-pretrain-in1k-q4_k.gguf13.0 MiBd0859db9654404f1advisory, below the barcos mean 0.970211, worst 0.843224, pooled_mean 0.993358, cls 0.988700 ᡈ

α΅– tests/test-parity on the CPU backend, stored reference input, 32 threads, worst sample β€” docs/parity.md. ᡈ scripts/gguf_dequant_selftest.py: the dequantized weights through the numpy reference graph at f32 activations, so the figure is the weight error alone β€” docs/quantization.md. cos mean is the mean per-token cosine of last_hidden_state, worst its single worst token.

Tiers. exact β€” reproduces the PyTorch reference to the printed precision on the CPU. parity β€” passes its family's test-parity thresholds. advisory β€” below 8 bits per weight, which is not a parity configuration: the results are reported, only the derived tensors and the top-1 are gated. Which file to ship: Accuracy β†’ which dtype. lejepa-vits16-pretrain-in1k-q4_k.gguf the derived cls feature misses the low-bit tier's 0.99 bar, on the CPU and on CUDA alike.

Full checksums:

932a6be946ba5434ade4b514d2056f8cd024a9299ac03b40e49955e31138c9d8  lejepa-vits16-pretrain-in1k-f32.gguf
d47212196cb764f5d5fd07994459f7fdd96e2d4a53a990e9555b152e555be795  lejepa-vits16-pretrain-in1k-f16.gguf
5c8f5fd803b0604732bd97f10f7a56499304ea737d32069fe03dcbfb73cf1c42  lejepa-vits16-pretrain-in1k-q8_0.gguf
50c64f08c83754b5c3c987f93cc0b06947a9a2899f705088c7a117a68375e1c7  lejepa-vits16-pretrain-in1k-q4_0.gguf
d0859db9654404f169e44f6159501702b00df3aee015f855e59abe85854be059  lejepa-vits16-pretrain-in1k-q4_k.gguf

Verify a download with sha256sum -c. The other types jepa-quantize can produce (q4_1, q5_0, q5_1, q5_k, q6_k, measured in quantization) are not published here; make them locally with build/jepa-quantize lejepa-vits16-pretrain-in1k-f16.gguf out.gguf q6_k -t 32.

Measured

Every figure below is read from a committed artifact of jepa.cpp 00bfd4e by scripts/hf_publish.py β€” parity, quantization, accuracy, performance and tests/results/*.json.

Imagenette k-NN β€” 3925 queries against a gallery of 9469 (train_full), the frozen cls feature, k = 20 cosine vote. Nothing is trained.

backenddtypek-NN top-1 %centroid top-1 %agreement with PyTorch %mean feature cosine
pytorchf3294.4587.59β€”1
jepa.cppf3294.5287.6499.850.999983
jepa.cppf1694.5587.6499.820.999983
jepa.cppq8_094.5087.6499.870.999843
jepa.cppq4_k94.2287.6799.080.988725

Speed β€” the encoder graph at f16 on 32 threads (AMD Ryzen Threadripper PRO 7995WX 96-Cores): 13 ms per image against PyTorch's 15 ms. The same shape on NVIDIA RTX 4500 Ada Generation: 1.1 ms. Peak RSS at f16: 52 MiB.

This model's matrices are not all a multiple of the K-quant block, so q4_k falls back per tensor to q4_0 for most of them and the two files come out the same size; general.file_type reads 2 (q4_0) as a result. The fallback rule is in quantization.

Source, licence and attribution

Converted from OK-AI/lejepa-vits16-pretrain-in1k.

Apache-2.0. The source checkpoint is published by Open-Knowledge-AI (OK-AI), trained from scratch on ImageNet-1k with their lite_ssl codebase. license: apache-2.0 in the model card's metadata is the repository's only licence statement β€” it ships no LICENSE file. These GGUF files are the same weights re-serialised into the GGUF container, quantized where the file name says so. Cite the LeJEPA paper (Balestriero & LeCun, 2025).

The licence travels inside every GGUF as general.license and the origin as general.source_url; build/jepa-info <file> --kv prints them. jepa.cpp's own code is MIT.

Conversion

Produced by jepa.cpp 00bfd4e:

scripts/download_models.sh --convert lejepa
python scripts/convert.py --family hfvit --src models/OK-AI/lejepa-vits16-pretrain-in1k --ftype f16
#   ... and again with --ftype f32 for the f32 file

for q in q8_0 q4_0 q4_k; do
  build/jepa-quantize models/gguf/lejepa-vits16-pretrain-in1k-f32.gguf \
      models/gguf/lejepa-vits16-pretrain-in1k-$q.gguf $q -t 32
done

jepa-quantize re-types only the 2-D attention / FFN / projection / classifier matrices; patch embeddings, position tables, norms and biases keep the source type. The rules are in docs/gguf-schema.md.

ggml
gguf
image-feature-extraction
jepa
jepa.cpp
lejepa
vision

jepacpp/lejepa-vits16-pretrain-in1k-GGUF

Model

LeJEPA ViT-S/16 (IN1k) β€” GGUF for jepa.cpp

0

13 commits

1 linked in READMEs

updated Sep 1, 2026

See the code

README

LeJEPA ViT-S/16 (IN1k) β€” GGUF for jepa.cpp

The community LeJEPA ViT-S/16 image encoder (a DINOv2-style ViTv2 backbone) pretrained on ImageNet-1k, converted to GGUF for jepa.cpp β€” a ggml C/C++ engine that runs it on a plain CPU with no Python and no PyTorch. The smallest and fastest model in the set.

22 M parameters; D = 384, 12 layers, 6 heads, patch 16, 224x224. Everything the engine needs β€” dimensions, positional scheme, preprocessing recipe, and class labels where there are any β€” travels inside the file, so inference needs one binary and one GGUF and nothing else.

Run it

git clone --recursive https://github.com/aselimc/jepa.cpp && cd jepa.cpp
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release && cmake --build build -j
hf download jepacpp/lejepa-vits16-pretrain-in1k-GGUF lejepa-vits16-pretrain-in1k-f16.gguf --local-dir models/gguf

# one image -> a CLS feature
build/jepa-embed -m lejepa-vits16-pretrain-in1k-f16.gguf -i photo.jpg --pool cls -t 32 -o feat.npy

--pool selects mean, cls, lewm or none (the full token map); -o writes a .npy. scripts/download_models.sh fetches whole sets at once. The C API is one header, include/jepa.h β€” full reference on the C API page.

Files

filesizesha256 (first 16)tiermeasured against the PyTorch reference
lejepa-vits16-pretrain-in1k-f32.gguf82.7 MiB932a6be946ba5434exactcos mean 1.000000, worst 1.000000, rel_max 1.2e-05 α΅–
lejepa-vits16-pretrain-in1k-f16.gguf42.2 MiBd47212196cb764f5paritycos mean 0.999999, worst 0.999994 α΅–
lejepa-vits16-pretrain-in1k-q8_0.gguf23.2 MiB5c8f5fd803b06047paritycos mean 0.999263, worst 0.995193 α΅–
lejepa-vits16-pretrain-in1k-q4_0.gguf13.0 MiB50c64f08c83754b5advisorycos mean 0.965778, worst 0.830929, pooled_mean 0.992347, cls 0.987218 ᡈ
lejepa-vits16-pretrain-in1k-q4_k.gguf13.0 MiBd0859db9654404f1advisory, below the barcos mean 0.970211, worst 0.843224, pooled_mean 0.993358, cls 0.988700 ᡈ

α΅– tests/test-parity on the CPU backend, stored reference input, 32 threads, worst sample β€” docs/parity.md. ᡈ scripts/gguf_dequant_selftest.py: the dequantized weights through the numpy reference graph at f32 activations, so the figure is the weight error alone β€” docs/quantization.md. cos mean is the mean per-token cosine of last_hidden_state, worst its single worst token.

Tiers. exact β€” reproduces the PyTorch reference to the printed precision on the CPU. parity β€” passes its family's test-parity thresholds. advisory β€” below 8 bits per weight, which is not a parity configuration: the results are reported, only the derived tensors and the top-1 are gated. Which file to ship: Accuracy β†’ which dtype. lejepa-vits16-pretrain-in1k-q4_k.gguf the derived cls feature misses the low-bit tier's 0.99 bar, on the CPU and on CUDA alike.

Full checksums:

932a6be946ba5434ade4b514d2056f8cd024a9299ac03b40e49955e31138c9d8  lejepa-vits16-pretrain-in1k-f32.gguf
d47212196cb764f5d5fd07994459f7fdd96e2d4a53a990e9555b152e555be795  lejepa-vits16-pretrain-in1k-f16.gguf
5c8f5fd803b0604732bd97f10f7a56499304ea737d32069fe03dcbfb73cf1c42  lejepa-vits16-pretrain-in1k-q8_0.gguf
50c64f08c83754b5c3c987f93cc0b06947a9a2899f705088c7a117a68375e1c7  lejepa-vits16-pretrain-in1k-q4_0.gguf
d0859db9654404f169e44f6159501702b00df3aee015f855e59abe85854be059  lejepa-vits16-pretrain-in1k-q4_k.gguf

Verify a download with sha256sum -c. The other types jepa-quantize can produce (q4_1, q5_0, q5_1, q5_k, q6_k, measured in quantization) are not published here; make them locally with build/jepa-quantize lejepa-vits16-pretrain-in1k-f16.gguf out.gguf q6_k -t 32.

Measured

Every figure below is read from a committed artifact of jepa.cpp 00bfd4e by scripts/hf_publish.py β€” parity, quantization, accuracy, performance and tests/results/*.json.

Imagenette k-NN β€” 3925 queries against a gallery of 9469 (train_full), the frozen cls feature, k = 20 cosine vote. Nothing is trained.

backenddtypek-NN top-1 %centroid top-1 %agreement with PyTorch %mean feature cosine
pytorchf3294.4587.59β€”1
jepa.cppf3294.5287.6499.850.999983
jepa.cppf1694.5587.6499.820.999983
jepa.cppq8_094.5087.6499.870.999843
jepa.cppq4_k94.2287.6799.080.988725

Speed β€” the encoder graph at f16 on 32 threads (AMD Ryzen Threadripper PRO 7995WX 96-Cores): 13 ms per image against PyTorch's 15 ms. The same shape on NVIDIA RTX 4500 Ada Generation: 1.1 ms. Peak RSS at f16: 52 MiB.

This model's matrices are not all a multiple of the K-quant block, so q4_k falls back per tensor to q4_0 for most of them and the two files come out the same size; general.file_type reads 2 (q4_0) as a result. The fallback rule is in quantization.

Source, licence and attribution

Converted from OK-AI/lejepa-vits16-pretrain-in1k.

Apache-2.0. The source checkpoint is published by Open-Knowledge-AI (OK-AI), trained from scratch on ImageNet-1k with their lite_ssl codebase. license: apache-2.0 in the model card's metadata is the repository's only licence statement β€” it ships no LICENSE file. These GGUF files are the same weights re-serialised into the GGUF container, quantized where the file name says so. Cite the LeJEPA paper (Balestriero & LeCun, 2025).

The licence travels inside every GGUF as general.license and the origin as general.source_url; build/jepa-info <file> --kv prints them. jepa.cpp's own code is MIT.

Conversion

Produced by jepa.cpp 00bfd4e:

scripts/download_models.sh --convert lejepa
python scripts/convert.py --family hfvit --src models/OK-AI/lejepa-vits16-pretrain-in1k --ftype f16
#   ... and again with --ftype f32 for the f32 file

for q in q8_0 q4_0 q4_k; do
  build/jepa-quantize models/gguf/lejepa-vits16-pretrain-in1k-f32.gguf \
      models/gguf/lejepa-vits16-pretrain-in1k-$q.gguf $q -t 32
done

jepa-quantize re-types only the 2-D attention / FFN / projection / classifier matrices; patch embeddings, position tables, norms and biases keep the source type. The rules are in docs/gguf-schema.md.

ggml
gguf
image-feature-extraction
jepa
jepa.cpp
lejepa
vision