You are browsing as a guest. Sign up (or log in) to start making projects!

unknown_lizzard

@unknown_lizzard

Joined June 23rd, 2026

  • 10Devlogs
  • 6Projects
  • 4Ships
  • 45Votes
11th grade student
Open comments for this post

5h 33m 9s logged

Devlog #4 — wait, why am I training on Wikipedia?

Last week I got le gros chaton (my from-scratch transformer) to actually train. Ran it on wikitext-103 in a Colab notebook on a free T4, 12k steps, val loss hit 3.73. Felt insane for something I wrote myself from PyTorch primitives.

But then I looked at what it generated. It could do English-ish. It knew about Singapore and stuff. The moment I asked it to write code? Total garbage. Fair enough. It has never seen a single line of code.

the pivot

I thought about what I actually want this thing to do. Answer: a coding agent. Something that mogs on terminal-bench, that you give a task and it runs commands, fixes its own bugs, gets it done. Qwen-coder territory.

Wikitext won’t get me there. You can’t learn Python from Wikipedia articles about the snake.

So the plan changed. The big project is now le fat chaton, the bigger sibling. And it’s a coder.

the architecture stuff

I went down a rabbit hole on what frontier coding models do. They’re basically all mixture-of-experts (MoE) now. Qwen3-coder is 480B params / 35B active. Deepseek-coder-v2-lite is 16B / 2.4B active. The trick:

  • big total params (knows a lot)
  • small active params per token (runs fast and cheap)

Runs like a small model, knows like a big one. Exactly what I want for a snappy terminal agent.

So I rewrote the model. Added an MoE class. A gate routes each token to its top-2 experts out of 8, with a load-balance loss so the router doesn’t pick the same expert every time. Also threw in:

  1. SwiGLU — gated MLP, basically free quality, every Llama uses it
  2. GQA — smaller KV cache, faster long-context decoding (the agent harness needs this)
  3. Shared expert — DeepSeek-style, one always-on expert for common knowledge

Fat config math: ~10.25B total / ~3.65B active. Not building that locally, it would crash my PC again.

the data question

Wikitext was a fine proof. For the coder I need code. Options:

  • smollm-corpus python-edu — 7.6M educational Python files, high quality, but gated behind S3 (slow pull)
  • starcoderdata python — ~50GB Python, streams fast from HF, the Codellama workhorse
  • the-stack-v2 — 900B tokens, overkill for my budget

Going with starcoderdata Python, blended with ~15-20% cosmopedia (prose) so it has general knowledge. That blend is the Qwen-coder recipe.

am I warm-starting from wikitext?

No. Different architecture entirely (17M dense vs 10B MoE, weights don’t fit). Even if they did, warm-starting a coder from prose wastes compute unlearning prose. Fresh random init on the mixed corpus. Clean slate.

This went from “lets make a little model that talks” to “lets build a coding agent that mogs the big labs” real fast. Ambitious for a solo student with a 2070 and $30 of Modal credits? Absolutely. Doing it anyway? Yeah.

Next: the eval harness so I can measure if this is making the model better at code (pass@1, pass@5 on HumanEval). Val loss going down means nothing if it still can’t write a

0
0
2
Open comments for this post

23m 59s logged

DEVLOG #3: teaching it to talk (fine-tuning)

the base model was a completer. ask it “what is 2+2?” and it just continues the sentence. fine-tuning is what makes it actually answer: same model, more training, but on prompt/response pairs.

i wrote ~48 Q&A pairs by hand. trivia, math, jokes, hellos. all in the same rigid Q: …\nA: format. new trick: loss masking. only the response counts toward the loss, not the prompt, so i set prompt targets to -100 (pytorch’s cross_entropy ignores that automatically, zero model changes). tested the mask boundary in isolation first. wrong mask = 400 steps of training the wrong thing.

the run: load base weights, 400 steps, lower lr. loss went 12.3 to 0.02.then the reality check. it nails everything in the set. capitals, math, jokes, “who are you,” verbatim. but something NOT in the set? slop. 17M params + 48 examples is a lookup table, not a reasoner. real chat models are billions of params. not a bug, just the scale.but it’s finally coherent. the first base model was word salad. now you type a question and get a real answer back that makes sense.

