Rather than a stock BERT reimplementation, it uses a modern LLaMA-style encoder recipe:
Masking used dynamic Whole-Word Masking at a 15% rate.
1from transformers import AutoTokenizer, AutoModelForMaskedLM, pipeline
2
3model_id = "vprojectx/VMiniBert"
4
5tokenizer = AutoTokenizer.from_pretrained(model_id)
6model = AutoModelForMaskedLM.from_pretrained(model_id, trust_remote_code=True)
7
8fill_mask = pipeline("fill-mask", model=model, tokenizer=tokenizer)
9results = fill_mask("The capital of France is [MASK].")
10
11for res in results:
12 print(f"{res['token_str']:<12} {res['score']:.4f}")
1@misc{vminibert2026,
2 author = {vprojectx},
3 title = {vminibert-108M: A From-Scratch BERT-Style Encoder with RoPE, RMSNorm, and GeGLU},
4 year = {2026},
5 publisher = {Hugging Face},
6 url = {https://huggingface.co/vprojectx/VMiniBert}
7}