Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

change: InferenceFailedMlInference #821

Closed

Conversation

qryxip
Copy link
Member

@qryxip qryxip commented Aug 14, 2024

内容

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

関連 Issue

Resolves #779.

その他

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

そこまで気にしてないのですが、Mlに関して、省略語は他の勘違いをして間違って伝わってしまう可能性があるので避けたほうが良いかもです。
(Clean Code本とかで言われている点)
他の部分でMlというプレフィックスが大量に使われてたら、「なんか共通してついてる接頭語」という観点でありかもですが、現状そうでもなさそうなので。

ちなみにMLは機械学習以外に機械言語(Machine Language)、メーリングリスト、ミリリットルなどがあって意外と誤解しやすいかもです。
流石にミリリットルは無いだろうけど。

@qryxip
Copy link
Member Author

qryxip commented Aug 14, 2024

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

@Hiroshiba
Copy link
Member

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

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

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

@qryxip
Copy link
Member Author

qryxip commented Aug 18, 2024

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

@Hiroshiba
Copy link
Member

Hiroshiba commented Aug 19, 2024

なるほどです。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
Copy link
Member Author

qryxip commented Aug 19, 2024

例えば平均と分散を変えるだけの計算処理をする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
Copy link
Member

Hiroshiba commented Aug 19, 2024

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

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

InferenceFailedInfer, MlInference, or RunModel
2 participants