Model Cardって知ってる?
今まで作ったMLモデルの数を覚えているか?
私は覚えていません。さて、機械学習を利用する上ではモデル構築はほぼ不可欠と言えるでしょう。古き良きロジスティック回帰モデルから最先端の深層学習モデルまで、様々なモデルが様々なシーンで利用されているかと思います。
機械学習モデルを適切に選定・運用する際には、そのモデルがどんなデータで学習され、何ができて何ができない(かもしれない)のかを後から確認できるようにすることが重要です。これに対してGoogleは2018年に「Model Card for Model Reporting」という論文を発表しました。ここでは提案された論文の内容を紹介します(一部意訳や私個人の考えが含まれます)。
まとめ
- モデルカードは機械学習モデルのドキュメント化のためのフレームワークである
- モデルカードにはタスクに関連する様々な条件でのベンチマークスコアを記載する
- 他にモデルの想定用途、詳しい評価方法なども記載する
このような情報を整理しておくことで、機械学習技術の責任ある民主化(responsible democratization)に貢献できる。
Introduction
論文における問題意識は、機械学習モデルの性能や振る舞いをドキュメント化する方法が整理されていないという点です。特にヘルスケアや雇用、教育など人の生活に与える影響が大きい領域では、こうしたドキュメントの存在が重要であるとしています。これに対して、モデルの種類や想定する利用法、その他モデルの性能に影響し得る要素などをまとめたドキュメント化のフレームワークをモデルカードとして提案しています。
Motivation
モデルカードの目的は、機械学習モデルの性質の記載内容を標準化することです。いろいろなモデルの性質を同じフォーマットで整理しておくことで、ユーザーは単純な定量評価だけでなく倫理性や包括性など様々な側面から利用するモデルを選べるようになります。論文では様々なステークホルダーに対して、モデルカードが果たす役割を以下のように紹介しています。
- ML and AI practitioners:モデルが目標のユースケースにどれくらい適していそうかがわかる。また時系列で性能を追っていくことができる
- Model developers:いろいろなモデルを同じ枠組みで比較し、独自のシステムを学習する際の意思決定に生かすことができる
- Software developers:モデルの振る舞いを理解することで、システムの設計や実装に生かすことができる
- Policymakers:機械学習システムがどのように人に影響を与え得るかがわかる
- Organizations:機械学習モデルを含む技術選定の参考にできる
- ML-knowledgeable individuals:ファインチューニングやモデルの組み合わせの参考にすることができる
- Impacted individuals:運用されている機械学習モデルがどのように動いているのかがわかる
モデルカードによる情報の標準化は上記のような意思決定に生かせるだけでなく、前向き(forward-looking)なモデル分析を促進するというメリットにも触れられています。具体的に言えば、人に関する予測であれば男性と女性などのグループに対して公平な予測を行なっているか、また画像分類であれば明るい画像と暗い画像で分類性能が変動しないか(またはどの程度変動するか)などに、モデルのデプロイ前に注意を向けられるということです。これらの取り組みはモデルの潜在的なリスクを発見・周知するのに役立ち、機械学習の責任ある民主化にも重要であるとしてます。
またモデルの性能を多面的に知る上では、複数のデータセットに対する評価結果も重要だとしています。論文ではいろいろな評価方法に適したロバストなデータセットの作成もfuture workとして挙げています。
Model Card Sections
モデルカードの内容としては具体的に以下が挙げられています。ただし、必ずしも網羅する必要はなく、必要に応じて他の情報を加えても良いとしています(具体例が先に気になる方はページ下部のExampleを参照してください)。
- Model Details:モデルに関する基本的な情報
- Intended Use:想定するユースケース
- Factors:デモグラフィック(選別、年齢、人種など)の要素、環境条件、技術的特性など
- Metrics:モデルの評価指標
- Evaluation Data:定量評価に用いたデータセットの情報
- Training Data:学習データの情報
- Quantitative Analyses:定量分析
- Ethical Consideration:倫理的考察
- Caveats and Recommendations:注意事項と推奨事項
Model Details
この項目には、モデルの開発者(または組織)や作成日、バージョンや学習アルゴリズムなどの基本的な情報を記載します。他に利用時の引用方法やライセンス、質問などのフィードバックの連絡先なども挙げています。
Intended Use
想定するモデルの利用方法を記載しておくことで、ユーザーがモデルを選ぶ際の助けになると考えられます。また想定するユーザーの記載としては、娯楽向けか、エンタープライズ向けか、などの記載をあげています。
想定外の利用法を記載することも提案しています。これはおもちゃや食品、電化製品に類似した記載であり。例えば「100単語以下の文章には不適切」、「グレースケール画像のみ対応」などを挙げています。個人的にこのように「何ができないか」を適切に整理してすることは、機械学習技術が社会に普及する上で非常に重要だと思います。
Factors
これはモデルの性能に関連する要素、という理解が適切だと思います。論文では大きくGroups, Instrumentation, Environmentに分けて説明しています。
Groupsは評価データ内に存在するカテゴリであり、例えば人種や性別などを挙げています。人物認識モデルの場合であれば、年齢や性別、肌の色などが記載を検討すべき要素になります。また場合によっては単一のカテゴリだけでなく、複数カテゴリの組み合わせも考える必要があるとしています。
Instrumentationはデータ収集の設計と言えます。例えば顔認識モデルの場合には、カメラのレンズや画角、撮影モードなどがモデルの予測性能に影響を与える要素として検討することになるとしています。またEnvironmentはデプロイ時の環境を指しており、同様に顔認識モデルの場合には、撮影時の明るさや湿度などが例として挙げられています。
これらを踏まえて、モデルに影響を与え得る要素をRelevant factor、その中で実際に影響を検証したものをEvaluation factorとして記載することを提案しています。このように分けている理由は、評価ができるかどうかがデータセットのアノテーションによって違ってくるからだと言えます。
Metrics
モデルの評価指標と、それを採用した理由を記載します。他に、閾値を用いるアルゴリズムでは閾値を変えた場合に振る舞いや、交差検証などによる評価結果の変動具合も掲載候補として挙げられています。
Evaluation and Training Data
評価データは想定する利用法にマッチしたものを選ぶべきであり、同時に公的に利用可能なものを含むべきとしています。加えてデータセットの選定理由や、評価時に適用した前処理も記載対象としています。
学習データに関しても、理想的には評価データと同等の情報を掲載すべきとしていますが、プライバシーや秘密保持などの制約がある場合もあります。そのようなケースではデータ内の各グループの分布などといった内容を、公開できる範囲で記載すべきとしています。
Quantitative Analysis
この項目ではFactorで検討した要素(年齢、性別など)について、実際にモデルの予測がどのように変化するかを記載するべきとしています。
Ethical Consideration
この項目は倫理的な観点での懸念点を記載するとしています。機械学習モデルが倫理的に問題ないことを明らかにする統一的な方法は確立されていないものの、モデルカードの作成に際してこうした点を検討することは重要であると言えます。具体的な内容としては、顔認識モデルであればデータセットが適切な方法で収集されたものかなどを挙げています。
Caveats and Recommentations
この項目は、上記の項目でカバーされていない補足的な内容とされています。例えば定量的に評価されていないがモデルに影響し得る要素や、モデル利用上の補足などを挙げています。
Examples
以上を踏まえて、論文では画像の笑顔検知モデルと、テキストの有害度分類モデルのモデルカードを例として掲載しています(画像は論文より引用)。それぞれのモデルで評価方法や利用上の懸念点などが統一的なフォーマットで記載されているのが分かります。多くのモデルの内容がこのようなフォーマットで提供されるようになれば、一つ一つ時間をかけて論文などを調べることなく、目的の用途との親和性を比べられるようになり有益だと感じました。
その他リソース
本稿では論文の内容を主に紹介しましたが、実際にモデルカードを作成するためのツールやサンプルもGoogleから公開されています。
-
Scikit-Learn でモデルカードを作成してクラウドにデプロイする方法 - Google Cloud
- scikit-learnによるモデルをベースとしてモデルカードを作成し、HTMLとしてエクスポートするまでを紹介しています。モデルカードの作成はModel Card ToolkitというPythonライブラリによって行っています。
-
Example Model Cards
- GCPのCloud Vision APIの顔検知APIと物体検知APIのモデルカードをサンプルとして公開しています。顔や物体の大きさ、画像明るさなど、予測性能に影響を与える可能性のある要素についても提示しています。
-
責任ある AI への取り組み | Responsible AI Toolkit | TensorFlow
- モデルカードに限らず、公平性や解釈可能性、プライバシーなど責任あるAIを実現するための取り組みについて紹介しています。
感想
Scikit-learnからTensorFlow、PyTorchに始まり、AutoMLなど誰でも簡単に機械学習モデルの構築ができるようになってきたという意味では、機械学習の民主化はかなり進んできたと感じます。これに対して、モデルカードが触れているような「責任ある民主化」はモデル構築の先の継続的運用を見据えたテーマだと感じました。最近では日本国内の企業でも機械学習技術をサービスに導入・運用している事例が多く報告されており、2021年も目が離せないテーマであると思います。
Discussion