Heute veröffentliche ich meinen ersten Blogbeitrag: Tokenisierung aus ersten Prinzipien. Ich habe einen Byte-level BPE-Tokenizer mit Rust-Vor-Tokenisierung entwickelt und eine Kodierungsgeschwindigkeit erreicht, die mit den Tokenizern von huggingface vergleichbar ist. Ich zeige Ideen und Algorithmen, einschließlich der Nuancen der Implementierung, wie die Verwendung von LRU-Cache und doppelt verketteten Listen. Mit diesem Fundament gehe ich weiter. Die meisten Tokenizer teilen nur nach Regex auf und halten die Zusammenführungen innerhalb von Wörtern, wir können es besser machen. Ich habe 20 % effizienteres LLM-Training mit SuperBPE erreicht. Ich demonstriere, wie man SuperBPE spät im Training implementiert, was Kreuzwort-Zusammenführungen mit demselben Byte-Verlust während des Trainings ermöglicht. Plots + Code + Link in der Antwort.