Skip to main content
QUICK REVIEW

[論文レビュー] Sionnx: Automatic Unit Test Generator for ONNX Conformance

Xinli Cai, Peng Zhou|arXiv (Cornell University)|Jun 12, 2019
Adversarial Robustness in Machine Learning参考文献 22被引用数 5
ひとこと要約

Sionnx は、独自の演算子仕様言語(OSL)と三段階のランダム化戦略(TDBc-gen)を用いて、データ型、次元、境界条件を体系的に探索することで、高カバレッジのテストを自動生成する、ONNX適合性用の最初の自動ユニットテスト生成ツールである。これにより、最小限の手動作業でスケーラブルで正確かつ効率的な ONNX フレームワーク間の適合性テストが可能になる。

ABSTRACT

Open Neural Network Exchange (ONNX) is an open format to represent AI models and is supported by many machine learning frameworks. While ONNX defines unified and portable computation operators across various frameworks, the conformance tests for those operators are insufficient, which makes it difficult to verify if an operator's behavior in an ONNX backend implementation complies with the ONNX standard. In this paper, we present the first automatic unit test generator named Sionnx for verifying the compliance of ONNX implementation. First, we propose a compact yet complete set of rules to describe the operator's attributes and the properties of its operands. Second, we design an Operator Specification Language (OSL) to provide a high-level description for the operator's syntax. Finally, through this easy-to-use specification language, we are able to build a full testing specification which leverages LLVM TableGen to automatically generate unit tests for ONNX operators with much large coverage. Sionnx is lightweight and flexible to support cross-framework verification. The Sionnx framework is open-sourced in the github repository (https://github.com/alibaba/Sionnx).

研究の動機と目的

  • 手作業によるテストケースに依存するため、ONNX 演算子の包括的で自動化された適合性テストの不足に対処すること。
  • 特に LSTMs のような計算負荷の高い演算子において、複雑な参照アルゴリズムを書く手作業の負担を軽減すること。
  • ONNX 演算子実装のフレームワーク間検証を可能にする、軽量で柔軟なフレームワークを設計すること。
  • データ型の組み合わせ、次元の変化、境界条件といった動作的に有意義なテストポイントに注目することで、最小限のテストケースで高いカバレッジを達成すること。

提案手法

  • 演算子の属性と被演算子の制約を記述するコン pact なルールベースのシステムを提案し、有効な入力の正確な仕様を可能にする。
  • ONNX 演算子の構文と意味を記述する高水準で人間が読みやすい言語として、演算子仕様言語(OSL)を導入する。
  • LLVM TableGen を用いて OSL 仕様を実行可能なテスト生成コードにコンパイルする。
  • データ型の組み合わせ、データの次元、境界条件のカバレッジを保証する三段階のランダム化戦略(TDBc-gen)を設計する。
  • テストケースをタイプの組み合わせと次元範囲に均等に分散させる重み付きサンプリング手法を採用し、カバレッジを最大化する。
  • 既存の Numpy ベースのアルゴリズムを再利用することで、参照結果を生成し、カスタム実装の必要性を低減する。

実験結果

リサーチクエスチョン

  • RQ1どのようにして ONNX 適合性テストを自動化し、手作業によるテストケースへの依存を減らせるか?
  • RQ2テストケース数を最小限に抑えながらも高カバレッジを確保する体系的なアプローチは何か?
  • RQ3複雑な ONNX 演算子の参照結果を信頼性高くかつ効率的に生成するにはどうすればよいか?
  • RQ4どのような入力の変化(例:データ型、次元、境界値)が、多様な演算子動作を引き起こすか?
  • RQ5複数の ONNX フレームワークにわたって柔軟かつ再利用可能な仕様言語とランダム化戦略を設計できるか?

主な発見

  • Sionnx は、軽量でルールベースのアプローチを用いて、データ型、次元、境界条件の完全なカバレッジを持つユニットテストを効果的に生成した。
  • TDBc-gen ランダム化戦略により、すべてのタイプの組み合わせと次元範囲にわたるテストケースの均等な分布が確保され、テストの多様性が向上した。
  • 既存の Numpy ベースの実装を再利用することで、参照アルゴリズムの手作業実装の必要性が大幅に削減された。
  • Sionnx は 'スモーク' と 'フル' の二つのテストプロファイルをサポートしており、被演算子または両方の被演算子と属性の対象テストが可能になった。
  • システムはオープンソースとして公開され、LLVM TableGen と統合されており、既存の ONNX テスティングパイプラインへのシームレスな統合が可能になった。
  • 評価の結果、Sionnx が生成したテストは、特にエッジケースや複雑な演算子において、従来の手作業テストセットよりも著しく高いカバレッジを達成した。

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

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

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

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