Skip to main content

Transformer for galaxy images (and general astronomy)

Project description

earthPT

ICML arXiv License: MIT All Contributors

astroPT: a Large Observation Model for astronomy 🔭

Welcome to our simple repository for training astronomical large observation models. This repository began its life as Andrej Karpathy's nanoGPT, and has been altered so that it is usable for imagery data. Within train.py you will find a ~300-line boilerplate training loop and within model.py you will find a ~300-line GPT model definition with an MLP tokeniser and a regressive loss.

Check out the UniverseTBD Discord for updates: https://discord.gg/MNEVegvfJq

install

Dependencies:

  • pip install -r requirements.txt

results

AstroPT v1.0.0 has been trained on 8.6M galaxy grz band *.png postage stamps downloaded from DESI-LS DR8 to see if neural scaling laws apply to galaxian data (in other words, to see if more galaxy data == more better model).
We tried to make the astroPT model as simple as possible so that other modalities can be easily folded in. We also choose to use a causally trained autoregressive transformer model as our backbone so that our work can more easily integrate the wider deep learning FOSS community.

Our pretraining task is feeding in our galaxy images patch-by-patch and predicting the next patch in our galaxy patch sequence. We follow ViT and define a patch as a 16 by 16 pixel square, and feed the galaxy patches in a spiral order:

galaxy

The trained model results are promising -- below we show our full training run validation losses across a parameter sweep of {1,5,12,21,89,309,830,2100}M trainable parameters:

scaling

We also test our astroPT models on some scientifically-useful downstream tasks by taking the models' penultimate layer outputs and finetuning linear probes to predict emergent physical properties of the galaxies:

downstream

In the above pic, $M_g$ and $M_z$ are the absolute magnitudes (or brightness at a fixed distance) of the galaxies, $g - r$ and $r - z$ are the differences between the observations of different telescope filter bands, redshift is the distance to the galaxies, sSFR is the total mass of new stars born each year in the galaxies per total galaxy mass, and $M_{*}$ is the total mass of stars within the galaxies. "smooth?", "disc?", "artefact?", "edge on?" and "tight spiral?" are morphological properties of the galaxies as described by citizen scientists.

The cool thing to take away from these plots is that the surrogate task loss (predicting the next patch in a sequence of ViT-like galaxy image patches) is correlated with astronomically "useful" downstream tasks 🤯🚀.

Finally, check out our UMAP projection of astroPT-87M's penultimate layer outputs of our validation set. We colour each point with an emergent physical galaxy property described above. The structure suggests that the model has learnt some knowledge about physics simply from our next-token prediction pretraining task!

hexbin

pretrained weights, and full galaxy dataset

Check out the paper here: https://arxiv.org/abs/2405.14930.

We of course release all our model weights checkpointed across our full training runs on HuggingFace 🤗 here.

We also release our full dataset and galaxy metadata on HuggingFace 🔥.

contributors

Ryan Roberts
Ryan Roberts

💻 🤔 🖋
Mike Smith
Mike Smith

💻 🤔 🖋 🔣
mhuertascompany
mhuertascompany

🤔 🖋
Malgorzata Siudek
Malgorzata Siudek

🤔 🖋 💻 🔣
Add your contributions

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

astropt-1.0.0a0.tar.gz (58.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

astropt-1.0.0a0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file astropt-1.0.0a0.tar.gz.

File metadata

  • Download URL: astropt-1.0.0a0.tar.gz
  • Upload date:
  • Size: 58.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.0

File hashes

Hashes for astropt-1.0.0a0.tar.gz
Algorithm Hash digest
SHA256 c445b46dc8240982da521ac1d634a8bcc6b5c7cb5a170cb968e5110e5ec721ce
MD5 fd2d39701ce9204e7bdec9b927611deb
BLAKE2b-256 9a671a3a02e51c06d0830ff7aa9ba087933447b0d6c60e04b8ea0874b2eb0966

See more details on using hashes here.

File details

Details for the file astropt-1.0.0a0-py3-none-any.whl.

File metadata

  • Download URL: astropt-1.0.0a0-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.0

File hashes

Hashes for astropt-1.0.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 6dc3641c58e09a0954e81c439ad1df27030eb78d210b7f39350d6b77ce68232e
MD5 7a5f3ca2087c80e96ab4bfd46be38a91
BLAKE2b-256 4ac87cd1c8e58cbfdb27809a988ddc08c58fd3a0478a1e355c5831fa81ef3ec3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page