XoneLM-1.0-Paper / tokenize_example.py
cloverxion's picture
feat: publish XoneLM architecture and LuminaV optimizer
bbf30b7 verified
Raw
History Blame Contribute Delete
1.9 kB
from tokenizer import (
build_xonelm_tokenizer,
MultiTurnConversationFormatter,
SpecialTokenConfig,
)
def run_tokenizer_demo():
sample_corpus = [
"Once upon a time, Lily found a golden key in the garden.",
"Timmy and his dog Max played with a red ball.",
"def solve_quadratic(a, b, c): return (-b + (b**2 - 4*a*c)**0.5) / (2*a)",
"\\int_{0}^{\\infty} e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}",
"The system latency is <= 10ms with async/await workers.",
]
tokenizer = build_xonelm_tokenizer(corpus=sample_corpus, vocab_size=1000)
print("Tokenizer Vocab Size:", len(tokenizer))
text_to_encode = "Lily solved \\alpha + \\beta == 42 async await."
encoded = tokenizer.encode(text_to_encode)
token_ids = encoded.ids if hasattr(encoded, "ids") else encoded["input_ids"]
decoded = tokenizer.decode(token_ids)
print("Single Text Tokenization")
print("Input Text :", text_to_encode)
print("Token IDs :", token_ids)
print("Decoded :", decoded)
conversation = [
{"role": "system", "content": "You are a helpful and wise AI assistant."},
{"role": "user", "content": "Can you explain how it's work?"},
{"role": "assistant", "content": "No! I can't. hehe"},
]
cfg = SpecialTokenConfig(
pad_token_id=0,
bos_token_id=1,
eos_token_id=2,
unk_token_id=3,
eod_token_id=4,
)
formatter = MultiTurnConversationFormatter(tokenizer, cfg)
formatted = formatter.format_conversation(conversation)
print("Multi-Turn ChatML Formatting")
print("Input IDs Length :", len(formatted["input_ids"]))
print("Labels Length :", len(formatted["labels"]))
print("Formatted Text :\n" + tokenizer.decode(formatted["input_ids"]))
if __name__ == "__main__":
run_tokenizer_demo()