Hydrion is a 114M-parameter causal language model, pretrained from scratch and fine-tuned for chat, built on a single RTX 3060 plus a handful of rented A100 hours.
This repo (OpenGCM/Hydrion-Base) is the base model, non-chat ready version. The instruction model (chat formatting) is available at OpenGCM/Hydrion-SFT.
Model Details
- Architecture: Llama-style decoder-only transformer (RMSNorm, rotary position embeddings, SwiGLU MLP, grouped-query attention)
- Parameters: 114.1M
- Layers: 12
- Hidden size: 768
- Attention heads: 12 (4 KV heads, GQA)
- Context length: 1024 tokens
- Tokenizer:
EleutherAI/gpt-neox-20b - License: Apache 2.0
Training
Hydrion was trained in two pretraining stages.
- Initial pretraining โ ~2B tokens on a FineWeb-Edu / Wikipedia mix, trained on a single RTX 3060 (12GB).
- Continued pretraining โ an additional ~0.5B tokens on a more diverse mix (FineWeb-Edu, Wikipedia, TinyStories, a code subset, and Dolly), run on a rented A100 to broaden register and topic coverage beyond pure web/encyclopedic text.
Total pretraining exposure: roughly 2.5 billion tokens.
Benchmarks
Evaluated with lm-evaluation-harness on the base (pre-SFT) checkpoint:
| Benchmark | Metric | Score |
|---|---|---|
| BLiMP | acc | 80.08% |
| ARC-Easy | acc | 47.26% |
| ARC-Easy | acc_norm | 43.39% |
| WikiText-2 | byte_perplexity | 2.04 |
| WikiText-2 | bits_per_byte | 1.03 |
| WikiText-2 | word_perplexity | 45.02 |
Grammatical judgment (BLiMP) is comparable to models trained on far larger token budgets; factual/reasoning performance (ARC-Easy) is meaningfully weaker, consistent with the relatively small pretraining corpus.
Usage
import torch
from transformers import AutoTokenizer, LlamaForCausalLM
tokenizer = AutoTokenizer.from_pretrained("OPENGCM/Hydrion-Base")
model = LlamaForCausalLM.from_pretrained("OPENGCM/Hydrion-Base", torch_dtype=torch.bfloat16).cuda()
model.eval()
prompt = "What is the capital of"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
with torch.no_grad():
output = model.generate(
**inputs,
max_new_tokens=150,
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.3,
no_repeat_ngram_size=3,
eos_token_id=tokenizer.convert_tokens_to_ids("<|im_end|>"),
)
response = tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(response)
Limitations
Hydrion is a small model trained on a modest token budget (~2.5B tokens, versus the trillions used by comparable production small models). It should not be relied on for factual accuracy. It reliably produces fluent, grammatically well-formed English and responds in a conversational chat format, but frequently states incorrect facts, fabricates names/dates/attributions, and performs poorly at arithmetic and multi-step reasoning. Treat outputs as unreliable by default โ this model is best understood as a demonstration of a working from-scratch training pipeline rather than a usable knowledge source or assistant.
- Downloads last month
- 107
