Oggi pubblico il mio primo post sul blog: Tokenizzazione dai primi principi. Ho costruito un tokenizer BPE a livello di byte con pre-tokenizzazione in Rust e ho raggiunto una velocità di codifica paragonabile a quella dei tokenizer di huggingface. Mostro idee e algoritmi, comprese le sfumature di implementazione, come l'uso della cache LRU e della lista doppiamente collegata. Con quella base, vado oltre. La maggior parte dei tokenizer si limita a dividere per regex, mantenendo le fusioni all'interno delle parole, possiamo fare di meglio. Ho ottenuto un 20% in più di efficienza nei campioni per l'addestramento LLM con SuperBPE. Dimostro come implementare SuperBPE abilitato tardi nell'addestramento, il che consente fusioni tra parole con la stessa perdita per byte durante l'addestramento. Grafici + codice + link nella risposta.