ML Opsのススメ
学習済みモデルをWebサービスに組み込む
Norihiko Nakabayashi
何者か?
• ビール好きのオヤジ
• SOMPOホールディングス チーフ・データサイエンティスト
• データサイエンティスト協会 理事
• 筑波大学大学院 客員准教授
• NEDO 技術委員
• 経団連 AI活用戦略TFメンバー
今日の登壇者の方々との関係
ネイティブアプリ
④API呼出①証券画像送信
②AI処理
⑤検出テキスト返却⑦証券データ返却
DNN・GPUサーバ
③AI処理により切り出した画像を返却
エッジAIセンター
⑥結果補正、辞書フォーマット適用
目的は?
• ”ML Ops“を流行らせたい
• Flaskエンジニアを増やしたい
• 日本のGDPを上げたい
学習させてからが始まり
• Webエンジニアをやっていてスキルアップのために機械学習を学んでるけど、Webサービスはどうするの?
• 機械学習やっている人は、この学習済みモデルをサービス化したいと思ったり
• 学習済みモデルをスマホアプリやWebサービスに組み込んで使いたいと考えたり
• 学習済みモデルが出来てからが本当のスタートです
そこで”ML Ops”です
• もちろん造語です
• DevOps → 開発 (Development) と運用 (Operations)組み合わせた造語
• ML Ops → 機械学習(ML)を業務システム(Operation)に組み込んでガンガン回そうよ
• 英語では”DevOps for Machine Learning”や”Machine Learning & DevOps”
• Google 佐藤さんも“ML Ops”押し
• FRONTEO 武田さんも“運用”が重要
幻滅期からがホンモノ
Early expectations for new foundational technology rarely gaps its true potential.
by Benedict Evans - Andreessen Horowitz
The demos The reality
SQL Find customers by ZIP code Just-in-time supply chains
Internet/Web Stock, weather ,news Global information plafrom
Machine Learning Voice and image recognition ”ML Ops”
経団連も推奨してます
「企業のAI-Ready化の進め方」
AI-Ready化ガイドライン
AIの活用、展開を迅速に行うためには、企業、個人、制度といった
あらゆるレイヤーのAI-Ready化が必須
AI-Readyな
AI-Readyな
AI-Readyな
企 業
個 人
制 度
6
トップ人材、中核人材、利用者それぞれをAI-Ready化
教育や研究開発環境の改革、利用者の意識変革を推進
AIの社会産業への展開に、AIの品質と信頼の担保が重要
信頼できる高品質なAIエコシステムとして構築を推進
(Trusted Quality AI)
社 会
基 盤産 業
まずはAIやデータを使いこなせるAI-Readyな企業に変化
すべての事業でAIを活用し、企業、業界を刷新
Ⅲ.ガイドライン
レ
ベ
ル
5
経営・マネジメント層 専門家
 AI×データを理解するCxOが
全社、業界の刷新の中心を担う
 業界全体、他社との連携を推進
すべての事業・企業がAI×データ化し、業界そのものの本質的な刷新(disruption)を仕掛けている。
既存の業務フローのAI×データ化による自動化に目途がつく。戦略的なAI活用も開始する。
AI活用についてスモールスタートで経験を積む。一部の簡易業務のAI化も専門家の力を借りつつ着手開始。
AIの方法論の議論が先行し、AI×データを活用した事業運営・刷新・創造は未着手。
レ
ベ
ル
4
レ
ベ
ル
3
レ
ベ
ル
2
レ
ベ
ル
1
AI×データによって企業価値を向上。コア事業における価値を生むドライバーとしてAIを活用。
 AI×データを理解し事業活用する
人材を経営層に配置
 AI-Readyになるまで投資継続
 経営戦略にAI活用を組み込み
 AIへの投資をコミットメント
 幹部社員へのAI教育を実施
 AIの可能性を理解し方向性を発信
 具体的な戦略化は未着手
 データ・倫理課題は未整理
 AIへの理解がない
 AIが業界や自社の企業経営に
与える影響の認識も不十分
AI-Ready化着手前
AI-Ready化の初期段階
AI-Ready化を進行
AI-Ready化からAI-Powered化へ展開
AI-Powered企業として確立・影響力発揮
 全技術者が領域×AI知識を持つ
 AI×データ活用の技術、研究両面
の最先端の人材、経験を持つ
 AI×データ活用の技術開発、研究
