サービス指向AIモデルの開発 EP.3 テストデータセット、テスト方法、モデル要件の導出
2022/03/04
⏱ 15分
EP.3 はじめに
こんにちは。前回の EP. 2 では、サービス指向 AI モデルの開発のための「トレーニング データセットの準備」コースについて学びました。私たちは、顧客のサービス要件と制限を考慮に入れて、サービスに最適化されたトレーニングデータセットを作成する旅をしました。
このEP.3では、 テストデータセットとサービス要件のAIモデル の💡データセットについて具体的に説明します。また、AI モデルを実際のサービスに適用する前に確認する必要があるモデル 要件のいくつかについても説明します。
テストデータセットとテスト方法
1. テストデータセット
AI モデルのパフォーマンスを検証するには、✔️テスト データセットと ✔️テスト メソッドを準備する必要があります。テスト データセットは、通常、トレーニング データセットの一部を使用します。もちろん、これには、テスト データセットの分布が トレーニング データセットの分布と一致するという前提が必要です。(2 つの分布に一貫性がない場合は、次の機会に説明します)。
トレーニング データセット内のデータの一部を解析し、それをテスト データセットとして使用するモデルをテストする方法を見てみましょう。
2. 試験方法
テストするには、次の 2 つの方法があります。
✔️オフラインテスト :実際のアプリケーションの前に開発環境での評価
✔️オンラインテスト :実際のサービス適用後の環境での評価
ここで心に留めておくべき点があります。 開発段階の環境と、実際のサービスに適用した場合の環境は異なる場合があります。この時点で、オフラインテストとオンラインテストで異なる結果が得られる可能性が非常に高いです。結局のところ、サービス指向のAIモデルは、優れたパフォーマンスを達成し、現実世界のアプリケーションで結果をもたらすモデルであるため、オフラインテストとオンラインテストの結果が似ているほど、モデルは優れています。したがって、オフラインテストは、サービス品質を保証するために慎重に設計する必要があります。
📍オフラインとオンラインのテスト結果が異なるのはなぜですか?
👉通常、2 つの原因があります。1つ目は「 データセットの不完全さ」です。モデル開発とオフライン評価に使用されるデータセットは、現実世界を十分に反映していません。実際のサービスでAIモデルに取り込まれているデータの中には、開発プロセス中に考えていなかったことのいくつかが入ってくる可能性が非常に高いです。
2つ目は「モデルドリフト」です。時間の経過とともに頻繁にデータを変更するサービスがあります。この時点で、固定データセットでトレーニングされたモデルは、データを蓄積し、時間の経過とともに必然的にパフォーマンスが低下する可能性があります。
2つのテスト方法とタイプ
次に、オフライン テストとオンライン テストの種類を見てみましょう。
1. オフラインテスト
実世界のサービス前のオフラインテストの定量的評価段階では、パフォーマンス評価が常に完璧であるとは限りません。代わりに、オフラインテストの定量的評価は、さまざまなAIモデル候補のどれが最良のモデルであるかを選択することを目的としています。これらの選択されたAIモデル候補は、定性的な評価を通じて慎重に分析され、1つの最終リリースバージョンが選択されます。
2. オンラインテスト
オフライン テストで決定した AI モデルを実際のサービスに適用します。現時点では、別の評価、オンラインテストを実施します。オンラインの定量的評価では、評価メトリックをサービス シナリオ内で自動的に出力できるように、事前に環境を適切に設定する必要があります。これは、モデル のパフォーマンス監視を使用して、後でモデルを更新するタイミングと方法について話し合う ためです。
オンラインテストの定量的評価がモデルの更新に必要な基本データを提供している場合、オンラインテストの定性的評価は、実際のサービスを使用して顧客の声に基づいて 具体的な改善点を見つけるためのステップです。
4つの評価項目のうち最も重要なものを選ぶとしたら、それはもちろん オンラインテストの通常の評価です。これは、オンラインテストの定性的な評価が、実際のサービスを利用するユーザーが経験する不便さやエラー(顧客の声)に基づいているためです。ユーザーの多様な意見は、AIモデルを改善する上で大きなヒントになります。モデラーとデータセット開発メンバーは、これらのヒントを収集して定期的に議論し、モデル、トレーニング、および評価データセットの改善点を導き出すことができ、モデルとデータセットに組み込んでサービス品質を向上させることができます。
モデル要件の導出
ここまでは、サービス要件からトレーニング データセット、テスト データセット、およびテスト メソッドを派生させるプロセスについて説明しました。あなたがチェックする必要がある最後のものは残っています。これは、サービス要件から✔️モデル要件を絞り込むことです。AI モデルの要件は、大きく分けて次の 5 つに分けられます。もちろん、サービスやモデリング環境によっては、項目が変わることもあります。
1. 処理時間
1 つの入力が入力されるのにかかる合計処理時間と、結果として出力される値を考慮する必要があります。この時点で、処理時間の定義は、オフライン テストとオンライン テストで異なる場合があります。ユーザーエクスペリエンスとサービス品質の観点から、処理時間を最適化できるモデルを開発することが重要です。サービス計画チームは処理時間関連の要件の伝達を担当しますが、AI テクノロジ チームはこれらの通信を満たすモデルの開発を担当します。
📍オフラインテストとオンラインテストの処理時間の定義の違いについて教えてください。
👉たとえば、数式の画像を撮影し、数式領域を自動的に検出する AI サービスがあるとします。オフライン テストでは、処理時間が比較的短い場合があります。これは、ユーザーが携帯電話のカメラで写真を撮り、結果を待つのに費やす時間を考慮する必要がないためです。ただし、オンラインテストでは、これらの状況がすべて考慮されます。
認識された数式画像内の情報が実装されるまでに5分以上かかると、ユーザは不便を経験することになる。その結果、ユーザーがサービスから解約する原因となる不安要因を排除するためには、迅速なターンアラウンドタイムを達成する必要があります。
✔️オフラインテスト :モデルに画像を入力した後、数式領域に情報が出力される合計時間
✔️オンライン テスト : ユーザーが画像を撮影し、画像が数式領域に入り、派生情報がサービス画面に表示される合計時間。
2. 目標精度
AI技術モジュールには、定量的精度の基準と要件もあります。これは、サービスを市場に投入する前にどのレベルの精度を達成する必要があるかを明確にする要件の1つです。同じAIモデルであっても、個々のサービスシナリオによって目標精度が異なる場合があり、サービス計画チームとの正確なコミュニケーションが必要です。
📍ゴールの精度の例を挙げてください。
👉たとえば、クレジット カードの画像を撮影し、カード番号と有効期限を自動的に認識して入力するサービスを開発しているとします。開発中のモデル精度は、モデル出力、実際のカード番号、および有効な(正解)番号列の差の 編集距離として表すことができます。
一方、実際のサービスの観点から見ると、正確な結果とは、ユーザが結果を個別に変更しないことを意味する。認識と導出のプロセスは、間違った結論を生み出さない。ユーザーが値を変更する必要が直接的に不利になるべきではありません。したがって、リアルサービスアプリケーションフェーズにおけるAIエンジンの精度は、「サービスユーザーがAIモデルの結論を変更する確率」と定義することができます。
AI テクノロジ チームは、オフライン テストとオンライン テストの違いを念頭に置いて、サービス シナリオに最適化されたパフォーマンス測定アプローチを設計し、AI エンジンが目標精度に達するように注意する必要があります。
✔️オフラインテスト :入力した画像のカード番号、有効期間の距離を編集
✔️オンラインテスト :ユーザーがAIモデルの結論を変更する確率
3. 目標 QPS (1 秒あたりのクエリ数)
高レベルのサービス品質を提供するには、サービスが 1 秒あたりに処理できる要求の数を増やす必要があります。たとえば、1 秒あたり 100 人のユーザーが使用するサービスが 1 秒あたり 100 枚の画像を取得する場合、100 QPS を処理する必要があります。この種のエクスペリエンスを提供しないと、サービスで吃音や吃音などのエラーが絶えず発生する可能性があり、顧客エクスペリエンスに不便がかかります。それでは、QPSを改善するいくつかの方法は何ですか?
✔️機器を増やす方法:1 GPUあたりに 処理できるリクエスト数をxと仮定すると、GPUをnずつ増やすと、QPSはn * xになります。設備を増やせば、要求処理数は当然増えますが、設備数のn倍の速度で増えるとは断言できません。機器の追加はQPSを改善する最も簡単な方法ですが、コストの問題とn倍に増加する要求を配布する必要があるため、ディストリビュータで発生するボトルネックを考慮した決定を下す必要があります。
✔️処理時間を短縮する方法: 処理時間の短縮 は、AI モデルの高速化を意味します。モデルの処理速度がn倍に増加すると、QPSはそれに応じてn倍に増加します。
✔️モデルのサイズを縮小する方法 : 1 つの GPU で増加するモデルの数が n の場合、QPS も n 倍になります。つまり、モデルの数を増やして、処理できる要求の数を増やすことができます。ただし、モデルのサイズが縮小されたため、QPS には線形上昇がないことに注意することが重要です。10 GB の GPU メモリと 8 GB のモデル サイズでは、1 つの GPU で上昇できるモデルの最大数は 1 です。機種のサイズが5GB以下に縮小されていない限り、最大数に変更はありません。5GBに縮小された場合にのみ、2つのモデルがGPU 10GBのメモリに乗ることができます。
4. 奉仕
AI モデルがどのように提供されるかに応じて、モデルの要件も変わります。たとえば、モデル設計はハードウェア デバイスの種類によって異なる必要があるというロジックがあります。技術モジュールが動作する環境がモバイルかウェブサーバかによって、モデルの処理速度とメモリの制約は異なります。また、CPUサービス、GPUサービス、ローカルサーバーやクラウドサービスなどの条件も要件に反映させる必要があるため、サービス要件を詳しく調べる必要があります。
5. 機器仕様
これはよくあることですが、顧客が独自のサービング機器を持っていない場合があり、機器も構築するように依頼することがあります。この時点で、サービス内の QPS や使用可能な予算などの要件が考慮され、サービスでモデルを駆動するための機器仕様が決定されます。機器の仕様によっては、処理速度やメモリの仕様が異なる場合があるため、これらの条件を反映したモデルを開発することも重要です。
EP.3 外出
ここまでは、サービス要件に基づいて AI モデルを検証するための "テスト データセット" と "テスト方法" について学習しました。さらに、5 つのモデル要件を念頭に置いてモデルを開発する必要性は、EP.3 全体で詳細に議論されています。
<서비스 향 AI 모델 개발하기>의 마지막 편인 EP.4에서는 효율적인 AI 모델 개발을 위한 조직 구성은 어떻게 이뤄져야 하는가에 대해 다뤄보겠습니다. 이번 화도 유용한 정보가 되었길 바라며 이만 마치겠습니다. 감사합니다.