FarZenith logo

FarZenith small v1

FarZenith is a small astronomy model (~50M parameters) built and trained from scratch by Selby Mashiki for the Zimbabwean Astronomical Society (ZAS). It turns a question into an experiment spec; a deterministic physics or dark-sky engine computes the numbers; the model then explains the result. The model never does the arithmetic, so every number in an answer comes from the engine.

Experiments (15): planet orbits and comparisons, satellite orbits (Earth, Moon, Mars), main-sequence stars and blackbody light, gravity (force, escape velocity, black holes), cosmology and light (Hubble distances, Doppler shifts, spectrum bands), and Southern Africa dark skies (sky quality at a site, the darkest nearby sites, comparing places, light-pollution trends). Conceptual questions get short explanations; unsupported ones get a polite refusal.

Use

The model needs its engines, which are in code/ in this repository:

pip install huggingface_hub
python - <<'PY'
from huggingface_hub import snapshot_download
print(snapshot_download("Kolgrim/farzenith-small-v1"))
PY
cd <that folder>/code && pip install .
from huggingface_hub import snapshot_download
from zenith.serve.pipeline import Zenith

path = snapshot_download("Kolgrim/farzenith-small-v1")
zen = Zenith.load(path)
r = zen.ask("How long does the ISS take to orbit Earth?")
print(r.spec)    # the experiment the model chose
print(r.result)  # the engine's numbers (and plot series)
print(r.answer)  # the explanation

Or serve it: ZENITH_DARKSKY=<path> python -m zenith.serve.app --ckpt <path> and POST /v1/ask {"question": "..."}.

Model

Llama-style decoder (RMSNorm, rotary positions, SwiGLU), d_model 576, 10 layers, 9 heads, context 1,024 tokens, 16,384-token BPE tokenizer with digits split into single tokens. Spec generation is grammar-constrained, so the model can only write valid experiment specs.

Training

  • Pretraining: 1,800 steps Γ— 262,144 tokens (~470M tokens) on a 760M-token corpus: Wikipedia astronomy/physics articles (CC BY-SA 4.0), arXiv astro-ph/physics titles and abstracts (CC0 1.0 metadata), OpenStax Astronomy 2e and University Physics (CC BY 4.0), and science-filtered FineWeb-Edu (ODC-By 1.0). Evaluation questions were removed from the corpus by 8-gram decontamination.
  • Fine-tuning: one epoch over 300,000 examples generated by the engines themselves (no text from other AI models), on one RTX 4090.

Evaluation

1,500 held-out questions (100 per experiment) from the evaluation split, which uses question templates, objects and places never seen in training. Scored on one RTX 4090.

Picks the right experiment Gets every parameter right Numbers faithful to the engine Mentions caveats Routes conceptual / unsupported questions
FarZenith small v1 83.3% 43.0% 97.5% 100% 89.7%
Rule-based baseline 60.3% 10.3% 100% 100% 54.4%
v1 target β‰₯ 90% β‰₯ 75% β‰₯ 95% β‰₯ 70% β‰₯ 85%

Strongest: planet orbits, blackbody light, the spectrum, gravity and Doppler shifts (100% right experiment). Weakest: telling a Kepler orbit from an orbit comparison, Hubble distance questions, and single-site dark-sky questions. Parameter accuracy is lowest for dark-sky questions because the evaluation asks about places held out of training, whose coordinates the model has never seen. Every number in an answer comes from the engine; the faithfulness score measures whether the model copied those numbers correctly.

Dark-sky data

This repository ships a provisional dark-sky map (darksky_sa.npz) built from GeoNames towns (CC BY 4.0) with Natural Earth borders (public domain), using Walker's law for sky glow. It is an approximation. For accurate answers, build the real map from the Falchi et al. 2016 World Atlas (CC BY-NC 4.0, non-commercial; doi:10.5880/GFZ.1.4.2016.001) and VIIRS night lights with python -m zenith.darksky.build (see code/docs/data/darksky.md); the Falchi layer cannot be redistributed here because of its non-commercial licence.

Limitations

  • Small and narrow: it answers only within its 15 experiments plus a fact bank.
  • It can misremember an object's properties (for example a satellite's altitude), even though the engine's arithmetic is always exact.
  • Dark-sky coverage is Southern Africa only (lat βˆ’35β€¦βˆ’8, lon 10…41).

Licences

Model weights and dark-sky data: CC BY-SA 4.0 (credit "FarZenith by Selby Mashiki, Zimbabwean Astronomical Society"). Code in code/: Apache 2.0. Training data credits are listed above.

Citation

@misc{mashiki2026farzenith,
  author       = {Selby Mashiki},
  title        = {FarZenith: a from-scratch astronomy model that runs experiments},
  year         = {2026},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/Kolgrim/farzenith-small-v1}},
  note         = {Built for the Zimbabwean Astronomical Society}
}
Downloads last month
153
Safetensors
Model size
49.3M params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support