Views
No views yet
Note: This is not a plug-and-play LLM tokenizer, but rather a raw statistical resource.
1tokenizer = AutoTokenizer.from_pretrained(
2 "transhumanist-already-exists/crh_monocorpus-bpe-50_256"
3)
4toks = tokenizer("Qırımtatarlar – halq olaraq Qırımda şekillendi.", add_special_tokens=False)
5print(toks.input_ids)# [15125, 3633, 654, 505, 3570, 6499, 16162, 8525, 22927, 50]
6print(len(toks.input_ids))# 10
7
8#Compare with aya-expanse
9
10tokenizer = AutoTokenizer.from_pretrained("CohereLabs/aya-expanse-32b")
11toks = tokenizer("Qırımtatarlar – halq olaraq Qırımda şekillendi.", add_special_tokens=False)
12print(toks.input_ids)# [56, 78927, 91, 9426, 2684, 2129, 12579, 88, 1691, 24713, 88, 2672, 67673, 107589, 23366, 1873, 15031, 21]
13print(len(toks.input_ids))# 18!tokenizer.json Byte‐level tokenizer spec (vocab, merges, model settings).tokenizer_config.json Configuration metadata.special_tokens_map.json Mapping of special token (The same with Aya).readable_tokenizer_utf8.json Human-readable dump: UTF-8-decoded sub-tokens and merge rules, for corpus-linguistic inspection.readable_tokenizer_utf8.json)1import os
2from datasets import load_dataset
3from tokenizers.pre_tokenizers import ByteLevel
4from transformers import AutoTokenizer
5
6os.environ["TOKENIZERS_PARALLELISM"] = "true"
7
8# Hyper-parameters
9MAX_VOCAB_SIZE = 50_256
10CORPUS_NAME = "QIRIM/crh_monocorpus"
11SEED = 42
12MIN_FREQUENCY = 6
13TOKENIZER_PATH = "./crh_monocorpus-bpe-50_256"
14
15# 1) Load base Aya tokenizer and corpus
16tokenizer = AutoTokenizer.from_pretrained("CohereLabs/aya-expanse-32b")
17full_ds = load_dataset(CORPUS_NAME, split="train", cache_dir="./ds")
18ds = full_ds.remove_columns([c for c in full_ds.column_names if c != "text"])
19ds = ds.shuffle(seed=SEED)
20
21# 3) Define streaming iterator
22def batch_iterator(dataset, batch_size=len(ds)):
23 for batch in dataset.iter(batch_size=batch_size):
24 yield batch["text"]
25
26# 4) Train new tokenizer from iterator
27new_tok = tokenizer.train_new_from_iterator(
28 batch_iterator(ds),
29 vocab_size=MAX_VOCAB_SIZE,
30 length=len(ds),
31 new_special_tokens=list(tokenizer.added_tokens_encoder.keys()),
32 min_frequency=MIN_FREQUENCY,
33 initial_alphabet=ByteLevel.alphabet()
34)
35
36# 5) Save locally
37new_tok.save_pretrained(TOKENIZER_PATH)1@misc{zaduha2025post9143,
2 author = "{Bohdan Didenko}",
3 title = "{Post \#9138 on Telegram Channel Zaduha}",
4 howpublished = "\url{https://t.me/zaduha/9143}",
5 month = may,
6 year = {2025},
7 note = "[Online; accessed 24 May 2025]"
8}