両面で最先端テーマの取組み開始
 相当数のAI分析・実装要員を持つ
 独自のAI開発・事業展開が可能
 少数がAI・データを理解
 外部と協力し、既存技術を適用
 システムは外部委託中心
 IT部門はIT企業とのつなぎ役
従業員
 皆が理数・AI×データ素養を所持
 社内外の専門家と共同で活用
 ミドル層は資本、人脈で貢献
 実務へのAI活用が徹底
 そのための手順やツールも整備
 社員へのAI教育を開始
 一部のAI基礎の理解
 AI×データ素養を持つ社員も存在
 AI人材の採用を開始
 経験、勘、属人的対応が中心
 課題も人員、工数をかけて対応
 理文分離型の採用
システムレベル・データ
 リアル空間も含め全てがデータ化、リアルタイム活用
 協調領域では、個別領域のAI機能、API提供、共通PF化
 競争領域では、独自機能のAI開発、サービス化
 業務フロー、事業モデルがデータ化
 業務系に加え分析系のデータ基盤も整備開始
 領域特性に応じてAI化、RPA適用等を使い分け
 一部業務でAI機能の本格適用を実施
 一部データが分析・活用可能な形で取得可能に
 顧客行動、環境、リアル空間のデータ化は未着手
 レガシーシステムが肥大化
 データの収集、取り出し、統合に年単位の時間が必要
 データの意味や示唆の理解も不十分
 過半が高いAIリテラシーを所持
 データ・倫理課題を整理・遵守
 AI×データによる業務刷新が推進
 業務システムと分析システムがシームレスに連携
 大半の業務データがリアルタイムに近い形で分析可能
ML Ops
”AI-Ready”な企業は必須
• 社長 → 役員:「うちの会社のAI-Ready化レベルは、いくつだ?」
• CIO → システム部長:「コレどうなの?」
• システム部長 → システム企画課長:「知ってる?」
• システム企画課長 → 担当部員:「分かる?」
• 担当部員:「うちはML Opsなので“システム・データ”はレベル4以上ですね。」
• ボソッと:「“経営・マネジメント層”はレベル1以下ですが 笑」
全体アーキテクチャ
• 全てもろもろPythonでやりたいところですが・・・
• Djangoか? → 出来るエンジニアいないし、情報の少ないし・・・
• 主な部分はRailsで、必要な部分をAPIで呼び出すか? → Djangoはtoo much、Flaskにするか
• データストアはMySQLをレプリケーションして
• Deep Learningだと学習は別の場所で → GPU買った方が安いでしょ問題
Flask – 軽量フレームワーク
学習済みモデルの保存
Model persistence(モデルの永続化)
• “sklearn.externals.joblib”のdumpを使う
• サイズは12KB
• ちなみにRNN(512 x 3)で60MBくらい
• これからはONNXなどを使ってモデルがポータブルに
【出典】 scikit-learnとflaskで簡単な機械学習✕Webアプリ [@cvuskさん]
モデルの読み込みと推論
永続化されたモデルの読み込み
• “sklearn.externals.joblib”のloadを使う
【出典】 scikit-learnとflaskで簡単な機械学習✕Webアプリ [@cvuskさん]
Flaskへの実装
関数の定義
• predictIris(params)
• getIrisName(irisId)
サービスの定義
• @app.route('/irisPred', methods=['GET'])
【出典】 scikit-learnとflaskで簡単な機械学習✕Webアプリ [@cvuskさん]
Flask側の本番構成
• Nginx ↔ uWSGI ↔ Python(Flask)
• Nginx → 言わずと知れたWebサーバ
• uWSGI → WSGI(Web Server Gateway Interface)の実装系
• 複数のサービスを混在させる → Blueprintで構造化
稼げるエンジニアになろう!
ビジネス⼒
(business problem
solving)
データ
サイエンス
(data science)
データ
エンジニアリング
(data
engineering)
課題背景を理解した上で、
ビジネス課題を整理し、
解決する⼒
情報処理、⼈⼯知
能、統計学などの
情報科学系の知恵
を理解し、使う⼒
データサイエンスを
意味のある形に使えるよ
うにし、実装、運⽤でき
るようにする⼒
システム
エンジニアリング
(system
engineering)
システムとのデータ連
携、モデルのシステム
への組み込み
ビジネスの経験
ML Ops︕
おわり

ML Opsのススメ