VOICEVOX / voicevox_core

無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのコア
https://voicevox.hiroshiba.jp/
MIT License
866 stars 117 forks source link

change: `InferenceFailed` → `MlInference` #821

Closed qryxip closed 2 months ago

qryxip commented 2 months ago

内容

InferenceFailed{Error,Exception}MlInference{Error,Exception}にします。

関連 Issue

Resolves #779.

その他

qryxip commented 2 months ago

自然言語の"ML inference"というフレーズであると考えると、ほぼ"machine learning"に限られるのではないかと思っています。ChatGPT 4oに聞いてもこんな感じでした。 https://chatgpt.com/share/fcc8928e-8fec-4b57-9189-5c5ccc421b7d

Hiroshiba commented 2 months ago

機械学習分野における推論という言葉を知っているAIに聞いたら、それはさすがに意味を分かってくれると思います。 問題は機械学習を知らない人かなと。

ちなみにMlをつけたい理由って何でしょう? (つけたくない理由は省略形は使わない方がいい+なくても通じるためです)

Inferenceだけだと何のことかよくわからないかもだから、ということでしたらInferenceOperation(Error)とかどうでしょう。 まあこれでもよくわからないかもですが。。 そもそもMLを知る人はどれでも意味がわかって、MLを知らない人はどれでも意味がわからないと思うので、通じやすさだけ見れば本当にどれでも良いかもしれない・・・。

qryxip commented 2 months ago

理由としては"inference"自体は広範な用法がある一方"ML inference"ならほぼ一意になり、またMlInferenceml_inferenceという命名もそこそこ先例があるからですね。仮に読む人が"inference"という単語自体を知らなくても、"ML inference"であれば取っ掛かりになると思います。

Hiroshiba commented 2 months ago

なるほどです。Inferenceだけだと微妙だというのはたしかに!!!

onnxがMLにより作られたものであるということは、コアのコード内やAPIの意識から外すべきかもです。(理由は後述) InferenceOperationとか、ModelInferenceとかどうでしょう 🙇 ModelInferenceだとVVMの方のModelと意味が被っちゃいますが。。

あと、Inferenceを避ける言い回しがないかと探してましたが、やっと思いつきました。「生成エラー」はダメでしょうか? Generateとか、GenerateProcessとか、GenerateOperationとか、Generationとか。

機械学習という言葉を避けたい理由 単純にコアの本質に関係ないはずだからです。 例えば平均と分散を変えるだけの計算処理をするonnxも作れるのですが、これはもはや機械学習じゃないんですよね。 WORLDの合成と同じ処理をするonnxや、フーリエ変換するだけのonnxも作れるし、マルチプラットフォームと高速化の恩恵を受けられるから、機械学習に由来しないonnxモデルは結構あり得る話に感じます。 VOICEVOX準拠onnxの場合でも、例えば「音素ごとに長さを辞書で持っておいて返す」だけの`predict_duration.onnx`とかはかなりあり得るはずです。 この辺が機械学習という名前を避けたい理由です。 まあ普段から機械学習に触れてるので、解像度が高く微妙な差異に敏感になっちゃってる気はしてます 😇
qryxip commented 2 months ago

例えば平均と分散を変えるだけの計算処理をするonnxも作れるのですが、これはもはや機械学習じゃないんですよね。 WORLDの合成と同じ処理をするonnxや、フーリエ変換するだけのonnxも作れるし、マルチプラットフォームと高速化の恩恵を受けられるから、機械学習に由来しないonnxモデルは結構あり得る話に感じます。 VOICEVOX準拠onnxの場合でも、例えば「音素ごとに長さを辞書で持っておいて返す」だけのpredict_duration.onnxとかはかなりあり得るはずです。

なるほど。モック以外でもあり得る感じですかね?

InferenceOperationとか、ModelInferenceとかどうでしょう 🙇 ModelInferenceだとVVMの方のModelと意味が被っちゃいますが。。

あと、Inferenceを避ける言い回しがないかと探してましたが、やっと思いつきました。「生成エラー」はダメでしょうか? Generateとか、GenerateProcessとか、GenerateOperationとか、Generationとか。

単純にRunModelErrorとかどうでしょうか?自然言語での言い回しとしても識別子の命名としても割と一般的なようですし、"model"が指すものもONNXとVVMどっちの意味でも通るはず…?

Hiroshiba commented 2 months ago

なるほど。モック以外でもあり得る感じですかね?

少なくともVOICEVOX製品版ではほぼありえない、くらいの温度感ではあります! もし僕がコアをフォークしてonnxを作る必要があり、品質にこだわりがないのであれば音素長辞書にするかな、くらいの感じです。 さすがにpauの前かどうかくらいのフラグはつけるかもですが。(人は語尾を伸ばして発音するので)

単純にRunModelErrorとかどうでしょうか?自然言語での言い回しとしても識別子の命名としても割と一般的なようですし、"model"が指すものもONNXとVVMどっちの意味でも通るはず…?

あーーーーーーーーーーー良いと思います!!!!! Run良いですね! modelも本当は避けたいんだけど、もうこれしかないので良いなと思いました!!!