最終更新日:
データ中心のAIとは、2021年にAndrew Ng教授が提唱した新しいAIシステム開発技法を意味します。この技法は、AIモデルの改善に注力していた従来のモデル中心の開発から、学習データを使って反復的にAIモデルを訓練する誤差分析駆動型データ反復(Error analysis driven data iteration)を適用したデータ中心の開発に方針変更するというものです。データ中心のAI開発を実践するには、以下のような5つのステップを実行します。
データ中心のAI開発を実践するための5つのステップ
|
以上のようなデータ中心のAI開発は、Ng教授が指摘するようにモデル中心のAI開発よりモデルの性能を改善できることから、今後のAIシステム開発の主流となる可能性が高まっています。
なお、以下の記事本文はBikram Baruah氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。また、翻訳記事の内容は同氏の見解であり、特定の国や地域ならびに組織や団体を代表するものではなく、翻訳者およびAINOW編集部の主義主張を表明したものでもありません。
以下の翻訳記事を作成するにあたっては、日本語の文章として読み易くするために、意訳やコンテクストを明確にするための補足を行っています。
目次
はじめに:
AIは急速に発展している分野だが、数年前までは例えば視覚タスクにはCNN、言語タスクにはLSTMのようなネットワークというように、タスクごとに異なるモデル・アーキテクチャがあった。しかし、Transformerアーキテクチャの発明とその後の2~3年の開発により、今ではこれらのタスクは異なるユースケースに対していくつかの微調整を施すだけで単一のアーキテクチャで非常にうまく処理されるようになった。数ヶ月ごとに新しい大型のモデルがリリースされ、その精度は最先端のモデルを何パーセントか上回っている。
実務でAIソリューションを開発する場合、少しでも高い精度を達成することを目標により優れたアーキテクチャ、より大きな事前学習済みモデル、あるいは最適なハイパーパラメータのセットをあてもなく探し続けることに容易くとらわれてしまう。この様子は2000年代半ば以降の(AI)コミュニティのことだが、2021年初頭、Andrew Ng教授が率いる動きによって実務家のモデル改善について考える方法がシフトした。モデルやアーキテクチャの研究開発は(正当な理由があるので)まだ続いているが、データ中心のAIと呼ばれる新しいモデル開発の方法が登場したのだ。
・・・
データ中心のAI:
データ中心のAIは、モデル中心のAIとどう違うのか。モデル中心のAI開発は、この業界が伝統的に行ってきたことである。固定されたデータセットを持ち、モデルを訓練し、そのモデルをホールドアウトテストセットで評価し、より良い結果を得るためにハイパーパラメータを微調整したり、モデルを変更したりして、目的の指標が達成されるまでそれらを続ける。
データ中心のアプローチは、次のようなキーコンセプトによって(モデル中心の開発と)異なる。そのコンセプトとは、モデルとハイパーパラメータを固定し、誤差分析駆動型データ反復(Error analysis driven data iteration)を適用してモデル性能を向上させるというものだ。ここで非常に重要なのは、誤差分析駆動型データ反復である。このアイデアは、さまざまなクラスやサンプルの誤差を分析して、(その分析結果を)データの取得、収集、増強などの今後のプロセスの指針とすることを意味する。このプロセスはより多くのデータをランダムに収集したり、特定のクラスを増強したりする代わりに、戦略的にモデルのパフォーマンスを向上させるのにも役立つ。
しかし、なぜこれまでうまくいっていた現在のモデル中心のアプローチから移行するのだろうか。その答えは簡単だ。ML/AIでは、データはコードだからである。データはモデルがどのように動作するかを定義し、そうすることでコードの役割を担っている。モデルにどんなデータを与えるかが、モデルの将来の挙動を決定する。モデル中心のアプローチを使用するとパフォーマンスの上限を迎え、その後、よりデータ中心のアプローチを取ることによって、結果を大幅に改善できる。ガベージ・イン=ガベージ・アウトの原則を思い出してみよう(※訳註1)。Andrew Ng教授の講座(※訳註2)にある以下のスライドは、データ中心のアプローチを取ることによって、モデルのパフォーマンスが桁違いに向上することを示している。
データはコードであることを覚えておこう。
金属欠陥検出 |
ソーラーパネル |
表面検査 |
|
ベースライン |
76.2% |
75.68% |
85.05% |
モデル中心 |
+0% |
+0.04% |
+0.00% |
データ中心 |
+16.9% |
+3.06% |
+0.4% |
・・・
データ中心のモデル開発アプローチのためのステップ:
データ中心のモデル開発アプローチを取るためには、どのように始めればよいだろうか。そのステップは、スコーピングの段階から始まり、実装後の段階まで続く。それでは、これらのステップの詳細を説明したい。
1.スコーピングとプレモデル開発:
正しいデータが取得できるようにする:データはコードであるため、正しいデータを収集できることが重要である。データには、私たちが関心を寄せている信号が含まれていることを確認することも重要だ。例えば、携帯電話の画面の傷が製造現場の人間の検査官には見えるが、同じ検査官が画像取得装置で撮影した画像ではそれが見えない場合、画像を取得するのに使っている照明やカメラの解像度を変更する必要があるかも知れない。また訓練用とテスト用のデータセットにおいてできるだけ多くのケースをカバーするような、良質なデータの網羅性も重要となる。
ヒューマンレベルパフォーマンス(Human Level Performance :HLP)を確立する:音声や画像などの非構造化データの場合、HLPを確立することでモデルの誤差分析駆動型データ反復におけるベースラインを設定できる。そして、改善が可能かつ最もポジティブなリターンにつながるクラスを特定することで、以上の反復を促進できる。
2.ラベリング(ラベル付け):
モデル中心の開発であれ、データ中心のそれであれ、ラベリングの段階は非常に重要である。ラベルは一貫性があってクリーンであることが重要であり、データセットが小さい場合にはノイズの多いデータはモデルの性能に悪影響を与えるので、さらに重要となる。ラベリングを完遂するためにラベラーにはルールブックが必要となり、それに従ってラベラーのあいだで矛盾がないようにしなければならない。
例えば以下の画像では、ラベラーによっては個々の子猫にラベルを貼る(左側)かも知れないし、グループとしてラベルを貼る(右側)かも知れない。どちらも技術的には正しいのだが、しかしながらラベリングの最初の段階でルールを決めて、どちらが好ましい方法なのかをラベラーに知らせる必要がある。LandingLens(※訳註4)のようなツールは、このプロセスを効率化するのに役立つ。
3.モデル開発と誤差分析駆動型反復:
モデル中心の開発では固定的なデータセットを保持した状態で、ハイパーパラメータのチューニングやモデルの変更によってモデル性能を反復的に向上させる。このため、モデル開発は通常、必要な/収集可能なデータがすべて収集された後に行われる。
データ中心の開発では、異なるアプローチが必要となる。初期段階を早く始めて、すばやく動く。集められるだけのデータのために何ヶ月も何年も待つのではなく、比較的小さなデータセットから始めて、使用するアーキテクチャに適したデータサイズになったら、すぐにモデルを訓練する。
・・・
実世界のデータは、いつもうまくいくとは限らない。 無料のウェビナーを活用して、準備した実験が確実に成功するようにしよう。
・・・
以上のように行うことで正しいデータが収集されているのか、あるいはデータ収集プロセスを変更する必要があるのかを知ることができる。例えば、工場の照明の関係で車のある種の傷が画像で確認できない場合、(データ収集のために1年待つような)後にならなくともこの問題は特定できるはずだ。
Comet MLやdvcなどのデータバージョン管理ツールを使用することで、反復プロセスにおけるデータセットの時間的な変化を追跡できる。
モデルの訓練が終わると、今度は初期モデルに対して誤差分析が行われる。このプロセスこそが、データ中心のアプローチで最も興味深いところである。誤差分析はHLP(利用可能な場合)や重要指標とともに、今後のアクションやデータ収集戦略を導くために使われる。
例えば銀色の車のドアについた2cm以下の傷に関して欠陥検出モデルがうまく機能していない場合、誤差分析を利用して今後のデータ収集戦略を推進できる。Comet MLのようなツールは、モデルの性能が基準に達していないケースを特定するのに役立つ。
(データの)サンプル数は、以下のようにして増やせる。
- 現在のデータ収集パイプラインを使って、より多くのデータを収集する。
- データ増強。
- Unity Perceptionなどのパッケージによる合成データの生成(※訳註5)。
現代のほとんどのディープラーニングのアーキテクチャでは、特に大規模なモデルが使用されている場合、データを追加してもほとんど支障はない。むしろ、データを追加することで、類似のクラスの性能が若干向上するのが普通である。つまり、銀色のドアについた2cm未満の傷のサンプルを多く集めることが難しい場合、2cm未満の傷を持つ他の類似した外観のドア(例:灰色のドア)のサンプルを集めれば、銀色のドアに対するモデルの精度も向上する可能性が高いのだ。
一度に1つのクラスに対するモデルの性能向上を優先させることで、利用可能なリソースを集中できる。この決定は、以下のようなさまざまな方法によって行える。
- 特定のクラスにおけるモデルの性能と、そのクラスのHLP(利用可能な場合)のギャップを測定する。
- 特定のクラスの誤判定コスト(誤判定の組ごとに重みをつけた混同行列)を用いる。
- サービス提供中に遭遇する可能性の高い、特定のクラスに関するデータの割合の特定。
- HLPとのギャップやデータの割合などの情報を組み合わせる(下図のように)。
分類タイプ |
精度 |
HLP |
HLPとの差 |
データの出現確率 |
最大改善価値 |
赤色の車 | 95% | 100% | 5% | 30% | 1.5% |
グレーの車 | 85% | 90% | 5% | 50% | 2.5% |
銀色の車 | 82% | 90% | 8% | 20% | 1.6% |
表右側の「最大改善価値」は、「HLPとの差」と「データの出現確率」の積である。最大改善価値は「HLPとの差が大きく、なおかつ出現確率の高いデータを含むクラスがもっとも改善効果が高い」というアイデアにもとづいて算出されている。
上の表から、グレーの車の性能向上に注力することが、他の車よりもビジネスに大きな価値をもたらすことがわかる。そうすることで、他の類似クラスの精度も向上するはずだ。
その他の手法としては、最新の反復モデルで前の反復モデルで誤分類されたサンプルをテストし、最新の反復モデルにおける性能向上を分析することがある。この手法では、モデルの訓練やデータ収集戦略がうまくいっているかどうかも分析できる。この手法は、さまざまな反復モデルを通じて一貫して精確な予測に失敗しているサンプルを特定することにも役立つ。こうしたサンプルの特定は、今後のデータ収集戦略の方針をも提供してくれる。
4.データの監視:
モデルが本番稼動した後は、入力されるデータを継続して監視する必要がある。なぜなら、現実の世界は常に進化しているため、予測のためにモデルに投入されるデータも常に進化しているからだ。通常、起こるドリフトは2種類ある。
データドリフト:入力Xの分布が変化すること。このドリフトは、以下のようにさまざまな理由によって生じ得る。
- 音声入力において差異が生じるのは、NLPシステムが学習した内容とは異なる国籍の人が使い始めたから。
- 目視検査装置の場合、カメラが叩かれて所望の視野から外れるようになった。
- Webサイトの変更。例えばモデルを訓練した時は値が正の値だけだったのに対し、ユーザが負の値を入力できるようになった。
コンセプトドリフト:Xからyへのマッピングが変化すること。例えば、2000年に訓練した住宅価格データセットは、今日ではおそらくうまく機能しないだろう。人間の感情や行動が急激に変化することはほとんどないため、コンセプトドリフト(※訳註7)は通常、データドリフトよりもゆっくりと起こる。しかし、COVID-19のような出来事によって、多くの人が以前よりもオンラインで食料品を注文するようになるなど、コンセプトが突然変化することがある。
どちらのタイプのドリフトも、モデルの性能に悪影響を及ぼす。これらのドリフトにはさまざまな生じ方がある。そのため、ドリフトの対処法はケースバイケースとなる。そうは言ってもデータドリフトが発生していることを把握するためには、まずモデル提供時の受信データを監視する必要がある。データの監視は入力される画像の画素値のヒストグラムをプロットして設定したスキーマ(訓練時に取得可能)と比較したり、表形式のデータの場合は、入力値の最小、最大、平均、分散、範囲などの各種統計量を計算したりするなど、さまざまな方法で行える。
Comet MPMのようなツールは本番モデルを監視し、コンセプトドリフトを検出するのに役立つ。Chip Huyen氏によるブログ記事『データ分布の移行とその監視』(※訳註8)は、さまざまなケースでのドリフトを検出する方法について詳しく書かれた必読の記事である。
データドリフトやコンセプトドリフトに悩まされるサンプルは、場合によっては監視システムを素通りしてしまうことがある。例えば、工場の振動でカメラの映像が少しぶれただけでは(検査画像の)統計的な特性がほぼ同じになり、データドリフトの検出器を素通りしてしまうことがある。そのため、モデルの性能を追跡することも重要となる。
4種類のコンセプトドリフト
|
コンセプトドリフトについては、AINOW翻訳記事『なぜ機械学習モデルは製品化すると劣化するのか』も参照のこと。
5.モデルの監視と再訓練:
モデルの監視とは、モデルの提供中に予測精度がどの程度であるかを監視するプロセスである。
モデルの監視は、人間がループ内で行うフィードバックや、レコメンデーションシステムにおけるクリックスルー率などの自動的なフィードバックシステムなど、さまざまな方法で行える。ある種のフィードバックは、他のものより早く得られる。
モデルの性能は、コンセプトドリフト、データドリフト、またはその両方の組み合わせによって低下する可能性がある。実世界推論のモデル性能が設定された閾値を下回ると(閾値を下回るユースケースにもよるのだが)、再訓練が必要になる。再訓練にはさまざまな手法があり、古いモデルの上に新しいデータを使って再学習する方法(転移学習)があるのだが、コンセプトの変化が激しい場合、新しいデータで全く新しいモデルを再訓練する必要がある。
サービス提供時に正しく分類されたサンプルと誤って分類されたそれを別々に保管し、後でそれらを分析や再訓練に使用できるようなシステムを構築しておくとよいだろう。
一度再訓練を行えば、シャドーモード、カナリア実装、ブルーグリーン実装などのさまざまな実装戦略を用いてモデルを実装することで、新しいモデルのパフォーマンスを評価できる(※訳註9)
さまざまなアプリ実装・テスト戦略
|
以上の実装戦略の詳細は、前出のドキュメントを参照のこと。
・・・
結論:
以上に見たようにデータを中心としたアプローチで問題に取り組むとは、データをガイドとした反復プロセスと言える。
データ中心とは、適切な高品質のデータを使ってモデルを訓練するだけではなく、データを使ってモデルの成果を測定し、誤差分析駆動型データ反復を実行してモデルを改善し、受信データとそれに対するモデルのパフォーマンスを監視してモデルを維持することをも意味する。
Comet MLやLandingLensなどのようなデータ中心のアプローチをとるためのより開発者に優しいツールの開発により、モデル開発のためのデータ中心のアプローチは将来的にモデル開発と改善に関する大きな推進力となるだろう。あなたの現在のプロジェクトや将来のプロジェクトで、よりデータ中心的なアプローチを導入する方法を考え、このかなり新しいモデル開発のアプローチについてあなたの考えを共有してください。
データはコードであることを忘れないでください。
・・・
編集者についての注記:Heartbeatは、データサイエンス、機械学習、ディープラーニングの専門家向けに、優れた教育リソースを提供する投稿型オンライン出版社およびコミュニティです。私たちはあらゆる分野の開発者やエンジニアを支援し、刺激を与えることを約束します。
HeartbeatはデータサイエンティストやMLチームが実験を追跡、比較、説明、最適化するためのMLOpsプラットフォームであるCometがスポンサーとなっている発行している独立編集メディアです。私たちは寄稿者に報酬を支払い、広告を販売することはありません。
寄稿を希望される方は、寄稿者募集にアクセスしてください。また、私たちの週刊ニュースレター(Deep LearningWeeklyとComet Newsletter)の受信にサインアップできたり、Slackで私たちのコミュニティに参加できたりします。 また、TwitterやLinkedInでCometをフォローすると、より良いMLモデルをより速く構築するためのリソースやイベントなどの情報を入手できます。
原文
『Moving from Model-Centric to Data-Centric AI』
著者
Bikram Baruah
翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)
編集
おざけん