Use verified GLM-5.2 tokenizer from ModelScope

This commit is contained in:
2026-07-01 19:48:17 +08:00
parent e7ebb30e1f
commit 11308f95c4
9 changed files with 1442093 additions and 7 deletions

View File

@@ -31,10 +31,10 @@
为了兼容 GLM-5.2 生态,本模型的 tokenizer/vocab 直接采用 GLM-5.2 同款词表,而不是旧 Laoyao 65K BPE。当前 g0033 上的引用路径是:
```bash
/mnt/tmp/yi/data/tokenizer/tokenizer.json
/mnt/beegfs/yi/laoyao_2b_moe/tokenizer/glm5.2/tokenizer.json
```
该 tokenizer 当前解析出的 vocab size 为 151,643。后续训练数据应按这个 tokenizer 重新统计/切分 token budget。
该 tokenizer 从 ModelScope zai-org/GLM-5.2 下载,当前解析出的 vocab size 为 154,820tokenizer.json sha256 为 19e773648cb4e65de8660ea6365e10acca112d42a854923df93db4a6f333a82d。后续训练数据应按这个 tokenizer 重新统计/切分 token budget。
## g0033 路径约定

View File

@@ -13,7 +13,7 @@
- experts: 12
- active experts/top-k: 4
- expert FFN hidden size 6144
- tokenizer: GLM-5.2 同款 tokenizer/vocab当前 g0033 引用路径 `/mnt/tmp/yi/data/tokenizer/tokenizer.json`vocab size 151,643
- tokenizer: GLM-5.2 同款 tokenizer/vocab当前 g0033 引用路径 `/mnt/beegfs/yi/laoyao_2b_moe/tokenizer/glm5.2/tokenizer.json`vocab size 154,820
关键改动是强制专家负载均衡router aux loss、z-loss、capacity factor 和 router bias update 都必须显式配置,避免旧实验中专家负载失衡。

View File

@@ -6,4 +6,4 @@
## Tokenizer
配置中的 tokenizer 目标是 GLM-5.2 同款 vocab。当前配置写死 g0033 `/mnt/tmp/yi/data/tokenizer/tokenizer.json`vocab size 151,643。NeMo/Megatron launcher 接线时,需要确保 embedding size、output projection 和 tokenizer loader 都使用这一份 vocab。
配置中的 tokenizer 目标是 GLM-5.2 同款 vocab。当前配置写死 g0033 repo 内 `/mnt/beegfs/yi/laoyao_2b_moe/tokenizer/glm5.2/tokenizer.json`vocab size 154,820sha256 `19e773648cb4e65de8660ea6365e10acca112d42a854923df93db4a6f333a82d`。NeMo/Megatron launcher 接线时,需要确保 embedding size、output projection 和 tokenizer loader 都使用这一份 vocab。

View File

@@ -5,9 +5,9 @@ model:
tokenizer:
library: huggingface_tokenizers
compatibility_target: GLM-5.2
path: /mnt/tmp/yi/data/tokenizer/tokenizer.json
vocab_size: 151643
design_note: use the same tokenizer JSON and token-id vocabulary as GLM-5.2 for serving/SFT compatibility
path: /mnt/beegfs/yi/laoyao_2b_moe/tokenizer/glm5.2/tokenizer.json
vocab_size: 154820
design_note: use ModelScope zai-org/GLM-5.2 tokenizer.json, sha256 19e773648cb4e65de8660ea6365e10acca112d42a854923df93db4a6f333a82d, for serving/SFT compatibility
# Derived from laoyaomodel preset: 2b-moe-active0.9b-balanced.
num_layers: 12

25
tokenizer/README.md Normal file
View File

