翻訳者 | Zhu Xianzhong
査読者 | Sun Shujuan
はじめに
私たちは人工知能の黄金時代にいます。人工知能ソリューションの導入により、企業の創造性、競争力、応答性が向上します。 Software-as-a-Service (SaaS) モデルは、クラウド テクノロジーの進歩と相まって、ソフトウェアの生産と使用のプロセスをますます成熟させてきました。
ほとんどの組織が、独自の AI テクノロジーを「構築」するよりも、既製の AI テクノロジーを「購入」することを好むのは共通の事実です。したがって、Salesforce、SAP、Oracle などの SaaS プロバイダーは、人工知能プラットフォーム機能を次々に導入し、サービスとしての人工知能 (AI-as-a-Service、AIaaS) モデルを構築しています。実際、この開発傾向により、企業は人工知能ソリューションを採用しやすくなります。
テスト テクノロジーは、品質保証 (QA) 全般、特に人工知能プラットフォームの導入において重要な役割を果たします。さらに、AI プラットフォームを採用すると、次の理由からテストが非常に複雑になります。
- AI のテストには、スマートなテスト プロセス、仮想化されたクラウド リソース、専門的なスキル、および AI ツールが必要です。
- 人工知能プラットフォームプロバイダーはさまざまなバージョンを頻繁にリリースしますが、テストの速度はできるだけ速くなければなりません。
- 人工知能製品は透明性に欠け、説明できないことが多いため、納得することが困難です。
- 人工知能製品だけでなく、トレーニング モデルの品質とデータの品質も同様に重要です。ただし、クラウド リソース、アルゴリズム、インターフェイス、ユーザー構成を検証するための従来のテスト方法の一部は、一般に非効率的です。このようにして、学習、推論、知覚、操作などのテストも同様に重要になります。
たとえば、プラグ アンド プレイ AI ソリューション モデルでは、AI ロジックはソフトウェア ベンダーによって提供されます。消費者としてのプログラマーは、インターフェイスの構築、ロジックをトレーニングするためのデータの提供、ソリューションのコンテキストでのロジックのトレーニング、およびエクスペリエンスをエンド ユーザーに拡張する責任を負います。
まず、従来のテストと同様に、データ、アルゴリズム、統合、ユーザー エクスペリエンスをテストする必要があります。次に、ソリューションの機能的適合性をテストするには、トレーニングされたモデルを検証する必要があります。これにより、テストが推論、計画、学習などに拡張されます。第三に、AI アルゴリズム自体を検証する方法を開発する必要があります。最後に、検索、最適化、確率など、AI ロジックで使用される可能性のあるツールも機能検証に含める必要があります。この記事では、人工知能テスト フレームワークに関する実践的な観点を紹介します。
人工知能プラットフォーム ソリューションの核となる必要性: 継続的なテスト
AI プラットフォームの導入には、高度な自動化を通じて達成される QA の成熟度が不可欠です。企業がインフラストラクチャとエンジニアリング手法を最新化するにつれて、リリース サイクルはますます短縮され、高度に自動化される可能性があります。継続的インテグレーション (CI) 技術が効果的であることが証明されています。コードが 1 日に数回ログインされて再コンパイルされると、複数の QA フィードバック ループが生成されます。したがって、CI を適切に適用するには、ビルドとデプロイのプロセスを自動化することが重要です。自動化は CI の基礎であり、テストの自動化により継続的デリバリー (CD) が可能になります。つまり、CD は CI によって駆動されます。アジャイルおよび DevOps モデルの開発により、開発とテストの間のフィードバック ループが加速し、継続的テスト (CT)、継続的開発、継続的デリバリーが制度化されました。
企業では、データ、アプリケーション、インフラストラクチャなどが絶えず変化しています。同時に、SaaS プロバイダーは、ユーザー エクスペリエンスと開発効率を向上させるために AI 製品のアップグレードを続けています。この動的な状況では、継続的なテスト エコシステムを確立することが重要です。このような完全に自動化されたテスト環境は、変化する企業 IT 資産を検証するだけでなく、AI 製品のバージョンの変化も検証できます。
要約すると、優れた CT エコシステムを確立するには、次の要素を考慮する必要があります:
- 自動テスト スクリプトをエンタープライズ バージョン管理ツールに移行します。オートメーション コードベースは、アプリケーション コードベースと同様に、バージョン管理リポジトリに存在する必要があります。このようにして、テスト資産をアプリケーションおよびデータ資産と組み合わせることが効率的になります。
- 自動化スイートをコード/データ ビルド展開ツールと統合して、一元的な実行とレポートをサポートする計画。コード/データのビルドをそれぞれの自動化スイートと調整することが重要です。もちろん、人間の介入を避けるために、すべてのビルド中にツールベースの自動展開が絶対に必要です。
- 自動化スイートを複数のテスト層に分割して、各チェックポイントでのフィードバックを高速化します。たとえば、AI ヘルスチェックでは、インターフェイスやデータ構造に変更が導入された後、サービスが適切に機能していることを検証できます。 AI 煙テストは、重要なシステム機能が適切に機能しており、詰まり欠陥がないことを検証できます。
- テスト範囲はトレーニング モデルもカバーする必要があります。 AI テストでは、ソリューションが教師ありと教師なしの両方で与えられた命令を学習するかどうかを実証するトレーニング済みモデルもテストする必要があります。同じシナリオを複数回再現して、応答が所定のトレーニングと一致するかどうかを確認することが重要です。同様に、テストの一環として、障害、例外、エラーなどに対する解決策をトレーニングするプロセスを整備することが重要です。例外処理を注意深く考慮すれば、フォールト トレランスを組み込むことができます。
- AI ソリューション サイクル全体を通じて、人工知能のトレーニング/学習を管理する計画を立てます。 CT 関連の設定は、テストから本番環境まで学習を継続するのに役立ち、転移学習に関する懸念を軽減します。
- インテリジェントな回帰による最適化。アンサンブル回帰の実行サイクル時間が大幅に長い場合、CT は、深刻な影響を受ける領域に基づいて実行時にサブセットを分割し、妥当な時間枠内でフィードバックを提供する必要があります。 ML アルゴリズムを効果的に使用して確率モデルを作成し、特定のコードやデータの構築と一致する回帰テストを選択します。これにより、クラウド リソースの使用を効率的に最適化し、テストを高速化できます。
- 包括的な回帰テストを定期的に必ずスケジュールしてください。この作業は、定期的なビルド頻度との整合性に応じて、夜間または週末にスケジュールできます。これは CT エコシステムからの究極のフィードバックであり、その目標は、並列実行するスレッドまたはマシンを実行することでフィードバック時間を最小限に抑えることです。
人間の介入なしにテストが行われる場合、不具合、エラー、およびアルゴリズムの異常が AI ソリューションの発見の源となります。同様に、テスト中の実際の使用状況やユーザーの好みもトレーニングのソースとなり、運用環境でも継続する必要があります。
AIaaS ソリューション内のデータを確実に抽出できるようにする
データ品質は、人工知能ソリューションにおける最も重要な成功基準です。有用なデータは企業の内外に存在します。有用なデータを抽出して AI エンジンに供給する機能は、高品質な開発の要件の 1 つです。抽出、変換、ロード (ETL) は、さまざまなソースからデータを収集し、ビジネス ルールに基づいて変換し、ターゲット データ ストアにロードするデータ パイプラインを指す伝統的な用語です。 ETL 分野は、エンタープライズ情報統合 (EII)、エンタープライズ アプリケーション統合 (EAI)、およびサービスとしてのエンタープライズ クラウド統合プラットフォーム (iPaaS) に発展しました。技術の進歩に関係なく、データ保証の必要性はますます重要になるでしょう。データ保証では、Map Reduce プロセス検証、変換ロジック検証、データ検証、データ ストレージ検証などの機能テスト活動に取り組む必要があります。さらに、データ保証では、パフォーマンス、フェイルオーバー、データ セキュリティの非機能的な側面にも対処する必要があります。
構造化データは管理が容易ですが、企業の外部から発信された非構造化データは注意して扱う必要があります。ストリーム処理の原則は、移動中のデータを早期に準備するのに役立ちます。つまり、イベント駆動型の処理を通じて、Web サイト、外部アプリケーション、モバイル デバイス、センサー、その他のソースからデータが生成または受信されるとすぐにデータが処理されます。また、クオリティゲートを設けて品質をチェックすることも絶対に必要です。
Twitter、Instagram、WhatsApp などのメッセージング プラットフォームは、一般的なデータ ソースです。このようなデータを使用する場合、クラウドベースのメッセージング フレームワークを介して、さまざまなテクノロジー間でアプリケーション、サービス、デバイスが接続されます。深層学習技術により、コンピューターはこれらのデータ負荷から学習することができます。このデータの一部には、音声からテキストの転写、手書き認識から顔認識など、複雑な信号処理やパターン認識の問題を解決するためにニューラル ネットワーク ソリューションの助けが必要です。したがって、これらのプラットフォームからのデータをテストするには、必要な品質ゲートを確立する必要があります。
人工知能主導の QA プロジェクトを設計する際に注意すべき点をいくつか示します。
- 自動化された品質ゲート: ML アルゴリズムを実装して、履歴的および知覚的な基準に基づいてデータが「合格」するかどうかを判断できます。
- ソース原因の予測: データ欠陥のソース原因を分類または特定することは、将来のエラーを回避するだけでなく、データ品質を継続的に向上させるのにも役立ちます。パターンと相関関係を通じて、テスト チームは ML アルゴリズムを実装して、欠陥を原因まで追跡できます。これは、データが自己テストと自己修復の次の段階に進む前に、修復テストと修復を自動化するのに役立ちます。
- 事前認識型モニタリングの活用: ML アルゴリズムは、メモリ使用率の高さ、機能停止を引き起こす可能性のある潜在的な脅威など、データ パターンの症状や関連するコーディング エラーを検索できるため、チームが自動的に修正手順を実装できるようになります。 。たとえば、AI エンジンは並列プロセスを自動的に加速して、サーバーの消費を最適化できます。
-
フェイルオーバー: ML アルゴリズムは障害を検出し、自動的に回復して処理を継続でき、学習のために障害を登録できます。
AIaaS ソリューションにおける人工知能アルゴリズムの確保
ソフトウェア システムの内部構造がわかっていれば、開発テストは簡単です。ただし、AI プラットフォーム ソリューションでは、AI と ML は「説明可能」ではありません。つまり、入出力マッピングが唯一の既知の要素であり、開発者は基盤となる AI 機能 (予測など) の仕組みを確認または理解できないことがよくあります。従来のブラックボックス テストは入出力マッピングの問題の解決に役立ちますが、透明性が欠如している場合、人間はテスト モデルを信頼することが困難になります。もちろん、AI プラットフォーム ソリューションはブラック ボックスです。AI プログラムの機能を検証するのに役立つ独自の AI テクニックが存在します。このように、テストは単に入力と出力のマッピングの問題ではありません。設計を考慮するために、人工知能によって駆動されるいくつかのブラックボックス テスト手法には次のようなものがあります。
- 事後予測チェック (PPC) は、適合モデルに基づいて複製されたデータをシミュレートし、それを観測データと比較して比較します。したがって、テストでは事後予測を使用して、「実際のデータとシミュレートされたデータの間の体系的な違いを探す」ことができます。
- テストケースを最適化するための遺伝的アルゴリズム。テスト ケースを生成する際の課題の 1 つは、テスト対象のソフトウェアへの入力として使用したときに最大のカバレッジが得られるデータ セットを見つけることです。この問題が解決されれば、テスト ケースを最適化できます。選択、交叉、突然変異など、自然の進化プロセスで実行される基本的な動作をシミュレートする適応ヒューリスティック検索アルゴリズムがあります。ヒューリスティック検索を使用してテスト ケースを生成する場合、テスト アプリケーションに関するフィードバック情報を使用して、テスト データがテスト要件を満たしているかどうかを判断します。フィードバック メカニズムにより、テスト要件が満たされるまでテスト データを徐々に調整できます。
- テストケースを自動生成するニューラルネットワーク。これらは、経験的な知識を取得、保存、処理できる物理的な細胞システムです。彼らは人間の脳を模倣して学習タスクを実行します。ニューラルネットワーク学習技術を利用してテストケースを自動生成します。このモデルでは、ニューラル ネットワークは、AI プラットフォーム製品のオリジナル バージョンに適用された一連のテスト ケースでトレーニングされます。ネットワーク トレーニングは、システムの入力と出力のみを対象としています。トレーニングされたネットワークは、AI プラットフォーム製品の新しい、潜在的にバグのあるバージョンによって生成された出力の正確さを評価するための人工のオラクルとして使用できます。
- モデルベースの回帰テスト選択のためのファジー ロジック。これらの方法は、すでにモデル駆動型開発方法を使用しているプロジェクトでは役立ちますが、主な障害は、モデルが高い抽象レベルで作成されることが多いことです。モデル内のカバレッジ関連の実行トレースとコードレベルのテストケースの間のトレーサビリティリンクを確立するために必要な情報が不足しています。ファジー ロジック ベースの手法を使用すると、抽象モデルを自動的に洗練して、トレーサビリティ リンクの識別を可能にする詳細なモデルを生成できます。このプロセスでは、ある程度の不確実性が生じます。この不確実性は、改良ベースのファジー ロジックを適用することで解決できます。このアプローチのロジックは、使用される改良アルゴリズムに関連付けられた確率的な正確さに基づいて、テスト ケースを再テスト可能なものに分類することです。
この部分の知識の詳細については、「機械学習モデルのブラック ボックス テスト」を参照してください。
AIaaS ソリューションでの統合とインターフェイスの確保
AIaaS ソリューションを含むすべての SaaS ソリューションには、事前定義された Web サービスのセットが付属します。エンタープライズ アプリケーションやその他のインテリジェント リソースは、これらのサービスと対話して、約束された結果を達成できます。現在、Web サービスはプラットフォームの独立性、つまり相互運用性を提供するレベルまで進化しました。この柔軟性の向上により、ほとんどの Web サービスをさまざまなシステムで使用できるようになります。もちろん、これらのインターフェイスが複雑なため、それに応じてテスト レベルも高める必要があります。たとえば、CI/CD 環境では、構築されたすべてのアプリケーション パッケージでこれらのインターフェイスの互換性を確認することが重要なタスクになります。
現在のこの分野の主な課題は、仮想化 Web サービスを実装し、AI プラットフォーム ソリューションとアプリケーションまたは IoT インターフェイス間のデータ フローを検証することです。要約すると、インターフェイス/Web サービスのテストが複雑になる主な理由は次のとおりです。
- テストの準備ができていない可能性のある別のソースと既に統合されていない限り、テスト可能なユーザー インターフェイスはありません。
- これらのサービスで定義されたすべての要素は、どのアプリケーションで使用されるか、または使用される頻度に関係なく、検証が必要です。
- サービスの基本的なセキュリティ パラメータを検証する必要があります。
- さまざまな通信プロトコルを介してサービスに接続します。
- サービスの複数のチャネルを同時に呼び出すと、パフォーマンスとスケーラビリティの問題が発生する可能性があります。
したがって、インターフェイス層のテストが特に必要です。
- コンポーネントまたはアプリケーションの動作をシミュレートします。 AI アプリケーションと人間、機械、ソフトウェアとのインターフェイスの複雑さは、正確性、完全性、一貫性、速度を確保するために AI テストでシミュレートされる必要があります。
- 非標準コードの使用を確認してください。オープンソース ライブラリを使用し、現実世界のアプリケーションを採用すると、企業の IT 環境に非標準のコードやデータが持ち込まれる可能性があります。したがって、これらはすべて検証する必要があります。
AIaaS ソリューションでのユーザー エクスペリエンスの確保
人々が主にリモートで働き、リモートで生活するという新しい社会現実において、カスタマー エクスペリエンスはビジネスの成功に必要不可欠なものとなっています。これは、人工知能計画におけるより大きな目標です。非機能テストは、パフォーマンス、セキュリティ、アクセシビリティなどのプロパティを検証することにより、有意義な顧客エクスペリエンスを提供することが証明されている現象です。一般に、次世代テクノロジーはエクスペリエンス保証の複雑さを増大させます。
AI テスト フレームワーク全体でユーザー エクスペリエンスを確保するための重要な設計上の考慮事項を以下に示します。
- 経験のためのテストではなく、経験のための設計。エンタープライズ AI 戦略はエンドユーザーの視点から始める必要があります。テスト チームが実際の顧客を代表していることを確認することが重要です。設計の早い段階でクライアントを関与させることは、設計に役立つだけでなく、早い段階でクライアントの信頼を得るのにも役立ちます。
- テスト最適化モデルを構築することで、俊敏性と自動化を実現します。ユーザー エクスペリエンスの問題は、テスト サイクルの「スウォーム」段階から考慮する必要があります。ユーザー エクスペリエンスを早期にテストすることが、ビルド、テストに最適化された開発サイクルの達成に役立つからです。
- アジャイルな手法による継続的なセキュリティは重要です。エンタープライズ セキュリティ チームを、1) テストの「群」期間中に組織の脅威モデルを所有および検証する、2) SaaS AI ソリューション アーキテクチャが持つ可能性のあるすべてのマルチチャネル インターフェイスにわたる構造的脆弱性を評価する、アジャイル チームの一部にさせます。仮想ハッカーの視点から)。
- スピードが重要です。量、速度、多様性、変動性などの AI データの特性には、前処理、並列/分散処理、および/またはストリーム処理が必要です。パフォーマンス テストは、ユーザーがシステムに期待する速度に必要な分散処理の設計を最適化するのに役立ちます。
- テキストと音声のテストのニュアンスも重要です。多くの調査結果は、会話型 AI が依然として企業の議題の最上位にあることを示しています。拡張現実、仮想現実、エッジ人工知能などの新しいテクノロジーが次々と登場するにつれ、テキスト、音声、自然言語処理のテストなどの要件はすべて満たされる必要があります。
- シミュレーションは限界をテストするのに役立ちます。ユーザー シナリオの検討はエクスペリエンス保証の基礎です。 AI に関して言えば、異常、エラー、違反をテストすることはシステムの動作を予測するのに役立ち、ひいては AI アプリケーションのエラー/フォールト トレランス レベルを検証するのに役立ちます。
- 信頼、透明性、多様性。 AI の結果に対する企業ユーザーの信頼を検証し、データ ソースとアルゴリズムの透明性を検証し、リスク軽減を目標にして AI への信頼を高めるための透明性を要求し、AI の倫理とその精度を検査するためにデータ ソースとユーザー/テスターの多様性を確保する。これらはすべてです。致命的。これを行うには、テスターはドメイン知識を向上させるだけでなく、大企業 IT におけるデータ、アルゴリズム、統合プロセスの技術的ノウハウを理解する必要があります。
結論
つまり、継続的なテストは、すべての企業が人工知能プラットフォーム ソリューションを導入するための基本要件です。したがって、データ、アルゴリズム、統合、およびエクスペリエンス保証アクティビティの設計を改善するには、モジュール式のアプローチを採用する必要があります。これにより、継続的なテスト エコシステムを構築し、企業の IT 部門が内部および外部の AI コンポーネントの頻繁な変更を受け入れる準備ができるようになります。
翻訳者紹介
Zhu Xianzhong 氏、51CTO コミュニティ編集者、51CTO エキスパートブロガー、講師、濰坊市の大学のコンピューター教師、フリーランスプログラミング業界のベテラン。初期の頃は、さまざまな Microsoft テクノロジ (ASP.NET AJX および Cocos 2d-X に関連する 3 冊の技術書を編集) に焦点を当てていましたが、過去 10 年間は、オープンソースの世界に専念してきました (人気のある完全なソースに精通しています)。スタックWeb開発技術)を学び、OneNet/AliOS Arduino/ESP32/Raspberry PiなどのIoT開発技術やScala Hadoop Spark Flinkなどのビッグデータ開発技術について学びました。
原題: AI プラットフォーム導入のための品質エンジニアリング設計 、著者: Anbu Muppidathi
以上が人工知能プラットフォームソリューションにおける高品質のエンジニアリング設計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。