Qwen3.8-Flash-Next: transformers 5.16 drops \p{M} from the pre-tokenizer, so combining-mark text gets different ids
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Empieza en utils/hf.py e inspecciona cómo load_tokenizer usa AutoTokenizer; compara su salida con la del tokenizador cargado directamente desde tokenizer.json, como en la reproducción del issue. Comprueba la versión fijada de transformers y confirma que los ejemplos reportados con marcas combinantes produzcan IDs coincidentes después del cambio. Se considera terminado cuando el tokenizador cargado coincide con tokenizer.json para esos ejemplos, sin cambiar el comportamiento de ASCII y del latín precompuesto que no se ve afectado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
load_tokenizer (utils/hf.py) uses AutoTokenizer. With the pinned transformers 5.16.x, this checkpoint loads as Qwen2Tokenizer, which replaces the tokenizer.json pre-tokenizer with a split regex that lacks \p{M}. Text with combining marks then gets different ids than the model was trained on: नमस्ते दुनिया gives 10 ids instead of 6, and สวัสดีครับ gives 7 instead of 3. ASCII and precomposed Latin text are unaffected. It is the same on 5.15.1 and 5.17.0, and correct on 5.18.0+, which loads Qwen3_5Tokenizer.
from freetoken.utils.hf import load_tokenizer
from tokenizers import Tokenizer
p = "<local nvidia/Qwen3.8-Flash-Next-NVFP4 dir>"; t = "नमस्ते दुनिया"
print(len(load_tokenizer(p).encode(t, add_special_tokens=False)),
len(Tokenizer.from_file(p + "/tokenizer.json").encode(t, add_special_tokens=False).ids)) # 10 6
Expected: ids match tokenizer.json. For example, raise the pin to >=5.18, or keep the file's pre-tokenizer in load_tokenizer.
Environment: main 07813248 (CPU-only check), transformers 5.16.1, Python 3.14.
Scope (transformers 5.16.1 Qwen2Tokenizer against tokenizer.json):
- Identical:
- emoji with variation selectors (
⚠️,✅,❤️,✔️,1️⃣); - Latin with a combining accent (
café), precomposed Latin, Japanese, Korean, Greek, Cyrillic; - all 770 text files of this repository (
.py,.md,.json,.sh,.cu, ...); - the last 3,000 commit messages.
- emoji with variation selectors (
- Different: scripts whose marks combine inside a word, e.g. Devanagari (
नमस्ते) and Thai (สวัสดี).
ASCII and code-heavy traffic is unaffected. Indic and Southeast Asian text gets out-of-distribution ids.
- Lenguaje dominante
- Python
- Estrellas
- 14.2k
- Forks
- 1.4k
- Merge medio
- 1 d 28 min
- PR fusionados (30 d)
- 89
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FlashML-org/FreeToken
-
Desktop feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
FlashML-org/FreeToken#800 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
FlashML-org/FreeToken#767 ·
Los mantenedores suelen responder en 1 día
-
test_gemv_path_matches_the_transcription fails on sm_120 (bf16 rounding tie exceeds the tolerance)Posiblemente ocupada @void-mckenzie la tomó hace 12 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
FlashML-org/FreeToken#649 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
FlashML-org/FreeToken#646 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
FlashML-org/FreeToken#645 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de FlashML-org/FreeToken
Issues similares
-
Project submission:Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
slavakurilyak/awesome-ai-agents#845 ·
Los mantenedores suelen responder en 1 día
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertodifficulty:2 enhancement good first issue
Dificultad 1/5 1-3 horas Aptitud para principiantes 92/100
MakazhanAlpamys/Soup#2178 ·
Los mantenedores suelen responder en 1 día
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
scverse/rapids-singlecell#854 ·
Los mantenedores suelen responder en 1 día
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLPosiblemente ocupada @ninglinLiu la tomó hoy. Abiertoarea:frontend backend:slang bug direction:input
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=FalsePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 13 días