Downloads · 30 days
438
12% of all-time downloads
veyra-ai/Veyra2-Apricot-50M-Base
Veyra2-Apricot-50M-Base is a text generation model from veyra-ai. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Downloads · 30 days
438
12% of all-time downloads
All-time downloads
3.6K
Public
Parameters
49.3M
198 MB on disk
Likes
17
Public
Click a slice to open those files.
.safetensors197 MB · 100%
From the Hugging Face model README

Veyra2-Apricot-50M-Base is a 49.3M-parameter Llama-like causal language model trained from scratch on approximately 20B tokens.
It is a raw base model, not an instruction-tuned assistant. It is intended for research, benchmarking, continued pretraining, and small-model experimentation.
| Property | Value |
|---|---|
| Parameters | 49,303,040 |
| Architecture | Llama-like causal LM |
| Layers | 16 |
| Hidden size | 512 |
| Attention heads | 8 |
| KV heads | 2 |
| Head dim | 64 |
| Intermediate size | 1408 |
| Vocabulary size | 8192 |
| Context length used in training | 1024 |
| Activation | SwiGLU / SiLU |
| Normalization | RMSNorm |
| Attention | GQA with QKV-Norm |
| Positional encoding | RoPE |
| Weight tying | Tied input embeddings and LM head |
| Training tokens | Approximately 19.99B |
| Training precision | bfloat16 |
| Optimizer | Muon |
Special tokens:
<|bos|>: 0<|eos|>: 1<|pad|>: 2<|unk|>: 3<|im_start|>: 4<|im_end|>: 5The model was trained on a 20B-token pretraining mixture.
SciCloze-900 repository: veyra-ai/SciCloze-900
SciCloze-900 subject breakdown:
Zero-shot results:
Open SLM Bench verified:
Additional local evaluations:
This model uses custom Transformers remote code because it includes QKV-Norm and a custom architecture definition.
<pre><code>import torch from transformers import AutoTokenizer, AutoModelForCausalLM model_id = "veyra-ai/Veyra2-Apricot-50M-Base" tokenizer = AutoTokenizer.from_pretrained( model_id, trust_remote_code=True, ) model = AutoModelForCausalLM.from_pretrained( model_id, trust_remote_code=True, torch_dtype=torch.float16, device_map="auto", ) prompt = "In the 19th century" inputs = tokenizer(prompt, return_tensors="pt").to(model.device) with torch.no_grad(): output = model.generate( **inputs, max_new_tokens=120, do_sample=True, temperature=0.6, top_p=0.9, repetition_penalty=1.1, use_cache=True, pad_token_id=tokenizer.pad_token_id, eos_token_id=tokenizer.eos_token_id, ) print(tokenizer.decode(output[0], skip_special_tokens=True)) </code></pre>Veyra2-Apricot-50M-Base is a raw base model. It is not instruction tuned and should not be expected to behave like a chat assistant. Open-ended generations can be unstable, repetitive, or factually unreliable. It's not a polished assistant.
This model is intended for:
If you use this model, please cite the model repository:
veyra-ai/Veyra2-Apricot-50M-Base