char-fork/llama.cpp

git clone https://git.t4t.associates/char-fork/llama.cpp

Xuan-Son Nguyenconvert: add @ModelBase.example (#27208)fa88ae936

char/aliceai-t5-moe
1.7 KiB46 linesraw
1from __future__ import annotations
2
3from typing import Callable, TYPE_CHECKING
4
5if TYPE_CHECKING:
6    from torch import Tensor
7
8from .base import ModelBase, TextModel, gguf, logger
9
10
11@ModelBase.register("WavTokenizerDec")
12@ModelBase.example("novateur/WavTokenizer-large-speech-75token")
13class WavTokenizerDecModel(TextModel):
14    model_arch = gguf.MODEL_ARCH.WAVTOKENIZER_DEC
15
16    @classmethod
17    def filter_tensors(cls, item: tuple[str, Callable[[], Tensor]]) -> tuple[str, Callable[[], Tensor]] | None:
18        name, gen = item
19
20        if \
21                name.endswith("codebook.cluster_size") or \
22                name.endswith("codebook.embed_avg") or \
23                name.endswith("codebook.inited"):
24            logger.debug(f"Skipping {name!r}")
25            return None
26
27        return super().filter_tensors(item)
28
29    def set_vocab(self):
30        self._set_vocab_none()
31
32    def set_gguf_parameters(self):
33        super().set_gguf_parameters()
34        self.gguf_writer.add_vocab_size         (self.hparams["vocab_size"])
35        self.gguf_writer.add_features_length    (self.hparams["n_embd_features"])
36        self.gguf_writer.add_feed_forward_length(self.hparams["n_ff"])
37        self.gguf_writer.add_group_norm_eps     (self.hparams["group_norm_epsilon"])
38        self.gguf_writer.add_group_norm_groups  (self.hparams["group_norm_groups"])
39
40        self.gguf_writer.add_posnet_embedding_length(self.hparams["posnet"]["n_embd"])
41        self.gguf_writer.add_posnet_block_count     (self.hparams["posnet"]["n_layer"])
42
43        self.gguf_writer.add_convnext_embedding_length(self.hparams["convnext"]["n_embd"])
44        self.gguf_writer.add_convnext_block_count     (self.hparams["convnext"]["n_layer"])
45
46        self.gguf_writer.add_causal_attention(False)