it’s tiny and dumb and can’t generalize, but it actually talks. that’s the win.

full pipeline done: tokenizer, model from scratch, pretrain on wikipedia, fine-tune, chat. mine, it talks, i understand every piece.

0
0
12
Open comments for this post

19m 1s logged

DEVLOG #2: real data, real loss, and a lesson about memorizing

split my data into 90% train / 10% val. before i only had one number, training loss, and it lies to you. you can’t tell learning from memorizing with just that. now i check both every 200 steps. rule: both go down = learning. train down but val up = memorizing = useless.also made the model bigger, 7M -> 17.7M params. immediately ran out of gpu memory lol. dropped batch size to 32 to fit my 8GB card.training: 3000 steps. loss started at 158 (should be ~10 for random , my first pass blew up and made garbage). recovered fast though, didn’t ruin the run.

right now the llm is spitting out gibberish and random words but after finetuning it should sound more coherent

0
0
7
Open comments for this post

1h 53m 52s logged

DEVLOG #1: wiki text training

so i finally got the model to train on actual data instead of that one paragraph about singapore nature reserves lol. before this the whole thing was basically a joke, i trained a 7M parameter transformer on like 134 tokens and it just spat out jumbled fragments of the same sentence over and over. cool proof it worked but definitely not a “language model” in any real sense.anyway. the big move this week was swapping out the tiny json file for wikitext-2. that’s a huggingface dataset of wikipedia text, about 2.4 million tokens once you filter out the empty lines. that’s… a lot more than 134 lol. encoding it took maybe half a minute with tiktoken and the whole tensor fits on my gpu no problem (it’s only like 8MB of ints).

0
0
6
Open comments for this post

14h 44m 50s logged

DEVLOG #1: the birth of cortex-cli
this is a similar type of agent harness tui as pi.dev or opencode, I started making this because I was very interested in agentic workflows and interfaces. For the most part it was easy to make but I hit a while designing the backend, I found it really hard calling the agent and proccessing tool calls correctly, so I inspired myself from pi.dev. I think the main feature of the TUI is that the elements are clickable and actually work in the terminal, at first I found it very hard to do and it felt impossible but after a bit of research I figured it out!

furthermore, I decided to chose a very intuitive and minimal UI because other clis felt very hard to get used to.

0
0
3
Ship

I shipped OrbitScope, my Slack bot for the Stardance Slack Bot mission.

At first it was just a basic bot with /orbitscope-ping so I could check if it was even working. After that I wanted to make it more interesting because I really like space, so I connected it to NASA APIs.

I made /orbitscope-space_pic, which sends a random space picture from NASA’s APOD API. The API was kinda annoying at first because today’s image sometimes didn’t work, so I made it choose random past dates instead.

At first the bot was only sending the image URL, which looked boring, but then I figured out that Slack has image blocks with type: image, so now the picture actually shows up in Slack.

Then I added /orbitscope-mars. I first tried the Mars rover API but it was broken/weird, so I switched to NASA’s image library and used that to get Mars images instead.

I also added /orbitscope-help so people can see the commands.

Overall it’s a small bot, but it actually feels cool to use because you can get real NASA space images directly in Slack.

Try project → See source code →
Open comments for this post

40m 18s logged

Devlog 1: Beginning of OrbitScope

Started working on OrbitScope, this is my Slack bot for the Stardance Slack Bot mission. First, I made a command to ping the bot: /orbitscope-ping(as a sanity check).

Since I love space and everything about it, I decided to make a command thats shows you a random pic from space using the APOD nasa API, the api was pretty tricky to get working at first, but after some research I managed to make it work pretty well.
command: /orbitscope-space_pic

While I was coding this I noticed that sending the url of the nasa image wasn’t showing the image in the slack workspace but I found out that I could use: “type: image” which tells the slack bot to send the url as an image.

Furthermore, I started expanding my commands, I made a similar one to the space_pic command, instead of sending a APOD pick from the nasa api I used the mars rover pictures api, so it ended up being pretty easy to code.
command: /orbitscope-mars

