計算資源の用意やデータの準備、モデルのトレーニング、概念実証から実運用まで一貫してできるスキルセットを持つ“スーパーヒーロー”がいても、システムをスケールするには同じようなスーパーヒーローを何人も雇えるわけではない。
データサイエンティスト、データエンジニア、インフラエンジニア、プロダクトマネジャー、ビジネスの意思決定者と役割を分けてチームにする必要がある。
データサイエンティストはJupyter Notebookといった研究用の開発環境でプロトタイプを作るが、エンジニアはそのコードを受け取って、リファクタリング(コードの整理)をして本番へ実装する。その結果、データサイエンティストは本番環境で何が起きているのか追えず、エンジニアもモデルの内部で何が起きているか追いきれない場合がある。
Googleでは、データサイエンティストとエンジニア間で緊密なコミュニケーションを取り、お互いの作業や結果などをすべて共有し理解することでこの摩擦の原因を大幅に減らすことができたという。
機械学習では1つの変更が全体の挙動に影響を与える可能性がある。一度はある程度の精度が出た学習済みモデルを作れたとしても、そこからさらに精度を改善しようとしてもなかなか思う通りにいかない。
この問題に対しては、佐藤さんはいくつかの解決案を提示している。一つは人間が解釈できるモデルを使うこと。もう一つは深層学習モデルの採用を慎重にし、シンプルな線形モデルを使うこと。そして、一つだけのモデルを使うのではなく、複数のモデルを組み合わせた「アンサンブルモデル」を使うことを挙げた。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR