Title: The Smol Training Playbook: The Secrets to Building World-Class LLMs
URL Source: https://huggingfacetb-smol-training-playbook.hf.space/
Published Time: Oct. 30, 2025
Markdown Content: Table of Contents
Table of Contents
Title: The Smol Training Playbook: The Secrets to Building World-Class LLMs
URL Source: https://huggingfacetb-smol-training-playbook.hf.space/
Published Time: Oct. 30, 2025
Markdown Content: Table of Contents
Table of Contents
Speakers:
[00:00:32] Anna Tong: Hi everyone. Hi Jeremy. I'm told by many people here that you need no introduction, but for the two people who don't know who you are here, Jeremy, you're the CEO of Fast.ai, you're the CEO of Answer.ai. You created the first large language model, and you were the first outside organization to pour resources into PyTorch. Am I missing anything here?
[00:00:55] Jeremy Howard: That sounds good.
Place file below in ~/Library/LaunchAgents/tmux.plist.
launchctl bootstrap gui/$UID ~/Library/LaunchAgents/tmux.plistlaunchctl bootout gui/$UID/tmuxlaunchctl kickstart gui/$UID/tmuxThis is a list of phrases and formatting conventions typical of AI chatbots with real examples.
Words to watch: is/stands as/serves as a testament, plays a vital/significant role, underscores its importance, continues to captivate, leaves a lasting impact, watershed moment, key turning point, deeply rooted, profound heritage, steadfast dedication, stands as a, solidifies ...
LLM writing often puffs up the importance of the subject matter with reminders that it represents or contributes to a broader topic. There seems to be only a small repertoire of ways that it writes these reminders, so if they are otherwise appropriate it would be best to reword them anyway.
| from httpx import get as xget | |
| def read_url(url:str): | |
| "Reads a url" | |
| return xget(url, follow_redirects=True).text |
| Model | % correct | Cost | Time per case |
|---|---|---|---|
| gemini-2.5-pro-preview-06-05 (32k think) | 83.1% | $49.88 | 200.3s |
| o3 (high) + gpt-4.1 | 82.7% | ? | 110.0s |
| o3 (high) | 79.6% | $22.20 | 113.8s |
| gemini-2.5-pro-preview-06-05 (default think) | 79.1% | $45.60 | 175.2s |
| Gemini 2.5 Pro Preview 05-06 | 76.9% | $37.41 | 165.3s |
| Gemini 2.5 Pro Preview 03-25 | 72.9% | $0.00 | 45.3s |
| claude-opus-4-20250514 (32k thinking) | 72.0% | $65.75 | 44.1s |
| o4-mini (high) | 72.0% | $19.64 | 176.5s |
(A cleaned up transcription of this video section.)
This series of three steps here is what we're going to start by digging into. We're going to start out with a movie review like this one and decide whether it's positive or negative sentiment about the movie. That is the problem we have.
| "This is a test module which makes some simple tools available." | |
| __all__ = ["hi","whoami"] | |
| testfoo='testbar' | |
| def hi( | |
| who:str # who to say hi to | |
| ): | |
| "Say hi to `who`" | |
| return f"Hello {who}" |
| print('Hello from GitHub API!') |
Let's explore two main approaches to splitting FastHTML applications into multiple files: using Mount and using APIRouter. I'll explain the pros and cons of each and provide practical examples.
Mount is ideal when you want to create semi-independent sub-applications that could potentially be reused across different projects. Think of these as "mini-apps" that handle specific features.
# blog/routes.py