Skip to main content
QUICK REVIEW

[論文レビュー] Analysis of Failures and Risks in Deep Learning Model Converters: A Case Study in the ONNX Ecosystem

Purvish Jajal, Wenxin Jiang|arXiv (Cornell University)|Mar 30, 2023
Software System Performance and Reliability被引用数 5
ひとこと要約

この論文は、ONNXエコシステムにおけるディープラーニングモデルコンバータの失敗分析を初めて行ったものであり、PyTorchおよびTensorFlowコンバータにおけるクラッシュや不正な動作を調査している。ノード変換が主な失敗要因(欠陥の75%)であることが特定され、個々のオペレータは失敗の予測因子として不十分であることが明らかになり、現在のテスト戦略の弱みが露呈された。本研究では、合成モデルを用いたテストと安定したオペレータセットの導入を提言し、相互運用性ツールの堅牢性と保守性を向上させることを目的としている。

ABSTRACT

Software engineers develop, fine-tune, and deploy deep learning (DL) models using a variety of development frameworks and runtime environments. DL model converters move models between frameworks and to runtime environments. Conversion errors compromise model quality and disrupt deployment. However, the failure characteristics of DL model converters are unknown, adding risk when using DL interoperability technologies. This paper analyzes failures in DL model converters. We survey software engineers about DL interoperability tools, use cases, and pain points (N=92). Then, we characterize failures in model converters associated with the main interoperability tool, ONNX (N=200 issues in PyTorch and TensorFlow). Finally, we formulate and test two hypotheses about structural causes for the failures we studied. We find that the node conversion stage of a model converter accounts for ~75% of the defects and 33% of reported failure are related to semantically incorrect models. The cause of semantically incorrect models is elusive, but models with behaviour inconsistencies share operator sequences. Our results motivate future research on making DL interoperability software simpler to maintain, extend, and validate. Research into behavioural tolerances and architectural coverage metrics could be fruitful.

研究の動機と目的

  • ONNXモデルコンバータにおける失敗の症状、原因、発生位置を理解すること。
  • 5,149体の実モデルおよび合成モデルをテストすることで、モデルコンバータがなぜ失敗するのかを評価すること。
  • 現在のテスト戦略の有効性を評価し、欠落している点を特定すること。
  • オペレータの種類や順序がコンバータの失敗と相関しているかどうかを調査すること。
  • ディープラーニング相互運用性ツールの堅牢性、保守性、検証性を向上させるための改善策を提案すること。

提案手法

  • PyTorchおよびTensorFlowのONNXコンバータに関する200件のクローズドGitHubの問題を分析し、症状、原因、発生位置を分類した。
  • 実世界およびNNSmithを用いて合成生成された5,149体のモデルを評価し、コンバータの信頼性を測定し、欠陥を検出する。
  • 失敗原因と症状の同時分布分析を実施し、複数のコンバータ間でパターンを特定した。
  • 2つの仮説をテストした:(1) オペレータの種類が失敗を予測できるか、(2) オペレータの順序が失敗と相関しているか。不一致モデルシーケンスの頻度分析を用いた。
  • 既存のテストスイートをレビューした結果、実モデルに強く依存しており、合成モデルのカバレッジが不足していることが判明し、重要なテストギャップが露呈された。
  • RISCおよびJVM設計の原則を参考に、小さな安定したオペレータセットを提案し、変換エラーを低減する可能性を示唆した。

実験結果

リサーチクエスチョン

  • RQ1ONNXモデルコンバータにおけるPyTorchおよびTensorFlowの失敗症状、原因、発生位置として最も一般的なものとは何か?
  • RQ2モデルコンバータがなぜ失敗するのか?特定のオペレータやオペレータの順序が失敗しやすいのか?
  • RQ3現在のテストスイートはコンバータ欠陥を検出するのにどの程度有効なのか?主な制限要因は何か?
  • RQ4小さな安定したオペレータセットを導入することで、変換エラーを低減し、コンバータの保守性を向上させられるか?

主な発見

  • ノード変換が、同定されたコンバータのすべての欠陥の約75%を占めており、最もエラーが発生しやすい段階であることが判明した。
  • 最も一般的な失敗症状はクラッシュ(28%)と不正なモデル動作(36%)であり、主な原因は型の問題と互換性の欠如である。
  • クラッシュは主に互換性の欠如と型の問題に起因し、不正な動作は型の問題、アルゴリズム的エラー、形状の不一致に起因していた。
  • 個々のオペレータと失敗確率との間に強い相関は見られなかったが、オペレータの順序に潜在的な相関が観察され、複雑な相互作用の可能性が示唆された。
  • 同定された11件の欠陥のうち5件は以前に未知であったことから、実モデルに依存し、合成モデルのカバレッジが不足している既存のテストスイートの限界が浮き彫りになった。
  • 現在のエンドツーエンドテスト戦略は不十分であり、実モデルは少数しか検査されておらず、合成モデルは一切検査されていない。これにより、合成生成が露呈できる重要な失敗パターンが見逃されている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。