... ...
Cross Entropy

Cut Cross Entropy: 20x Memory reduction in LLM Pre-training through optimized cross entropy kernels

Introduction 2024 saw the first 100m$+ training runs, while the insane compute requirements for training Large Language Models isn’t a secret,the The biggest / most successful of these optimizations in recent times has been flash attention (cite here), an idea that focuses on how the compute hungry (O(N)^2) self attention mechanism is computed, by moving attention matrices to SRAM. (Essentially the idea here is that we tried to optimize self attention by modifying how the operation is performed on the GPU.). The trend of squeezing out performance as much as possible from the training infrastructure continued, with researchers writing their own optimal cuda kernels. Deepseek took this a step further, writing their own distributed file system (Fire Flyer FileSystem), a new attention mechanism (MultiHead Latent Attention with custom kernels), a highly tuned communication library for mixture-of-experts models (Deep-EP), and Deep Gemm, an FP-8 optimized matrix multiplication kernel library. ...

<span title='2026-01-16 08:25:46 +0100 +0100'>January 16, 2026</span>&nbsp;·&nbsp;14 min&nbsp;·&nbsp;2959 words&nbsp;·&nbsp;Damilola John

Finetuning GPT2 to Reconstruct Sentences

Two words are anagrams if one can be formed by permuting the letters of the other. Applying the same logic to a sentence, would be saying that two sentences are anagrams(no such thing) if their component words can be permutated to form clones of each other. I thought it would be interesting to teach a language model to do this. You might be thinking that simply re-arranging words in a sentence doesn’t require intelligence and can be done with very trivial algorithms,you would be right, but I added an edge to this task, given a random sequence of words, the language model has to return a grammatically correct sequence using the same set of words. For example, the following sequence: ...

<span title='2024-06-15 04:14:46 +0100 +0100'>June 15, 2024</span>&nbsp;·&nbsp;10 min&nbsp;·&nbsp;2047 words&nbsp;·&nbsp;Damilola John

Classifying Code snippets with BERT.

This is a fun side project where I explored transformers based sentiment classification for the first time by training BERT to identify 15 of the most popular programming languages. i startED with simple machine learning approaches and gradually work our way up to more complex methods till we have a satisfactory solution. The Dataset Our dataset is a csv containing 45,000 samples. The dataset is made up of two columns, the ‘code’ feature contains code snippets we want to classify and the language column, which is our label contains the programming language it belongs to.Our train and test datasets were created from stratified sampling based on the target variable. ...

<span title='2023-08-19 04:14:46 +0100 +0100'>August 19, 2023</span>&nbsp;·&nbsp;4 min&nbsp;·&nbsp;841 words&nbsp;·&nbsp;Damilola John
tokenizers

Byte-Pair Encoding, The Tokenization algorithm powering Large Language Models.

Tokenization is an umbrella term for the methods used to turn texts into chunks of words or sub-words. Tokenization has a lot of applications in computer science, from compilers to Natural Language Processing. In this article, we would be focusing on tokenizers in Language models, in particular, a method of tokenization called Byte Pair Encoding. The last few years have witnessed a revolution in NLP catalyzed mainly by the introduction of the transformers architecture in 2017 with the paper ‘Attention is all you need ’ epitomized by the introduction of ChatGPT in late 2022. ...