Downloads · 30 days
0
ducanhdinh/jepa_proof_vicreg
jepa_proof_vicreg is a machine learning model from ducanhdinh. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as apache-2.0.
BERT encoder pretrained from scratch với VICReg (Variance-Invariance-Covariance Regularization).
Downloads · 30 days
0
Access
Public
Updated Jun 14, 2026
Repo size
1.9 GB
Likes
0
Public
Click a slice to open those files.
.bin523 MB · 54%
From the Hugging Face model README
BERT encoder pretrained from scratch với VICReg (Variance-Invariance-Covariance Regularization).
Hai masked text views được encode bởi một BERT encoder dùng chung, sau đó đưa qua expander MLP. VICReg kết hợp 3 loss terms để căn chỉnh các views và ngăn feature collapse mà không cần negative samples:
| Loss term | Hệ số | Mô tả |
|---|---|---|
| Invariance | 25.0 | MSE giữa z1 và z2 (căn chỉnh hai views) |
| Variance | 25.0 | Giữ std của mỗi chiều ≥ 1 (chống collapse) |
| Covariance | 1.0 | Decorrelate các chiều embedding |
Text → BERT (mean-pool) → z ∈ R^768 → Expander MLP → z' ∈ R^3072
↑ VICReg loss áp dụng tại đây
Expander gồm 3 lớp Linear-BatchNorm-ReLU (dim = 3072).
| Tham số | Giá trị |
|---|---|
| Max sequence length | 256 |
| Batch size | 256 |
| Epochs | 10 |
| Learning rate | 0.0001 |
| Expander dim | 3072 |
| Max span length (masking) | 5 |
| sim_coeff | 25.0 |
| std_coeff | 25.0 |
| cov_coeff | 1.0 |
from transformers import BertModel, BertTokenizerFast
import torch
tokenizer = BertTokenizerFast.from_pretrained("ducanhdinh/jepa_proof_vicreg")
bert = BertModel.from_pretrained("ducanhdinh/jepa_proof_vicreg/encoder")
encoded = tokenizer(
["Hello world!", "VICReg is great."],
return_tensors="pt",
padding=True,
truncation=True,
)
with torch.no_grad():
out = bert(**encoded)
hidden = out.last_hidden_state # (B, T, 768)
mask = encoded["attention_mask"].unsqueeze(-1).float()
emb = (hidden * mask).sum(1) / mask.sum(1).clamp(min=1) # mean-pool → (B, 768)
import torch
from transformers import BertTokenizerFast
# Load weights thủ công
from text_vicreg import TextVICReg, VICRegPretrainConfig
cfg = VICRegPretrainConfig()
model = TextVICReg(cfg)
state = torch.load(
hf_hub_download("ducanhdinh/jepa_proof_vicreg", "pytorch_model.bin"),
map_location="cpu",
)
model.load_state_dict(state)
model.eval()