Giles' blog
Currently mostly AI because in 2026 of course it is. Grinding through the nuts and bolts of LLMs and trying to work out why this stuff works...
- Posts
- 372 from 1 Nov 2006 to 23 Oct 2026
- Posting
- weekly (64 in the last year)
- Kind
- personal blog
- Feed
- https://www.gilesthomas.com/feed/rss.xml
2026 58
- RMSNorm
- Fun with low-rank vocab matrices (and a bonus test loss reduction?)
- Why do OpenAI's GPT-2 weights beat mine? Part five: data quality
- October 2026
- Extending Raschka's GPT-2: an MoE trained from scratch on an RTX 3090
- Putting my JAX-trained models on the Hugging Face Hub
- September 2026
- Why do OpenAI's GPT-2 weights beat mine? Part four: digging into dropout
- Adding diagrams to my static site generator with D2
- Use the built-in GELU, don't roll your own!
- A quick(ish) Chinchilla check
- August 2026
- How I use AI on this blog
- July 2026
- Writing an LLM from scratch, part 34b -- from bigrams to GPT-2, one component at a time (in JAX)
- 39 million of them
- calculated
- overtrained a couple of GPT-2 style models
- not as good at an instruction-fine-tuning test
- [ Read more ]
- [ Read more ]
- June 2026 (7)
- [ Read more ]
- [ Read more ]
- [ Read more ]
- [ Read more ]
- [ Read more ]
- [ Read more ]
- [ Read more ]
- May 2026 (2)
- On first looking into jax
- [ Read more ]
- April 2026 (11)
- more details here
- an equivalent PyTorch model
- [ Read more ]
- in the cloud
- [ Read more ]
- [ Read more ]
- [ Read more ]
- [ Read more ]
- [ Read more ]
- [ Read more ]
- Automating starting Lambda Labs instances
- March 2026 (3)
- cost in quality
- [ Read more ]
- [ Read more ]
- February 2026 (4)
- tiny improvement in loss terms
- interventions
- adding gradient clipping
- removing dropout
- January 2026 (4)
- existing PyTorch script
- Llm from scratch 30 digging into llm as a judge
- a quick-and-dirty bit of curve-fitting
- [ Read more ]
2025 64
- December 2025 (1)
- four times longer
- Why smart instruction-following makes prompt injection easier
- November 2025 (3)
- set myself a number of follow-on goals
- [ Read more ]
- October 2025 (9)
- rebuilding Andrej Karpathy's 2015-vintage RNNs
- Llm from scratch 24 the transcript hack
- [ Read more ]
- [ Read more ]
- A classifier using Qwen3
- [ Read more ]
- [ Read more ]
- post on cross entropy
- [ Read more ]
- September 2025 (3)
- How do LLMs work?
- The maths you need to start understanding LLMs
- An addendum to 'the maths you need to start understanding LLMs'
- August 2025 (5)
- the feed-forward network
- Writing an LLM from scratch, part 19 -- wrapping up Chapter 4
- What AI chatbots are actually doing under the hood
- [ Read more ]
- [ Read more ]
- July 2025 (1)
- LayerNorm
- June 2025 (2)
- sabbatical
- [ Read more ]
- May 2025 (3)
- Back in May
- [ Read more ]
- [ Read more ]
- April 2025 (2)
- not all that hard to add that on
- [ Read more ]
- March 2025 (7)
- dropout
- part 8 of this series
- Dropout and mandatory vacation
- causal attention
- [ Read more ]
- [ Read more ]
- [ Read more ]
- February 2025 (10)
- learn in public
- an article I wrote back in February
- last update
- [ Read more ]
- LaTeX working on this site
- [ Read more ]
- blogged
- [ Read more ]
- [ Read more ]
- Blog design update
- January 2025 (6)
- taken from us before his time
- part 6 in this series
- Writing an LLM from scratch, part 6b -- a correction
- Do reasoning LLMs need their own Philosophical Language?
- [ Read more ]
- Happy New Year!
2024 25
- December 2024 (7)
- the start of this series
- token and position embedding mappings
- some of my lab notes posts
- my last post in this series
- [ Read more ]
- [ Read more ]
- [ Read more ]
- September 2024 (1)
- [ Read more ]
- August 2024 (2)
- [ Read more ]
- [ Read more ]
- July 2024 (2)
- Done some initial experiments into memory usage for a 0.5B model
- last post
- May 2024 (2)
- Run some multi-GPU training
- successful fine-tune of the 8B model
- April 2024 (2)
- the start of these experiments
- Done the same, but in the cloud
- February 2024 (2)
- [ Read more ]
- Giving up on the AI chatbot tutorial (for now)
2023 5
2022 4
2021 7
2019 2
2018 2
2017 2
2016 4
2015 2
2014 6
2013 20
- December 2013 (1)
- ...just resting...
- October 2013 (3)
- [ Read more ]
- ...and another sidetrack -- a new theme!
- A brief sidetrack: Varnish
- September 2013 (4)
- the second part
- the third part
- There's more about the bug here
- Writing a reverse proxy/loadbalancer from the ground up in C, pause to regroup: fixed it!
- August 2013 (2)
- more background here
- Writing a reverse proxyloadbalancer from the ground up in c part 1
- July 2013 (1)
- [ Read more ]
- June 2013 (1)
- How many Python programmers are there in the world?
- February 2013 (1)
- A super-simple chat app with AngularJS, SockJS and node.js
2012 10
2011 14
2010 32
- December 2010 (3)
- And the same to you too, Google!
- [ Read more ]
- Fun with the Audio Data API
- November 2010 (1)
- A Dirigible screencast
- October 2010 (1)
- Dirigible
- September 2010 (1)
- [ Read more ]
- August 2010 (1)
- London Financial User Group Meeting: September 15
- July 2010 (1)
- Bare Git repositories
- May 2010 (3)
- [ Read more ]
- [ Read more ]
- [ Read more ]
- April 2010 (1)
- Regular expressions and Resolver One column-level formulae
- London Financial Python Users' Group
- March 2010 (2)
- An aside: SEO for restaurants
- [ Read more ]
- Next London Financial Python Users Group meeting
- February 2010 (3)
- Playing with NLTK
- [ Read more ]
- January 2010 (4)
- New laptop!
- Joining TheyWorkForYou to Twitter
- [ Read more ]
2009 43
- December 2009 (2)
- New gadget: Nokia N900
- A website for LFPUG
- November 2009 (5)
- [ Read more ]
- Shiny new blog theme
- New York Financial Users Group
- London Financial Python Users Group
- New splogging technique?
- October 2009 (2)
- at the end of October
- Webgl
- September 2009 (2)
- [ Read more ]
- [ Read more ]
- August 2009 (3)
- [ Read more ]
- hExcel -- A Hexagonal Spreadsheet
- Clicking the tabs from left to right
- July 2009 (1)
- A Resolver One model on the FT politics blog
- May 2009 (1)
- Talk at London Geek Night
- April 2009 (1)
- [ Read more ]
- March 2009 (5)
- Ada Lovelace day
- Ssds
- One-day discount
- Click-through ratios
- R in Resolver One (and perhaps IronPython generally)
- February 2009 (5)
- [ Read more ]
- Usability testers needed
- Praying that this isn't a hoax...
- Xmlrpc
- Good music composition software
- January 2009 (5)
- How much we decided to charge for our software
- how much we should charge for our software
- Spam subject line of the day
- The Resolver One Spreadsheet Challenge: a winner for round one!
- Resolver Systems competition closing soon
2008 35
- December 2008 (3)
- Money for spreadsheets
- [ Read more ]
- [ Read more ]
- November 2008 (7)
- to start going bust
- [ Read more ]
- Ironclad 0.7 released
- Resolver One plug
- Affective robots
- Best. Video. Ever.
- Book meme
- October 2008 (4)
- Evolution in action
- Recovered!
- I came for the article, I stayed for the comments
- Why use IronPython?
- September 2008 (2)
- A bit of fun
- Off to BoS
- August 2008 (1)
- Resolver One as a Python Success Story
- July 2008 (1)
- Workaround for Vista stupidity
- June 2008 (1)
- A Thinking Ape's Critique of Trans-Simianism
- May 2008 (1)
- Making a fool of yourself in public
- April 2008 (1)
- Building a collection of classical music
- January 2008 (4)
- Off to visit the Beast of Redmond ;-)
- Why should the government fund space exploration?
- Dear lazyweb: what is is about Linux and WPA?
- New gadget!
2007 13
2006 24
- December 2006 (4)
- Another robot
- Make:06 Trimet... hmmm.
- Installing Asterisk
- New project: VoIP
- MSBuild WTF: 'The error was:'
- November 2006 (18)
- Christmas has come early
- Back again
- [ Read more ]
- Part 1
- Part 2
- Part 3
- Part 4
- Part 5
- Part 6
- replace
- getting Ruby up and running
- [ Read more ]
- [ Read more ]
- [ Read more ]
- [ Read more ]
- Ipv6
- Hello, world!