fix: set `clean_up_tokenization_spaces` to `false`
Browse files`clean_up_tokenization_spaces=true` causes `tokenizer.decode()` to silently strip spaces before punctuation, producing incorrect decoded text for Llama 3's BPE tokenizer. This was inherited from a HuggingFace transformers library default — Llama 2 had it set to `false`, and Llama 4 already ships with `false`.
See the full writeup with reproduction, impact analysis, and history: https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct/discussions/356
The fix is a one-line change in `tokenizer_config.json`.
- tokenizer_config.json +1 -1
tokenizer_config.json
CHANGED
|
@@ -2050,7 +2050,7 @@
|
|
| 2050 |
}
|
| 2051 |
},
|
| 2052 |
"bos_token": "<|begin_of_text|>",
|
| 2053 |
-
"clean_up_tokenization_spaces":
|
| 2054 |
"eos_token": "<|end_of_text|>",
|
| 2055 |
"model_input_names": [
|
| 2056 |
"input_ids",
|
|
|
|
| 2050 |
}
|
| 2051 |
},
|
| 2052 |
"bos_token": "<|begin_of_text|>",
|
| 2053 |
+
"clean_up_tokenization_spaces": false,
|
| 2054 |
"eos_token": "<|end_of_text|>",
|
| 2055 |
"model_input_names": [
|
| 2056 |
"input_ids",
|