@@ -5079,10 +5079,25 @@ class Glm4Model(TextModel):
5079
5079
model_arch = gguf .MODEL_ARCH .GLM4
5080
5080
5081
5081
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 )
5083
5096
5084
5097
def set_gguf_parameters (self ):
5085
5098
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 )))
5086
5101
if self .hparams .get ("rope_scaling" ) is not None and "factor" in self .hparams ["rope_scaling" ]:
5087
5102
if self .hparams ["rope_scaling" ].get ("type" ) == "yarn" :
5088
5103
self .gguf_writer .add_rope_scaling_type (gguf .RopeScalingType .YARN )
0 commit comments