this is theseus. it makes GPUs and TPUs warm and fuzzy inside by harnessing the power neural architecture research™® on Human Languages℗. its fine. not too fast, not too good, but it does the thing and you can use it. to be clear, it gets about mid-20s MFU on a mid day and high-30s MFU on a good day, and it doesn't do anything fancy. i'm here to tell you how to use it, and i'd love to know about it if you ended up doing that.
theseus is a template repo. You use it by having it. So, please, clone the repo:
git clone https://github.com/Jemoka/thx.git theseus
cd theseus
We use the uv package manager, so make sure you have that. Now, depending on from whomst your computers must be warm, please choose your adventure:
uv sync --group all --group cuda13uv sync --group all --group cuda12uv sync --group all --group tpuuv sync --group all --group cpuWe are going to invoke stuff that theseus already has built in, like tokenizing fineweb and training a GPT model. You refer to these by what's called job keys, like data/tokenize/fineweb and gpt/train/pretrain.
First, make a folder where things will go
mkdir /folder/where/things/go
Then, tokenize some data:
from theseus.quick import quick
with quick("/folder/where/things/go") as q:
q.build("data/tokenize/fineweb", "my-tokenize-job")
job = q.create()
job()
Finally, train a model:
with quick("/folder/where/things/go") as q:
q.build("gpt/train/pretrain", "my-training-job")
# add salt (configurate) to taste
# hint: q.config is an omegaconf, so you can print it
q.config.training.per_device_batch_size = 8 # required! idk how much hbm u have
# and then make it go brr
job = q.create()
job()
Your dataset job needs to share the same root folder as your training job. This is how theseus knows to load the dataset you've tokenized instead of blowing up and complaining you didn't have the dataset tokenized.
Code. It occasionally runs, and when it does you get features!
...and probably more things I forgot. I'll try hard to at least have me or Codex write How-To guides covering each of these aspects, and link them here as they show up.
15 commits
Python
97.6%
Shell
1.3%
this is theseus. it makes GPUs and TPUs warm and fuzzy inside by harnessing the power neural architecture research™® on Human Languages℗. its fine. not too fast, not too good, but it does the thing and you can use it. to be clear, it gets about mid-20s MFU on a mid day and high-30s MFU on a good day, and it doesn't do anything fancy. i'm here to tell you how to use it, and i'd love to know about it if you ended up doing that.
theseus is a template repo. You use it by having it. So, please, clone the repo:
git clone https://github.com/Jemoka/thx.git theseus
cd theseus
We use the uv package manager, so make sure you have that. Now, depending on from whomst your computers must be warm, please choose your adventure:
uv sync --group all --group cuda13uv sync --group all --group cuda12uv sync --group all --group tpuuv sync --group all --group cpuWe are going to invoke stuff that theseus already has built in, like tokenizing fineweb and training a GPT model. You refer to these by what's called job keys, like data/tokenize/fineweb and gpt/train/pretrain.
First, make a folder where things will go
mkdir /folder/where/things/go
Then, tokenize some data:
from theseus.quick import quick
with quick("/folder/where/things/go") as q:
q.build("data/tokenize/fineweb", "my-tokenize-job")
job = q.create()
job()
Finally, train a model:
with quick("/folder/where/things/go") as q:
q.build("gpt/train/pretrain", "my-training-job")
# add salt (configurate) to taste
# hint: q.config is an omegaconf, so you can print it
q.config.training.per_device_batch_size = 8 # required! idk how much hbm u have
# and then make it go brr
job = q.create()
job()
Your dataset job needs to share the same root folder as your training job. This is how theseus knows to load the dataset you've tokenized instead of blowing up and complaining you didn't have the dataset tokenized.
Code. It occasionally runs, and when it does you get features!
...and probably more things I forgot. I'll try hard to at least have me or Codex write How-To guides covering each of these aspects, and link them here as they show up.
15 commits
Python
97.6%
Shell
1.3%