print("[*] Loading libraries...") from datasets import load_dataset, interleave_datasets from tokenizers import ByteLevelBPETokenizer from tqdm import tqdm ds_fw = load_dataset("HuggingFaceFW/fineweb-edu", "sample-10BT", split="train", streaming=True) ds_cosm = load_dataset("HuggingFaceTB/smollm-corpus", "cosmopedia-v2", split="train", streaming=True) mixed = interleave_datasets([ds_fw, ds_cosm], probabilities=[0.70, 0.30], seed=42, stopping_strategy="all_exhausted") def get_training_corpus(): it = iter(mixed) for _ in tqdm(range(80_000), desc="Feeding"): yield next(it)["text"] tokenizer = ByteLevelBPETokenizer() print("[*] Training tokenizer...") tokenizer.train_from_iterator( get_training_corpus(), vocab_size=4096, min_frequency=2, show_progress=True, special_tokens=["", "", "", "", ""] ) tokenizer.save_model(".", "custom_llama_tokenizer") print("[*] Done.")