Closed takumi2786 closed 1 year ago
@kyakuno 遅くなってしまい申し訳ありません:bow:
fugumt-en-jaを参考に進めていたのですが、出力されるonnxの形式が異なる点などに苦戦してしまっていました。 日本語の翻訳が正常に動作することを確認できるところまで進みました。
(取り急ぎ、fugumt-en-jaで利用されていたbeam searchではなくgreedy searchを実装しています。)
python fugumt-ja-en.py -i 近年、注目を集めている基盤モデルとは何かを解説します。基盤モデルを 使用することで、今までできなかったような高精度な認識が可能になってきています。
# translation_text: In recent years, we have explained what the base model has attracted attention, and by using the base model, it has become possible to realize high-precision recognition as previously impossible.
実装、ありがとうございました!レビューコメントを記載させていただきました。
合わせて、下記へのモデル追加をお願いします。README.mdのailiaのバージョンは不記載で問題ありません。 https://github.com/axinc-ai/ailia-models/blob/master/README.md https://github.com/axinc-ai/ailia-models/blob/master/scripts/download_all_models.sh
ライセンスファイルは下記をコピーして追加してください。 https://github.com/axinc-ai/ailia-models/blob/master/natural_language_processing/fugumt-en-ja/LICENSE
@kyakuno
再度遅れてしまい申し訳ありません:bow: 指摘していただいた項目に対応しました。
一点、onnxオプションをつけずに実行した場合に以下のエラーが発生するようで、おそらくdecoderのonnxが少し特殊な構造をしているためではないかと思っています。 ご確認お願いできますでしょうか。
code: -7 (The internal state of the ailia is invalid.)
onnxruntimeでもWarningが出力されているため、onnxか入力Tensorに問題がありそうな気がしますね。
onnxruntimeのwarning
2023-08-29 13:18:47.285609 [E:onnxruntime:, sequential_executor.cc:514 ExecuteKernel] Non-zero status code returned while running If node. Name:'optimum::if' Status Message: Non-zero status code returned while running Reshape node. Name:'/model/decoder/layers.0/encoder_attn/Reshape_4' Status Message: /Users/runner/work/1/s/onnxruntime/core/providers/cpu/tensor/reshape_helper.h:26 onnxruntime::ReshapeHelper::ReshapeHelper(const onnxruntime::TensorShape &, onnxruntime::TensorShapeVector &, bool) i < input_shape.NumDimensions() was false. The dimension with value zero exceeds the dimension size of the input tensor.
ailiaのerror
ailia.core.AiliaInvalidStateException: code: -7 (The internal state of the ailia is invalid.)
+ error detail : Layer:/model/decoder/layers.0/encoder_attn/MatMul_output_0(MatMul) Error:This layer is not support inference with empty blobs.
ailia.core.AiliaInvalidLayerException: code: -10 (Incorrect node parameter. [broken or unsupported AI model file])
+ error detail : Layer:/model/decoder/layers.0/self_attn/Reshape_2_output_0(Reshape) Error:The input size doesn't match the output size (input_shape=(3,1,512) (stride:(512,512,1)), output_shape=(1,1,8,64) (stride:(512,512,64,1))).
netronで見ると、複雑なグラフになってしまっている気がしていまして、どのような手順でonnxに変換しましたでしょうか?
下記と同じようなTransformersのソースコード修正をした上で、ONNX変換が必要そうです。 https://github.com/axinc-ai/ailia-models/issues/1039
@kyakuno 確認ありがとうございます! 変換処理は以下に記載していました。 https://github.com/axinc-ai/ailia-models/issues/1159
はじめ https://github.com/axinc-ai/ailia-models/issues/1039 記載の方法を使っていたのですが、若干出力が変わっておりうまくいかず、一旦、hugging faceが推奨しているoptimum-cliを試していました。
再度https://github.com/axinc-ai/ailia-models/issues/1039の方法を試してみようかと思います:bow:
@ooe1123 こちらのissueの引き継ぎをお願いすることは可能でしょうか?サンプルは既存コードで問題なさそうですので、onnxへのエクスポートをお願いできないかと考えています。
kyakuno@mbakk fugumt-ja-en % python3 fugumt-ja-en.py -i "これは高速なAI推論エン ジンです。" -e 0
INFO arg_utils.py (13) : Start!
INFO arg_utils.py (163) : env_id: 0
INFO arg_utils.py (166) : CPU
INFO model_utils.py (84) : ONNX file and Prototxt file are prepared!
INFO model_utils.py (84) : ONNX file and Prototxt file are prepared!
/usr/local/lib/python3.11/site-packages/transformers/models/marian/tokenization_marian.py:194: UserWarning: Recommended: pip install sacremoses.
warnings.warn("Recommended: pip install sacremoses.")
INFO fugumt-ja-en.py (254) : input_text: これは高速なAI推論エンジンです。
INFO fugumt-ja-en.py (258) : Start inference...
2023-10-29 10:48:22.119041: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: SSE4.1 SSE4.2, in other operations, rebuild TensorFlow with the appropriate compiler flags.
INFO utils.py (160) : NumExpr defaulting to 8 threads.
INFO fugumt-ja-en.py (276) : translation_text: This is a fast AI inference engine.
INFO fugumt-ja-en.py (277) : Script finished successfully.
すみません、ありがとうございます:bow:
Issue
https://github.com/axinc-ai/ailia-models/issues/1159
作業内容
fugumt-ja-enのモデルを追加しています。
TODO
若干推論処理が冗長になっています:bow:
以下の箇所を修正するとより効率化できると思います。