0
0
60
Ship

space/mission-control desktop. minimal space control inspired OS with mission logs and launch control! (WARNING: some buttons may actually launch a rocket) added 3 apps, artemis launch control, rocket build and mission log, they are all functional and fun to use make sure you don't launch too many rockets!

##
I also added a small incremental game called "stardust" this is a very simple game where you mine stardust and upgrade your drill to mine more stardust
##
if you see a spinning moon, don't be alarmed(we accidently crashed into the moon in the proccess of testing a rocket)
##
Jack's message to earth:"Houston we don't have a problem"

##
**ISSUES**
##
1. I was having an issue with each element stacking on top of eachother but I ended up figuring it out quite quickly!'
##
2.In the beginning, I had a bit of trouble figuring out the css, but it ended up going very well, all the buttons work and you can even check out the source code

Try project → See source code →
Open comments for this post

15m 46s logged

DEVLOG 3: minigames!

added a small incremental game called “stardust” this is a very simple game where you mine stardust and upgrade your drill to mine more stardust

have fun!

0
0
11
Open comments for this post

18m 33s logged

DEVLOG 2: rocket builder

added a new rocket builder app, now you can build the artemis V rocket!

I was having an issue with each element stacking on top of eachother but I ended up figuring it out quite quickly!

0
0
11
Open comments for this post

1h 7m 44s logged

DEVLOG 1: OrbitOS is officialy released!

packaged with top of the line, military grade software, OrbitOS gives you access to Artemis Launch control.

In the beginning, I had a bit of trouble figuring out the css, but it ended up going very well, all the buttons work and you can even check out the source code. I chose a very blocky and minimal UI for this because it matches the mission control feeling very well therefor this was heavily inspired from actual NASA mission control software(complete lie).

0
0
11
Open comments for this post
Reposted by @unknown_lizzard

16m 58s logged

DEVLOG 1: telokine is kinda working?? 🤖

So far I have been developing Telokine for Stardance and it allows you to train a robot without writing any code.

I built this because I wanted RL without having to write complex code or/and make complex jupyter notebooks, this is very simple and kid-friendly way to understand how it works visually.

anyways,
This works with your gpu and/or cpu, but expect some bugs as it’s not completely finished yet(expect new features soon!).

(forgot to add it to hackatime so it just shows up as 15 minutes of work)(it took me more like 5-8 hours), I used ai for the frontend and cuda.
Links

GitHub repo

Live demo (UI only)

0
1
19
Ship

I built Telokine, a 3D robot trainer where you snap motors onto parts, drag reward blocks to say what to learn, hit Train, and watch it improve. Frontend is React and Three.js, backend is Python with MuJoCo physics and PPO.

The hard parts were fixing the robot stretching on Run, stopping the cube from moving with no motors, getting training previews to actually show, and making Run trained work after training. GitHub Pages only hosts the UI so real training runs on your laptop.

I'm proud of the motor snapping, the block editor, the live previews during training, and making movement motor-only like a real robot.

To try it: the demo at https://mateooo93.github.io/Telokine/ is UI only. For the full thing clone https://github.com/Mateooo93/Telokine, run npm run dev and the backend on port 8000, load the Walker template, Train then Run trained. No GPU needed, but you need motors or nothing moves.

  • 1 devlog
  • 0h
Try project → See source code →
Open comments for this post

16m 58s logged

DEVLOG 1: telokine is kinda working?? 🤖

So far I have been developing Telokine for Stardance and it allows you to train a robot without writing any code.

I built this because I wanted RL without having to write complex code or/and make complex jupyter notebooks, this is very simple and kid-friendly way to understand how it works visually.

anyways,
This works with your gpu and/or cpu, but expect some bugs as it’s not completely finished yet(expect new features soon!).

(forgot to add it to hackatime so it just shows up as 15 minutes of work)(it took me more like 5-8 hours), I used ai for the frontend and cuda.
Links

GitHub repo

Live demo (UI only)

0
1
19

Followers

Loading…