×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ビジネス現場における 機械学習モデルの品質評価 2023/9/28 森 正和 @ 株式会社マネーフォワード
Slide 2
Slide 2 text
森 正和 CTO室 AI推進部 機械学習エンジニア X (旧Twitter): @marisakamozz Nike Run Club 黒帯 (累計ラン5,000km) Kaggle Competitions Master (金1, 銀2) https://kaggle.com/marisakamozz
Slide 3
Slide 3 text
普段のお仕事 引用元:https://corp.moneyforward.com/news/release/service/20230718-mf-press-1/
Slide 4
Slide 4 text
AI-OCRとは 請求書などの文書から請求金額な どの情報を読み取る仕組み。 (右の例では「71,761円」) 自分で入力しなくても、あらかじめ 読み取った情報を自動で入力。 ユーザーは確認して登録するだ け。 引用元:https://corp.moneyforward.com/news/release/service/20230718-mf-press-1/
Slide 5
Slide 5 text
ざっくりシステムのイメージ Money Forwardの 各種プロダクト群 などなど・・・ AI-OCR マイクロサービス
Slide 6
Slide 6 text
最近あったこと
Slide 7
Slide 7 text
プロダクト側から送られてきたテスト用請求書の1例: https://www.eurofound.europa.eu/sites/default/files/ef_publication/field_ef_d ocument/ef1710en.pdf 80ページに及ぶユーロ圏の労働統計レポート的な何か。 調べてみたら
Slide 8
Slide 8 text
一般的なソフトウェアエンジニアリングと機 械学習モデル開発では品質の考え方が ちょっと違うのかも・・・? 本日のテーマ
Slide 9
Slide 9 text
一般的なソフトウェアエンジニアリング ソフトウェア 入力 出力 請求金額 総勘定元帳 異常な金額 エラーを表示
Slide 10
Slide 10 text
機械学習モデル 機械学習モデル 入力 出力 請求書 請求金額 顧客属性情報 クリック確率
Slide 11
Slide 11 text
一般的なソフトウェアエンジニアリングにおける品質評価 ソフトウェア 入力 出力 あらかじめ 定義された入力 あらかじめ 定義された出力 が得られるか? 請求金額を 入力したら… 総勘定元帳に 正しく登録されるか? 異常な金額を 入力したら… 正しくエラーメッ セージを 表示するか?
Slide 12
Slide 12 text
機械学習モデルの場合は? 機械学習モデル 入力 出力 あらかじめ定義さ れた入力? あらかじめ定義さ れた出力? 異常な金額? 異常な出力?
Slide 13
Slide 13 text
● 未知のデータで評価する ○ あらかじめ定義された請求書からあらかじめ定義された請求金額が取れても嬉しくない ○ 機械学習モデルが一度も見たことがない請求書で請求金額が取れて初めて意味がある ○ モデルによっては毎回挙動が異なるものもある(推論時データ拡張など) 機械学習モデルの品質評価の鉄則 ● 実運用時と同じ、もしくは、同じようなデータで評価する ○ 実運用時にはあり得ないような入力データ(一般的なソフトウェアエンジニアリングにおいてはありが ち)を用いても、機械学習モデルは期待した結果を出力できない ■ 例えば、システムに登録できる最大の請求金額が 1兆円だったとしたら、一般的なソフトウェアエ ンジニアリングで1兆円のテストを行うのは当たり前 ■ しかし、機械学習モデルは 1兆円の請求書を見たことがないので正しく出力できない ○ しかし、それを元に「機械学習モデルの品質が悪い」と判断して良いのか? ○ 正しく評価するには実運用時と同等のデータが必要
Slide 14
Slide 14 text
● 本番稼働前 ○ 既存システムで運用中に収集した本番データを用いて評価を行う ○ (本日はここの話だけをします) ● 並行本番 ○ A/Bテスト ● 運用後 ○ モニタリング しかし、現実はそんなに甘くない。 機械学習モデルの品質評価手法
Slide 15
Slide 15 text
● そもそもデータが取れないケース ○ 既存システムがない完全に新規のシステム ○ 例えば、広告配信システムであれば、あるユーザーに Aという広告を表示したのであれば、 Bという広 告を表示したデータは得られない ● データは取れるが、正解ラベルにコストや時間がかかるケース ○ 既存システムに請求書は保存されているが、何が記載されていかは保存されていないケース ○ 融資先の貸し倒れ予測モデルであれば、融資先が貸し倒れするまでその結果は得られない 機械学習モデルの品質評価における困難
Slide 16
Slide 16 text
● コストと品質評価のトレードオフ ○ 正解ラベルは機械学習モデルの学習時に必要 ○ そのため、ある程度をコストをかけてでも正解ラベルを付与する作業を行う(「アノテーション」という) ○ しかし、闇雲にすべてのデータにアノテーションするのは無駄が多い ■ クラス分類であれば学習時にダウンサンプリングしてクラス間のバランスを調整 ○ そのため、学習時になるべく幅広いデータ、既存のデータにあまり似ていないデータに対してアノテー ションすることが多い ○ 結果的に、学習時のデータセットは恣意的に選別されがち ○ 本番稼働後の精度の見積もりを困難にする 機械学習モデルの品質評価における困難
Slide 17
Slide 17 text
● 目標が不明確 ○ 要件:「いい感じで請求書から請求金額を読み取って欲しい」 ○ 機械学習モデルを使用するシーンは定義が曖昧なことが多い ■ というか、定義があいまいだからこそ機械学習モデルを使う ○ そのため、人間のフィーリングに依存していて数値化することが困難 ○ 結果、既存モデルとの相対評価になりがち(それは「いい感じ」なのか?) ● 特殊な要件 ○ 機械学習モデルが予測の理由を説明することは可能 ○ しかし、その解釈性や納得感をどう評価する? 機械学習モデルの品質評価における困難
Slide 18
Slide 18 text
● 一つ一つのデータと向き 合う ● ユーザーや機械学習モ デルの気持ちになって納 得感を確認する じゃあどうすんの?
Slide 19
Slide 19 text
● それはそう。最終的にはA/Bテストなど、実運用で評価するしかない ● ソフトウェアの役割が単なる道具の域を超えて、より人間に近づいている ● 昨今デザインやUI/UXが重視されるようになっていることと同じ ● デザインや機械学習モデルの品質評価が難しいのは、人間の評価が難しいのと同じ こと ● 数々の困難の中で、どうすればエビデンスに基づいた判断を下せるかを模索していく ● それが現代のすべてのソフトウェアエンジニアに求められている それってあなたの感想ですよね?
Slide 20
Slide 20 text
● 機械学習モデルの品質評価 ○ 一般的なソフトウェアエンジニアリングにおけるテストに加え て、機械学習モデル独自の品質評価が必要 ○ 実運用時と同等の未知のデータで評価するのが鉄則 ○ しかし、それには多くの困難が伴う ○ 一つ一つのデータに向き合い、最終的には実運用で評価 結論
Slide 21
Slide 21 text
No content