Finally deployed the training script to Kaggle. Now all there’s to be is wait and hope.
np.memmap ensuring that only a portion of tokens are loaded in memory;So after getting the architecture down and adding collecting some data, I started the training phase. That was one week ago ….
Training is surprisingly (or not ?) actually more than just shoving in more data and expect it to work. Right now I’m struggling with finding sensible hyperparameters and getting the model to output something coherent.
I mainly worked on the training loop and minor optimizations to hidden layers to distract myself while Pytorch was frying my APU. Of course there were also bugs in the code that had to fix on the way.
For monitoring the training I decided to use plain TUI built with Rich but I’m currently adding a csv logging for better history tracking.
At first I was planning to run the training on my laptop but I understood why billions dollar companies needed so many datacenters. Anyway, I deployed it on Kaggle which also was harder than it should be.
Hello Stardance! Hello world appetIntern disdainwartsnine.
Those were the first words of my Language Model, am feeling so fogging proud right now. I’m trying to get into ML for the next year (not just because of the hype). For my first projects, I tried building a simple perceptron as well as understanding the algorithm behind Tic-Tac-Toe. Nothing grandiose. Why aim so high for my next project since I’m not that knowledgeable ? Because I’m short of time and there are full tutorial available, that’s all.
The MVP goal is to be able to generate coherent text (will probably be gibberish since I’m not a billion dollars corpo) and implement simple RAG to compensate for the lack of intelligence.
I plan to upgrade it as I learn more about LLMs and Transformers.
I just got the basic unoptimized architecture down.
It tooks so much time to understand the Transformer architecture and all the maths that goes behind it (thanks to 3Blue1Brown it was manageable). Now I need to train & evaluate the “Advanced Autocomplete Machine” so that It can start acting more like GPT2.
Liking my rice ? 😏
My shell now started to look like something, although I know that it’s not even close to be prod ready. I did my best to hack together something usable i.e that compiles. If I were to add more than that and I would need to create a whole programming language. Even tho I would love to, that’ll be for another day…
Oh, concerning new features, I added the GNU readline library (same used by other shell) so keyboard navigation actually works like a real shell.
I also used another library to handle the parsing instead of my custom parser (it served me well) and finally I customized the prompt to make it less generic.
Now Mishell also support basic piping.
😮💨 Took me soooo long just because I didn’t google enough. It was a good learning experience.
Now, I can finally sleep …
…
…
….
I can sleep now right ?
“C is quirky, flawed, and an enormous success.”
- Dennis M. Ritchie.
Hello everyone. Hope you’re enjoying the event. On my end things got a little be nasty for the past days.
Truthfully, the challenge was not that hard but you know how it goes:
man gotta invent lemons just because he can right :)
I fell down the C rabbit whole so bad: macros, pointers, errno, free, linking, … The hardest part was obviously managing memory. I was conditioned so much by Youtube to be scared of memory leaks that I had to rewrite an allocator just so to not use malloc. The other challenge I created for myself was to copy-paste random compile flags from everywhere to ensure my code would be mEmORy SaFe:
Spoiler: didn’t even work :(
I dearly missed Python simplicity. I will just have to fix my skill issues.
Anyway, next challenge will be to improve allocation (again) and add more features to the shell. I’ll probably be done (mostly) after this devlog since the purpose of the shell (interact with cli tools) is accomplished.
Now I can finally sleep.
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
MiShell is a very simple and dumb shell. It got some builtins commands
and … that’s all. I plan to improve it later (if I find time)