@@ -0,0 +1,25 @@
# Tokenizer
本目录保存模型训练要使用的 tokenizer 文件。
当前设计要求与 GLM-5.2 完全兼容,因此使用 ModelScope 官方仓库 zai-org/GLM-5.2 的 tokenizer 文件。
文件:
```text
glm5.2/tokenizer.json
glm5.2/tokenizer_config.json
glm5.2/config.json
glm5.2/generation_config.json
```
核验结果:
```text
tokenizer.json sha256: 19e773648cb4e65de8660ea6365e10acca112d42a854923df93db4a6f333a82d
vocab_size: 154820
config.model_type: glm_moe_dsa
source: https://modelscope.ai/models/zai-org/GLM-5.2/files
```
不要再使用旧 Laoyao 65K BPE tokenizer也不要使用未验证来源的本机 tokenizer 缓存。

View File

@@ -0,0 +1,223 @@
{
"architectures": [
"GlmMoeDsaForCausalLM"
],
"attention_bias": false,
"attention_dropout": 0.0,
"dtype": "bfloat16",
"eos_token_id": [
154820,
154827,
154829
],
"ep_size": 1,
"first_k_dense_replace": 3,
"head_dim": 192,
"hidden_act": "silu",
"hidden_size": 6144,
"index_head_dim": 128,
"index_n_heads": 32,
"index_share_for_mtp_iteration": true,
"index_skip_topk_offset": 3,
"index_topk": 2048,
"index_topk_freq": 4,
"index_topk_pattern": null,
"indexer_rope_interleave": true,
"indexer_types": [
"full",
"full",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared",
"full",
"shared",
"shared",
"shared"
],
"initializer_range": 0.02,
"intermediate_size": 12288,
"kv_lora_rank": 512,
"max_position_embeddings": 1048576,
"mlp_layer_types": [
"dense",
"dense",
"dense",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse",
"sparse"
],
"model_type": "glm_moe_dsa",
"moe_intermediate_size": 2048,
"moe_layer_freq": 1,
"n_group": 1,
"n_routed_experts": 256,
"n_shared_experts": 1,
"norm_topk_prob": true,
"num_attention_heads": 64,
"num_experts_per_tok": 8,
"num_hidden_layers": 78,
"num_key_value_heads": 64,
"num_nextn_predict_layers": 1,
"pad_token_id": 154820,
"pretraining_tp": 1,
"q_lora_rank": 2048,
"qk_head_dim": 256,
"qk_nope_head_dim": 192,
"qk_rope_head_dim": 64,
"rms_norm_eps": 1e-05,
"rope_interleave": true,
"rope_parameters": {
"rope_theta": 8000000,
"rope_type": "default"
},
"routed_scaling_factor": 2.5,
"scoring_func": "sigmoid",
"tie_word_embeddings": false,
"topk_group": 1,
"topk_method": "noaux_tc",
"transformers_version": "5.12.0",
"use_cache": true,
"v_head_dim": 256,
"vocab_size": 154880
}

View File

@@ -0,0 +1,12 @@
{
"_from_model_config": true,
"eos_token_id": [
154820,
154827,
154829
],
"pad_token_id": 154820,
"temperature": 1.0,
"top_p": 0.95,
"transformers_version": "5.12.0"
}

1441793
tokenizer/glm5.2/tokenizer.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
{
"backend": "tokenizers",
"clean_up_tokenization_spaces": false,
"do_lower_case": false,
"eos_token": "<|endoftext|>",
"extra_special_tokens": [
"<|endoftext|>",
"[MASK]",
"[gMASK]",
"[sMASK]",
"<sop>",
"<eop>",
"<|system|>",
"<|user|>",
"<|assistant|>",
"<|observation|>",
"<|begin_of_image|>",
"<|end_of_image|>",
"<|begin_of_video|>",
"<|end_of_video|>",
"<|begin_of_audio|>",
"<|end_of_audio|>",
"<|begin_of_transcription|>",
"<|end_of_transcription|>"
],
"is_local": true,
"model_max_length": 1048576,
"model_specific_special_tokens": {},
"pad_token": "<|endoftext|>",
"padding_side": "left",
"remove_space": false,
"tokenizer_class": "TokenizersBackend"
}