セミナー: 機械学習デザインパターン
イベント内容
セミナー: 機械学習デザインパターン
2021年3月30日(火)18:30-20:30 オンライン
アンケート: ぜひこちらへ4月6日までにご回答ください。https://forms.gle/kyX2qDV3THabTLQdA
機械学習の社会応用が急速に進展することに伴い、実務家や研究者において機械学習モデルや機械学習システム全体の良い設計の指針の整理と共有が求められています。本セミナーでは、背景として機械学習工学および機械学習システムの開発プロセスを概観したうえで、講演者らが調査により整理した15の機械学習応用のためのソフトウェアエンジニアリングパターン(Software Engineering Patterns for Machine Learning)、および、Lakshmananらが整理体系化した30の機械学習デザインパターン(Machine Learning Design Patterns)を解説します。
Zoomオンライン開催・参加無料です。ぜひご参加ください。
主催
- enPiT-Pro スマートエスイー, スマートエスイーコンソーシアム
- eAI 機械学習を用いたシステムの高品質化・実用化を加速する"Engineerable AI"技術の開発(予定)
協力・協賛
- 日本ソフトウェア科学会 機械学習工学研究会(MLSE)
- 早稲田大学グローバルソフトウェアエンジニアリング研究所
概要
- 日時: 2021年3月30日(火)18:30-20:30
- 場所: オンライン Zoom
- 参加費: 無料
- 講演者: 吉岡信和(国立情報学研究所)、竹内広宜(武蔵大学)、鷲崎弘宜(早稲田大学)(eAIプロセス・パターンチーム)ほか
- 参加申込: 本connpassページからお申し込みください
プログラム
18:30-18:45 機械学習工学とプロセスの概要
吉岡 信和(国立情報学研究所)
機械学習デザインパターンの背景として、機械学習工学および機械学習システムの開発プロセスを概観します。
18:45-19:00 機械学習応用のためのソフトウェアエンジニアリングパターン(SE Patterns for ML)の概要ほか
竹内広宜(武蔵大学)
講演者らはJST未来社会”Engineerable AI”(eAI)プロジェクトにおいて、学術文献および灰色文献の体系的調査により、ソフトウェアエンジニアリングの観点からの機械学習応用システムおよびソフトウェアの設計における代表的なデザインパターン(一部 IWESEP、AsianPLoP、PLoP)を特定し、整理を進めています。本講演では以下のパターン群の全体像ならびにモデリング等について解説します。
パターン名 | 問題 | 解決 |
---|---|---|
Parameter-Server Abstraction | 分散学習では、広く受け入れられている抽象化が不足 | データとワークロードの両方をワーカーノードに分散し、サーバーノードはグローバルに共有されたパラメータを保持 |
Data flows up, Model flow down (Federated Learning) | 標準的な機械学習アプローチでは、訓練データを1台のマシンまたはデータセンターに集中管理する必要あり | すべての訓練データをデバイスに保持したまま、モバイルデバイスがクラウド上で共有モデルを共同訓練 |
Secure Aggregation | システムは、モデルの更新を安全、効率的、スケーラブル、フォールトトレラントな方法で通信し、集約する必要あり | 連合学習で各モバイル端末のデータを暗号化し、個別の精査なしに集計・平均値を算出 |
Different Workloads in Different Computing Environments | MLデータのワークロードを分離して素早く変更し、訓練ワークロードを安定化させる必要があり | 異なるワークロードを異なるマシンに物理的に分離、マシン構成とネットワーク使用量を最適化 |
Data Lake for ML | データに対する分析方法や利用フレームワークを予想困難 | 構造化・非構造化のいずれも可能な限り生データをストレージ保存 |
Distinguish Business Logic from ML Model | 全体的なビジネス・ロジックは他に影響を与えず変更できるようMLモデルから分離の必要あり | ビジネス・ロジックと推論エンジンを分離し、ビジネス・ロジックとML固有のデータフローを疎結合 |
Microservice Architecture for ML | 既知のMLフレームワークに限定され、より適切なフレームワークの機会を逃してしまう可能性 | 一貫性のある入力・出力データ定義、MLフレームワークで使用するための明確に定義されたサービス提供 |
ML Gateway Routing Architecture | クライアントが複数のサービスを利用する場合、サービスごとに個別のエンドポイント設定管理困難 | ゲートウェイをインストールし、適切なインスタンスへのアプリケーション層のルーティング要求を使用 |
Lambda Architecture | リアルタイムデータ処理におけるスケーラビリティ、耐障害性、予測可能性と拡張性の困難さ | バッチレイヤーはビューを生成し続け、スピードレイヤーはリアルタイム/スピードビューを生成、サービングレイヤは両方に問い合わせ |
Kappa Architecture | 少ないコードリソースで膨大なデータを扱う必要 | 単一のストリーム処理エンジンでリアルタイムデータ処理と連続的な再処理の両方をサポート |
Separation of Concerns and Modularization of ML Components | MLコンポーネントの定期的かつ頻繁な変更に対応必要 | 最も単純なものから最も複雑なものまで、複雑さの異なるレベルで分離 |
Discard PoC Code | PoCのために作成したコードでは、試行錯誤を効率的に実施するため保守性犠牲 | PoCのために作成したコードは破棄し、PoCで得た知見に基づき保守性の高いコードを再構築する |
ML Versioning | MLモデルとその異なるバージョンは、MLアプリケーション全体の挙動を変える可能性あり | MLモデル構造、データ、システム、解析コードを記録し、再現性のある学習・推論 |
Encapsulate ML models within Rule-based Safeguards | 機械学習モデルは、不安定で敵対者攻撃に弱く、データのノイズやドリフトの影響を受けやすい | MLモデルの予測結果に内在する不確実性を、決定論的で検証可能なルールでカプセル化して対処 |
Deployable Canary Model | MLモデルの説明性が低いため、振る舞いを近似する代理MLモデルを得たい | 説明可能な推論パイプラインを一次推論パイプラインと並行して実行し、予測の違いを監視 |
19:00-19:05 質疑
19:05-20:15 機械学習デザインパターン(ML Design Patterns)の解説
鷲崎 弘宜 (早稲田大学 / NII / システム情報 / エクスモーション)
Lakshmananらが機械学習のモデルおよびシステムの設計と実装・運用における典型的なパターンを整理体系化した30の機械学習デザインパターン(Machine Learning Design Patterns)の全体像および主要なパターン群を詳しく解説します。以下のパターン群が、データ表現、問題表現、モデル訓練、レジリエントサービング、再現性、責任・説明性の6つのカテゴリに分かれています。
(出典: Valliappa Lakshmanan, Sara Robinson, Michael Munn, "Machine Learning Design Patterns: Solutions to Common Challenges in Data Preparation, Model Building, and Mlops", Oreilly & Associates Inc, 2020.)
パターン名 | 問題(講演者による簡易要約) | 解決 (講演者による簡易要約) |
---|---|---|
Hashed Feature | カテゴリー変数についてとりうる種類を特定困難。One-hot encodingではCold-Start問題 | ユニークな文字列としたうえでハッシュ値に変換 |
Embeddings | One-hot encodingではデータの近さを扱えない | 意味的な近さを表すように特徴の埋め込み。例えばテキストの分散表現、画像の畳み込み。 |
Feature Cross | もともとの変数群そのままでは関係に基づく分類や予測が困難 | 複数のカテゴリー変数の組み合わせで関係を容易に表現 |
Multimodal Input | 異なる種別の入力を扱いにくい | 分散表現の結合や高密度化 |
Reframing | 当初の目的変数や出力形式では限界 | 問題を回帰から分類へ変更(逆も) |
Multilabel | 出力層の活性化がsoftmax列では複数ラベル困難 | 出力をsigmoid列 |
Ensembles | バイアスとバリアンスのトレードオフ | アンサンブル学習(バギング、ブースティングほか) |
Cascade | 通常と特殊を同一モデルで扱い困難 | 通常と特殊に分類のうえそれぞれに訓練・予測し集約 |
Neutral Class | データに主観評価を含むなどにより任意・ランダム性 | Yes, NoにMaybeを加えた分類とする |
Rebalancing | データセットが不均衡 | Accuracy以外評価。ダウン・アップサンプリング、reframing。 |
Useful Overfitting | 物理シミュレーションのように全入力を扱える | 過学習で良い。実際にはモンテカルロ法でサンプリングなど |
Checkpoints | 複雑なモデルは訓練に時間を要する | 訓練モデル外の情報も含めて全ての状態をエポック単位で保存・再開 |
Transfer Learning | 非構造データの訓練には巨大データが必要 | 同種データで訓練済みのモデルによる転移学習、ファインチューニング |
Distribution Strategy | 深層学習モデルの訓練に長時間 | データ並列化、モデル並列化による分散学習 |
Hyperparameter Tuning | ハイパーパラメータの人手チューニングは長時間で不正確 | 外側の最適化ループとしてのハイパーパラメータチューニング |
Stateless Serving Function | モデルの巨大化。訓練時と稼働時の環境相違 | 数式コアのみのエキスポート、状態無し関数RESTful APIとしてデプロイ |
Batch Serving | 非同期の予測を数多く実施困難 | 分散処理環境下で大量データによる非同期予測 |
Continued Model Evaluation | コンセプトドリフト、データドリフト | 継続的なモデル評価・モニタリングと再訓練 |
Two-Phase Predictions | エッジデバイスへデプロイする縮退した訓練モデルの性能低下 | 単純なタスク用のモデルをエッジ、複雑なものをクラウド上で稼働 |
Keyed Predictions | 多数の入力データをスケーラブルに扱えない | 各入力へキーを付加し、キー付きで出力 |
Transform | 入力とフィーチャの異なり | 変換・前処理で訓練・予測時一貫 |
Repeatable Splitting | ランダムな訓練、検証、テスト用分割では再現困難かつ関係なし | 時間的関係を用いたい変数をハッシュ化し剰余によりデータ分割 |
Bridged Schema | 入力データのスキーマが訓練後に幾らか変更 | 古いデータを確率的な方法で新データスキーマへ変換 |
Windowed Inference | 単独の入力データで推論不十分 | スライディングウィンドウで訓練 |
Workflow Pipeline | 単一ファイルではスケールせず | 各ステップを分けてサービス化 |
Feature Store | アドホックなフィーチャエンジニアリング | プロジェクトやチームを超えたフィーチャ共有 |
Model Versioning | モデル更新時の後方互換性困難 | モデルバージョンを異なるエンドポイント提供、比較 |
Heuristic Benchmark | 結果の良し悪しの程度を意思決定者へ説明困難 | 過去との比較や経験則に基づく決め |
Explainable Predictions | 予測の説明困難 | シンプルなモデル採用、予測結果における説明など |
Fairness Lens | 不均衡データに基づく異なる人々のグループに対する問題のあるバイアス | (What-If toolやFairness Indicatorsなどによる)訓練前のデータセットの分析、均衡化 |
20:15-20:30 質疑、アンケート調査のお願い
注意事項
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。
新規会員登録
このイベントに申し込むには会員登録が必要です。
アカウント登録済みの方はログインしてください。
※ ソーシャルアカウントで登録するとログインが簡単に行えます。
※ 連携したソーシャルアカウントは、会員登録完了後にいつでも変更できます。