Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIシステム開発におけるQA/QA in AI System development

Matsu
May 18, 2023

AIシステム開発におけるQA/QA in AI System development

これまで私がAIに対するテストで経験したことから得た知見です。
どういった問題があって、どういった対応をしたかを4つのChapterで説明しています。
This is the knowledge I have gained from my experience with testing AI thus far. I will explain the types of problems I encountered and how I responded to them in four chapters.

その他資料 / Appendix
「今までのテストとAIを含んだプロダクトのテストの違い」
https://speakerdeck.com/mineo_matsuya/jin-madenotesutototoaiwohan-ndapurodakutonotesutonowei-i

「Smart Speaker QA」
https://www.slideshare.net/mineomatsuya/smart-speaker-qa

Matsu

May 18, 2023
Tweet

More Decks by Matsu

Other Decks in Technology

Transcript

  1. 自己紹介 活動: • JaSST(ソフトウェアテストシンポジウム ) Kyushu実行委員 • QA4AI (AIプロダクト品質保証コンソーシアム )

    メンバー • ASTER教育メンバー (ソフトウェアテスト技術振興協会 ) • 新人さんからわかるソフトウェアテスト解説マンガ「テスターちゃ ん」作者
  2. (余談。以下講演ではskip) ChatGPTを大いに利用しています • コード生成 • コードの修正 ◦ 「以下のunityのコードを効率化できますか?」 ◦ 「以下のunityのコードをもっとテストしやすいようにできますか?」

    • コードレビュー ◦ 「以下のunityのコードのコードのレビューをしてください」 • ユニットテスト (ハッピーパス) ◦ 「以下のunityのコードのユニットテストを書いてください」
  3. 目次 • AIの出力に着目した3パターン • Chapter.1 「代表値を1つだけ確認してPass/Failしていいですか!?」 • Chapter.2 「入力値、爆発!!」 •

    Chapter.3 「再学習したら変なところが壊れた!!」 • Last Chapter 「生成した。で、俺はどうすればいい?」
  4. AIシステム3パターン パターン1 (期待結果がある) 無限に近い入力パターン (フリースタイル) AIコンポーネ ント 仕様にそった出力パターン 犬の画像 猫の画像 「犬」

    「猫」 「鳥」 今日の天気は 占って、かに座 天気API 占いAPI エラー応 答 NISAしたい 解約どうやる? NISA説明 解約説明 オペレーター 案内 Q&Aボット スマートスピーカー 画像判定 入力に対して期待結果はある
  5. AIシステム3パターン パターン2 (期待結果不明) 無限に近い入力パターン (フリースタイル) AIコンポーネ ント 仕様にそった出力パターン だけど、どうなればいいかわからない 株価データ 上がる?

    下がる? 履歴データ オススメ1 オススメ2 オススメ3 画像データ グループ1 グループ2 グループ3 教師なし学習によるグループ分け (クラスタリング) レコメンド (オススメ) 株価判定 入力に対して期待結果がわからない
  6. AIシステム3パターン パターン2 (期待結果不明) 今回は時間の都合上テストオラクル問題の話はしません。 松谷のJaSST’22 Shikokuの「今までのテストとAIを含んだプロダクトのテストの違い 」の「メタモルフィックテスティ ング」をご参照ください。 株価データ 上がる? 下がる?

    履歴データ オススメ1 オススメ2 オススメ3 レコメンド (オススメ) 株価判定 レコメンド系はA/BテストでCVRを 見て調整したりする 画像データ グループ1 グループ2 グループ3 教師なし学習によるグループ分け (クラスタリング)
  7. AIシステム3パターン パターン3 (期待する方向性はある) 無限に近い入力パターン (フリースタイル) AIコンポーネ ント 無限に近い出力パターン (フリースタイル) 芝の上の子猫 芝&子猫の画像

    画像生成 入力に対しての期待する方向性はある ハンバーグの 作り方 用意するものはひ き肉、パン粉 文章生成 芝&おじさんの画像
  8. Accuracy (正解率) 一番よく使われる指標 Accuracyは正解率。推論した結果全てがどれくらい当たったか。 一番よく使う指標と言える。 この例の場合、10回中7回当たったので、70%となる。 例:株を買った方がいいか買わない方がいいか推論するシステム 買うな 買うな 買うな

    買い 買うな 買うな 買い 買うな 買い 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 推論 実際 実際 買い だった 推論 : 10回 正解 : 7回 7 / 10 = 0.7 70%
  9. Accuracy (正解率) Accuracyが高ければいいかというとそうとも言い切れない。 起こる確率が低い場合は、全て「買うな」と予測しておけば正解率は90%となる。 Accuracyはデータセットのバランスがいいものに使う。 例:株を買った方がいいか買わない方がいいか推論するシステム 買うな 買うな 買うな 買うな

    買うな 買うな 買うな 買うな 買うな 買うな 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 推論 実際 実際 買い だった 正解率 90% 全部「買うな」推論
  10. Recall (再現率) 当たりをどれだけ拾えていたか? Recallは、「実際に当たり」を推論でどれだけ拾えていたか、である。 例の場合まずは「実際」に注目。「実際に買いだった」は2回。それを推論で当てられたの は1回。よってRecallは 1 / 2 =

    0.5 50% 例:株を買った方がいいか買わない方がいいか推論するシステム 買うな 買うな 買うな 買い 買うな 買うな 買い 買うな 買い 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 推論 実際 実際 買い だった Recall = 実際に買いだった数 買いの推論で当たった数
  11. Recall (再現率) は見逃しを少なくしたいとき 「見逃しを少なくしたい」とき、Recallが高くなるように学習を行うのが良い。 例えばガンの検出など。 ただ上記の例のように、今度は全部当たりを推論しておけば「見逃し」はなくなるため Recallは100%となる。 例:株を買った方がいいか買わない方がいいか推論するシステム 買い 買い

    買い 買い 買い 買い 買い 買い 買い 買い 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 推論 実際 実際 買い だった 全部「買い」推論
  12. Precision (適合率) 当たり推論の正確性 Precisionは「当たり」と推論したときに、実際にどれだけ当たったか。 例の場合まずは「推論」に注目。「買い」推論は3回。それで「実際に買いだった」は1回。 よってPrecisionは 1 / 3 =

    0.33… 約33% 例:株を買った方がいいか買わない方がいいか推論するシステム 買うな 買うな 買うな 買い 買うな 買うな 買い 買うな 買い 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 推論 実際 実際 買い だった Precision = 買いの推論の数 買いの推論で当たった数
  13. Precisionは誤検知を抑えたいとき 「誤検知を抑えたいとき」はPrecisionが高くなるように学習させるのが良い。 例えば迷惑メール判定など。(めったやたらと迷惑メールフォルダに入ってほしくない……) 例:株を買った方がいいか買わない方がいいか推論するシステム 買うな 買うな 買うな 買い 買うな 買うな

    買うな 買うな 買うな 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 推論 実際 実際 買い だった
  14. 入力値、爆発!! 天気は? 天気知りたい 今日の天候は? 天気を知りたい 青森の天気 青森市の天気どう? 今、晴れてる? 天気が知りたい スマート

    スピーカー 自然言語 処理AI 天気API 占いAPI 音楽API 童話API etc… etc… 同値分割は使えない !! 明日、明後日の場合、 場所が違う時もある! 占いや音楽機能もテストし なきゃ!
  15. API自動テストでゴリ押した (自動テストは必須) 音声認識 自然言語処理 天気API 占いAPI etc API 音声合成 Test

    Automation Test Data 言葉を 組合せて量産 「Smart speaker QA」16P参照 他事例: 「今までのテストとAIを含んだプロダクトのテストの違い」 メタモルフィックテスティングを使った バグを見つけるための自動テスト 97P参照 音声→テキスト テキスト→コマンド テキスト→音声 コマンド実行
  16. 入力値を絞りたい! ログを活用する バグを活用する SNSを活用する マニュアル等にある例は必須 (例) 社内テストをやったら 「今日の天気」が多い (例) 社内テストをやったら

    子どもの使う機能は丁寧語が多い (例) 「てにはを」の違い/有無に弱い (例) 体の一部が入ると誤認識があった ・目黒、足利など Twitter / Discordで情報収集 公式が出してるドキュメントの例は通らないと 信用が下がる
  17. Chapter.2 まとめ • AIのテストでは入力値が爆発する ◦ 確認量が多くなる。自動化できる部分はないか検討 ▪ 期待結果があるパターンではAPI自動テストを行った ▪ 他、テストデータ生成など

    • 入力値を絞るなら以下が考えられる ◦ ログを活用する ◦ バグを活用する ◦ SNSを活用する ◦ マニュアルにある例を使う ◦ (ニューロンカバレッジを活用 する)
  18. 再学習したら変なところが壊れた!! 魚座の運勢は? 天気API 占いAPI 音楽API Before うお座の 運勢は… 魚座の運勢は? 天気API

    占いAPI 音楽API After ~♪ AIが学習したら おバカになっちゃった !! そういう名前の アーティストが 入ってきてた!
  19. Chapter.3 まとめ • AIにはCACE性という問題が存在する • できるモノは自動リグレッションテストがいい ◦ API自動テスト (Chapter.2) ◦

    全体リグレッションテスト Smart speaker QA 24P • できない場合 ◦ 効率化の工夫 ▪ 俯瞰できる、一覧できるような工夫 ▪ 生成が自動で量産できるなら行う • それらをログ等で確認
  20. (余談) プロンプトエンジニアリングは学習毎では… おしゃべりチャットもベースはプロンプトです。再学習の度に既存のプロンプトで妙な挙動をしていないか確認し ていました。学習のたびに毎度です。毎度リセットされるので賽の河原テストです。 プロンプトエンジニアリングが流行りですが、プロンプトは 学習ごとに精度見直し になるでしょう。 LLM ver1.0 呪文を調べま

    くったぞ! 精度などなど 書き残すぜ! LLM ver1.1 すごい 呪文集 (ver1.0 調査) 最新の知識を入れ てチューニングした よ! てへぺろ! すごい 呪文集 (ver1.0 調査) あれ? なんか前と動きが違 う呪文が… ナンデェ!? もうツールに組み込 んでるんスけど!! Open
  21. 生成した。で、俺はどうすればいい? 例:商品説明生成AI タグ : #ポテチ #コンソメ #厚切り 説明 (AI自動生成) この絶妙なお菓子は、クリスピーな食感と濃厚な

    塩味が奇跡のハーモニーを奏でます。一度食べ たら止まらない、その魅力にあなたも虜になるこ と間違いなし。極上の味わいをぜひ体験してくだ さい! 説明文の自動生成AIシステムだけど…… どう評価すればいいんだ? 見た感じ良さそうな気がする。
  22. n段階の基準を設けて評価 例:商品説明生成AI タグ : #ポテチ #コンソメ #厚切り 説明 (AI自動生成) この絶妙なお菓子は、クリスピーな食感と濃厚な

    塩味が奇跡のハーモニーを奏でます。一度食べ たら止まらない、その魅力にあなたも虜になるこ と間違いなし。極上の味わいをぜひ体験してくだ さい! 1 : 商品と明らかに異なる説明が入っている、また は文章が破綻している 2 : 文章が成立しているが、商品の特徴となるワー ドが含まれていない 3 : 文章が成立し、商品の特徴となるワードが 1つ 含まれている 4 : 文章が成立し、商品の特徴となるワードが 2つ 含まれている 5 : 文章が成立し、商品の特徴となるワードが 3つ 以上含まれている (例) 5段階評価 (例) “1”は最低限満たすべきことが満たされていない状態。 商品説明で異なる説明をした場合は法律に関わる…など。 (例) 100サンプルとって グラフを書いて傾向を見る…など
  23. おしゃべりチャットの例 おはようございます おはよう はい 今日は目玉焼きです えっと… あ、はい… 評価は、 1 :

    言ってはいけないワードが含まれる 2 : 1文において文章が成立している 3 : nターンにおいて文章が成立している 4 : nターンにおいて会話の内容が成立して いる…… まつさん、キャラクター性が大事です!! まつさん、会話からストーリーが 想像できるかですよ まつさん、会話の続きが見たいか…そ れが大切なんです
  24. 調査は各社やってきた知見が使える ゲームが狙った通り 「楽しめる」かを 確かめたい!! 社内テスト クローズドβテスト アプリのアップデートで 「使いやすい」くなったか 知りたくて震える ユーザーテスト

    ABテスト ※これら調査は別チームが行うのか、 QAチームでも行うのか確認すること ! ユーザーがAIで 「理想のキャラ」を 作れるか知りたい! クローズドβテスト ユーザーテスト
  25. Last Chapter まとめ • 期待する方向性を表すような条件を見つけ出して基準をつくる • 問題がないかの確認の他、要求にあったものを作れているかの調査 ◦ 調査は今までの知見が使える(大きく変わりはない) ▪

    (例) 定性評価 • エキスパート • クラウドワーカー ▪ (例) 一部ユーザーにだけ提供し確認 • フィードバックからの精度向上のAgilityが重要 ◦ MLOpsの体制作りの重要性
  26. AIシステムに対する品質保証について書かれたもの • 書籍 ◦ AIソフトウェアのテスト 答のない答え合わせ [4つの手法] • ドキュメント ◦ ISTQBテスト技術者資格制度

    Foundation Level Specialist シラバス AIテスティング日本語版 ◦ AIプロダクト品質保証ガイドライン ◦ 機械学習品質マネジメントガイドライン