@@ -5079,10 +5079,25 @@ class Glm4Model(TextModel):
50795079 model_arch = gguf .MODEL_ARCH .GLM4
50805080
50815081 def set_vocab (self ):
5082- self ._set_vocab_gpt2 ()
5082+ from transformers import AutoTokenizer
5083+ tokenizer = AutoTokenizer .from_pretrained (self .dir_model , trust_remote_code = True )
5084+ special_vocab = gguf .SpecialVocab (self .dir_model , load_merges = True )
5085+ tokens , toktypes , tokpre = self .get_vocab_base ()
5086+ self .gguf_writer .add_tokenizer_model ("gpt2" )
5087+ self .gguf_writer .add_tokenizer_pre (tokpre )
5088+ self .gguf_writer .add_token_list (tokens )
5089+ self .gguf_writer .add_token_types (toktypes )
5090+ special_vocab = gguf .SpecialVocab (self .dir_model , load_merges = True )
5091+ special_vocab ._set_special_token ("eos" , tokenizer .get_added_vocab ()["<|endoftext|>" ])
5092+ special_vocab ._set_special_token ("eot" , tokenizer .get_added_vocab ()["<|user|>" ])
5093+ special_vocab ._set_special_token ("unk" , tokenizer .get_added_vocab ()["<|endoftext|>" ])
5094+ special_vocab ._set_special_token ("bos" , tokenizer .get_added_vocab ()["[gMASK]" ])
5095+ special_vocab .add_to_gguf (self .gguf_writer )
50835096
50845097 def set_gguf_parameters (self ):
50855098 super ().set_gguf_parameters ()
5099+ rope_dim = self .hparams ["head_dim" ]
5100+ self .gguf_writer .add_rope_dimension_count (int (rope_dim * self .hparams .get ("partial_rotary_factor" , 0.5 )))
50865101 if self .hparams .get ("rope_scaling" ) is not None and "factor" in self .hparams ["rope_scaling" ]:
50875102 if self .hparams ["rope_scaling" ].get ("type" ) == "yarn" :
50885103 self .gguf_writer .add_rope_scaling_type (gguf .RopeScalingType .YARN )
0 commit comments