#!/usr/bin/env python3 import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1])) from mla.tokenizer import Tokenizer TRAIN = Path("data/splits/train.txt") OUT = Path("data/tokenizer/tokenizer.json") VOCAB_SIZE = 4096 def main(): text = TRAIN.read_text(encoding="utf-8") tok = Tokenizer() print(f"training byte-BPE: target vocab={VOCAB_SIZE}") tok.train(text, VOCAB_SIZE) OUT.parent.mkdir(parents=True, exist_ok=True) tok.save(OUT) print(f"vocab_size={tok.vocab_size} merges={len(tok.merges)}") print(f"wrote {OUT}") sample = "<|user|>hey how are you?<|assistant|>i'm good, you?" ids = tok.encode(sample) back = tok.decode(ids) print(f"sample_ids_len={len(ids)}") print(f"roundtrip_ok={back == sample}") print(f"decoded={back!r}") if __name__ == "__main__": main()