(self, params: Params)
| 971 | self.gguf = gguf.GGUFWriter(fname_out, gguf.MODEL_ARCH_NAMES[ARCH], endianess=endianess) |
| 972 | |
| 973 | def add_meta_arch(self, params: Params) -> None: |
| 974 | name = "LLaMA" |
| 975 | |
| 976 | # TODO: better logic to determine model name |
| 977 | if params.n_ctx == 4096: |
| 978 | name = "LLaMA v2" |
| 979 | elif params.path_model is not None: |
| 980 | name = str(params.path_model.parent).split('/')[-1] |
| 981 | |
| 982 | self.gguf.add_name (name) |
| 983 | self.gguf.add_context_length (params.n_ctx) |
| 984 | self.gguf.add_embedding_length (params.n_embd) |
| 985 | self.gguf.add_block_count (params.n_layer) |
| 986 | self.gguf.add_feed_forward_length (params.n_ff) |
| 987 | self.gguf.add_rope_dimension_count(params.n_embd // params.n_head) |
| 988 | self.gguf.add_head_count (params.n_head) |
| 989 | self.gguf.add_head_count_kv (params.n_head_kv) |
| 990 | |
| 991 | if params.n_experts: |
| 992 | self.gguf.add_expert_count(params.n_experts) |
| 993 | |
| 994 | if params.n_experts_used: |
| 995 | self.gguf.add_expert_used_count(params.n_experts_used) |
| 996 | |
| 997 | if params.f_norm_eps: |
| 998 | self.gguf.add_layer_norm_rms_eps(params.f_norm_eps) |
| 999 | else: |
| 1000 | raise ValueError('f_norm_eps is None') |
| 1001 | |
| 1002 | if params.f_rope_freq_base is not None: |
| 1003 | self.gguf.add_rope_freq_base(params.f_rope_freq_base) |
| 1004 | |
| 1005 | if params.rope_scaling_type: |
| 1006 | assert params.f_rope_scale is not None |
| 1007 | self.gguf.add_rope_scaling_type(params.rope_scaling_type) |
| 1008 | self.gguf.add_rope_scaling_factor(params.f_rope_scale) |
| 1009 | |
| 1010 | if params.n_orig_ctx is not None: |
| 1011 | self.gguf.add_rope_scaling_orig_ctx_len(params.n_orig_ctx) |
| 1012 | |
| 1013 | if params.rope_finetuned is not None: |
| 1014 | self.gguf.add_rope_scaling_finetuned(params.rope_finetuned) |
| 1015 | |
| 1016 | if params.ftype is not None: |
| 1017 | self.gguf.add_file_type(params.ftype) |
| 1018 | |
| 1019 | def handle_tokenizer_model(self, vocab: Vocab) -> str: |
| 1020 | # Map the vocab types to the supported tokenizer models |
no outgoing calls
no test coverage detected