--- library_name: transformers tags: - tokenizers - sglang license: other license_name: grok-2 license_link: https://huggingface.co/xai-org/grok-2/blob/main/LICENSE --- # Grok-2 Tokenizer A 🤗-compatible version of the **Grok-2 tokenizer** (adapted from [xai-org/grok-2](https://huggingface.co/xai-org/grok-2)). This means it can be used with Hugging Face libraries including [Transformers](https://github.com/huggingface/transformers), [Tokenizers](https://github.com/huggingface/tokenizers), and [Transformers.js](https://github.com/xenova/transformers.js). ## Motivation As Grok 2.5 aka. [xai-org/grok-2](https://github.com/xai-org/grok-2) has been recently released on the 🤗 Hub with [SGLang](https://github.com/sgl-project/sglang) native support, but the checkpoints on the Hub won't come with a Hugging Face compatible tokenizer, but rather with a `tiktoken`-based JSON export, which is [internally read and patched in SGLang](https://github.com/sgl-project/sglang/blob/fd71b11b1d96d385b09cb79c91a36f1f01293639/python/sglang/srt/tokenizer/tiktoken_tokenizer.py#L29-L108). This repository then contains the Hugging Face compatible export so that users can easily interact and play around with the Grok-2 tokenizer, besides that allowing to use it via SGLang without having to pull the repository manually from the Hub and then using a mount, to prevent from directly having to point to the tokenizer path, so that Grok-2 can be deployed as: ```bash python3 -m sglang.launch_server --model-path xai-org/grok-2 --tokenizer-path alvarobartt/grok-2-tokenizer --tp-size 8 --quantization fp8 --attention-backend triton ``` Rather than the former 2-step process: ```bash hf download xai-org/grok-2 --local-dir /local/grok-2 python3 -m sglang.launch_server --model-path /local/grok-2 --tokenizer-path /local/grok-2/tokenizer.tok.json --tp-size 8 --quantization fp8 --attention-backend triton ``` ## Example ```py from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("alvarobartt/grok-2-tokenizer") assert tokenizer.encode("Human: What is Deep Learning?<|separator|>\n\n") == [ 35406, 186, 2171, 458, 17454, 14803, 191, 1, 417, ] assert ( tokenizer.apply_chat_template( [{"role": "user", "content": "What is the capital of France?"}], tokenize=False ) == "Human: What is the capital of France?<|separator|>\n\n" ) ``` > [!NOTE] > This repository has been inspired by earlier similar work by [Xenova](https://huggingface.co/Xenova) in [`Xenova/grok-1-tokenizer`](https://huggingface.co/Xenova/grok-1-tokenizer).