SceneWorks's picture
Upload README.md with huggingface_hub
4001e09 verified
|
Raw
History Blame Contribute Delete
2.57 kB
---
license: other
license_name: kolors
license_link: https://huggingface.co/Kwai-Kolors/Kolors-diffusers/blob/main/MODEL_LICENSE
language:
- en
- zh
library_name: tokenizers
tags:
- kolors
- chatglm3
- tokenizer
- mlx
- sceneworks
---
# Kolors ChatGLM3 fast tokenizer (`tokenizer.json`)
A **derived artifact** for running [Kwai-Kolors/Kolors-diffusers](https://huggingface.co/Kwai-Kolors/Kolors-diffusers)
on the native-Rust/MLX **mlx-gen** engine (SceneWorks, epic 3090).
## Why this exists
Kolors conditions on **ChatGLM3-6B**, which ships **only a slow SentencePiece tokenizer**
(`tokenizer.model` + a custom `ChatGLMTokenizer(PreTrainedTokenizer)`) — there is **no fast
`tokenizer.json`** in the upstream repo. The Rust engine's tokenizer loader (`mlx_gen::TextTokenizer`,
consumed by the Kolors generator and the Kolors LoRA/LoKr trainer) reads the HF `tokenizers` **fast**
serialization, so it needs a `tokenizer.json`.
This repo hosts that derived `tokenizer.json` so SceneWorks model-install can overlay it onto the
upstream Kolors-diffusers snapshot (instead of running a Python SentencePiece→fast conversion at
install time on every machine — a Python-eradication consideration, epic 3482).
## How it was built
Materialized by `tools/build_kolors_tokenizer.py` (mlx-gen): converts the ChatGLM3 SP model to a fast
`tokenizer.json` via transformers' SP converter. The fast tokenizer reproduces the SP **content** ids
exactly; it adds **no** special tokens — the ChatGLM `[gMASK]` (64790) / `sop` (64792) prefix, left-pad,
and `position_ids` are applied by the Rust `KolorsTokenizer` wrapper (matching
`build_inputs_with_special_tokens` + `_pad`, `max_length=256`).
**Validation:** fast-tokenizer content ids == `sp_model.encode(text)` across an EN + EN-long(truncation)
+ CN + mixed CN/EN + empty(negative-prompt) battery; special-token ids asserted
(`[gMASK]`=64790, `sop`=64792, pad=unk=0).
## Files
- `tokenizer.json` — the derived fast tokenizer (the file the Rust engine needs).
- `tokenizer.model` — the upstream ChatGLM3 SentencePiece model (provenance / reproducibility).
- `tokenizer_config.json` — the upstream tokenizer config.
## License & provenance
Derived from the ChatGLM3 tokenizer shipped with Kwai-Kolors/Kolors-diffusers. Use is governed by the
upstream [Kolors model license](https://huggingface.co/Kwai-Kolors/Kolors-diffusers/blob/main/MODEL_LICENSE)
and the [ChatGLM3-6B license](https://huggingface.co/THUDM/chatglm3-6b). This repo redistributes only the
tokenizer (no model weights) for engine interoperability.