axinc-ai / ailia-models

The collection of pre-trained, state-of-the-art AI models for ailia SDK
2k stars 318 forks source link

Implement BertVits2 #1418

Closed kobakos closed 1 week ago

kobakos commented 6 months ago

https://github.com/axinc-ai/ailia-models/issues/1336

kyakuno commented 6 months ago

モデルアップロード済み。 https://storage.googleapis.com/ailia-models/bert-vits2/BertVits2.2PT_dec.onnx

kyakuno commented 5 months ago

@kobakos 下記のモデルもONNXに変換可能でしょうか?

    processor = ClapProcessor.from_pretrained("laion/clap-htsat-fused")

下記はAI推論しておらず、BertJapaneseTokenizerそのままのようなので、ONNXに変換は不要と考えています。

   tokenizer = AutoTokenizer.from_pretrained("ku-nlp/deberta-v2-large-japanese-char-wwm")

https://huggingface.co/ku-nlp/deberta-v2-large-japanese-char-wwm/tree/main

kobakos commented 5 months ago

Tokenizerと同じで必要ないと思ってました🙇🙇 後でSlackにアップロードします

kyakuno commented 1 month ago

@kobakos ClapProcessorの置き換えについて、意図としては、下記のfeature_extractorをONNXに変換いただいて、transformersを使用せずに推論できるようにしたいと考えています。

        if audios is not None:
            audio_features = self.feature_extractor(
                audios, sampling_rate=sampling_rate, return_tensors=return_tensors, **kwargs
            )

https://github.com/huggingface/transformers/blob/main/src/transformers/models/clap/processing_clap.py

kobakos commented 4 weeks ago

ClapProcessor内のfeature_extractorはnn.Moduleではなかったようなのですが、torchの関数が使われていたのでlibrosaメインに書き換えて対応しました。

kyakuno commented 2 weeks ago

@kobakos 実装、ありがとうございました!

kyakuno commented 1 week ago

ailia Tokenizer

{'input_ids': array([[   1, 1887, 1558,   18, 1360,   13,   41,   14,    2]]), 'attention_mask': array([[1, 1, 1, 1, 1, 1, 1, 1, 1]]), 'token_type_ids': array([[0, 0, 0, 0, 0, 0, 0, 0, 0]])}
{'input_ids': array([[    0, 36714,  6248, 10172, 48549, 47780, 48576, 48281, 48241,
        48885, 42393, 11582, 23171, 47918, 47780, 48190, 48735,     2]]), 'attention_mask': array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}

Transformer

{'input_ids': array([[   1, 1887, 1558,   18, 1360,   13,   41,   14,    2]]), 'token_type_ids': array([[0, 0, 0, 0, 0, 0, 0, 0, 0]]), 'attention_mask': array([[1, 1, 1, 1, 1, 1, 1, 1, 1]])}
{'input_ids': array([[    0, 36714,  6248, 10172, 48549, 47780, 48576, 48281, 48241,
        48885, 42393, 11582, 23171, 47918, 47780, 48190, 48735,     2]]), 'attention_mask': array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}