Views
No views yet
| Character | UTF-8 | UTF-32 | UTF-32 Decomposed (bytes) |
|---|---|---|---|
| A | \x41 | U+00000041 | [0, 0, 0, 65] |
| é | \xC3\xA9 | U+000000E9 | [0, 0, 0, 233] |
| € | \xE2\x82\xAC | U+000020AC | [0, 0, 32, 172] |
| 😀 | \xF0\x9F\x98\x80 | U+0001F600 | [0, 1, 246, 0] |
1from transformers import AutoModelForCausalLM, LogitsProcessorList
2import torch
3from utf8_tokenizer.logits_processor import UTF8ValidationLogitsProcessor
4from utf8_tokenizer.char_causal_lm import CharacterCausalLMWrapper
5
6from utf8_tokenizer import UTF8Tokenizer
7
8model_id = "sign/utf32-lm-tiny"
9
10tokenizer = UTF8Tokenizer()
11model = AutoModelForCausalLM.from_pretrained(model_id)
12
13prompt = "My name is"
14
15inputs = tokenizer([prompt], return_tensors="pt",
16 padding=True,
17 add_special_tokens=True)
18# We need to remove the EOS token
19inputs["input_ids"] = inputs["input_ids"][:, :-1]
20inputs["attention_mask"] = inputs["attention_mask"][:, :-1]
21
22
23with torch.no_grad():
24 out = model.generate(
25 **inputs,
26 max_new_tokens=256,
27 )
28
29print(tokenizer.decode(out[0], skip_special_tokens=False))
301python run_clm.py \
2 --use_bit_embeddings True \
3 --encoding utf32 \
4 --output_dir ./output-tiny-lm-fineweb-groups \
5 --dataset_name HuggingFaceFW/fineweb \
6 --streaming True \
7 --dataloader_num_workers 1 \
8 --dataloader_prefetch_factor 4 \
9 --dataloader_pin_memory True \
10 --dataloader_persistent_workers True \
11 --do_train True \
12 --save_strategy steps \
13 --max_steps 100000 \
14 --save_steps 1000 \
15 --save_total_limit 1 \
16 --logging_steps 100 \
17 --logging_strategy steps \
18 --model_name_or_path sbintuitions/tiny-lm \
19 --per_device_train_batch_size 256 \
20 --block_size 256 \
21 --optim adamw_torch_fused \
22 --learning_rate 3e-4 \
23 --lr_scheduler_type cosine \
24 --warmup_ratio 0.01 \
25 --weight_decay 0.1 \
26 --adam_beta1 0.9 \
27 --adam_beta2 0.95 \
28 --max_grad_norm 1.0 \
29 --gradient_checkpointing True \
30 --bf16 True \
31 --seed 42 \
32 --report_to wandb \
33 --include_num_input_tokens_seen True