©2021 Yahoo Japan Corporation All rights reserved.
import CoreML
そろそろ Core ML を使いませんか︖
ヤフー株式会社 CTO室アプリ統括部iOSアプリWG
⼤⻄智也
©2021 Yahoo Japan Corporation All rights reserved.
近年のWWDCでは
ARKit・Metal・Core ML の発表が多いですが、
業務に直接関係ないからといって、
スルーしがちではありませんか︖
2
©2021 Yahoo Japan Corporation All rights reserved.
今後の発表を少しでも有意義に⾒れるように、
Core ML の全体像をお伝えします
3
©2021 Yahoo Japan Corporation All rights reserved.
⼤⻄智也
iOSエンジニア
ヤフー株式会社 CTO室 アプリ統括部 iOSアプリWG
Yahoo!メール → ヤフオク! → PayPayフリマ → 現在
ObjC, Swift, Python, Typescript, React.js, Firebase, GCP
https://github.com/TomoyaOnishi
⾃⼰紹介
4
©2021 Yahoo Japan Corporation All rights reserved.
• CoreMLの⽴ち位置
• よく聞くワードとの関係性
• TensorFlow、scikit-learn、Create ML ...
• CoreMLを使う場合、どういう流れになるのか
話すこと
5
アプリエンジニアの⽬線で話すので厳密には不正確な部分も含まれます 💦
©2021 Yahoo Japan Corporation All rights reserved.
Appleデバイス上で機械学習モデルを動かすためのframework
• CoreML 単体で何かが動くわけではない
• import CoreML すればオブジェクト認識できるわけではない
• 機械学習モデルが必要
• HogeModel.mlmodel
CoreMLとは
6
©2021 Yahoo Japan Corporation All rights reserved.
.mlmodel
7
©2021 Yahoo Japan Corporation All rights reserved.
モデル︖
8
𝑖𝑛𝑝𝑢𝑡
𝑜𝑢𝑡𝑝𝑢𝑡
𝑓(𝑥)
(𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛)
©2021 Yahoo Japan Corporation All rights reserved.
画像分類モデル
9
𝒅𝒐𝒈: 𝟎. 𝟗𝟕
𝑓(𝑥)
𝑜𝑡ℎ𝑒𝑟: 0.01
𝑐𝑎𝑡: 0.02
©2021 Yahoo Japan Corporation All rights reserved.
住宅の価格推定モデル
10
83,000𝑦𝑒𝑛
𝑓(𝑥)
住所 駅からの距離 築年数
TOKYO 1.2km 12
©2021 Yahoo Japan Corporation All rights reserved.
商品レコメンドモデル
11
𝑓(𝑥)
閲覧した商品ID
おすすめの商品
©2021 Yahoo Japan Corporation All rights reserved.
商品レコメンドモデル
12
𝑓(𝑥)
閲覧した商品ID
おすすめの商品
inputをモデルに渡すためのメソッド
©2021 Yahoo Japan Corporation All rights reserved.
商品レコメンドモデル
13
𝑓(𝑥)
閲覧した商品ID
おすすめの商品
モデルを動かし推論結果を取得するメソッド
©2021 Yahoo Japan Corporation All rights reserved.
商品レコメンドモデル
14
𝑓(𝑥)
閲覧した商品ID
おすすめの商品
Core ML は機械学習モデルを動かすためのインターフェース
©2021 Yahoo Japan Corporation All rights reserved.
コードのサンプルです
let itemID = "item_id_1"
let input = MyModelInput(input: try! MLMultiArray([itemID]))
let model = try! MyModel(contentsOf: modelURL)
let prediction = try! model.prediction(input: input)
print(prediction) // item_id_5 item_id_7,
©2021 Yahoo Japan Corporation All rights reserved.
イメージで掴む Core ML
16
UIImage Core ML
dog.jpg
※イメージです
©2021 Yahoo Japan Corporation All rights reserved.
じゃあモデルはどうするの︖
17
2. テンプレートから作る
1. 公開されているモデルを使う
3. イチから⾃分で作る
簡単
難しい
©2021 Yahoo Japan Corporation All rights reserved.
公開されているモデルを使う
18
https://developer.apple.com/jp/machine-learning/models/
• 学習データ不要
• 機械学習の知識不要
• 応⽤⼒は低い
©2021 Yahoo Japan Corporation All rights reserved.
• Xcodeに同梱
• GUI
• 学習データ必要
• 機械学習の知識はほぼ不要
• テンプレートにあるものだけ
テンプレートから作る
19
Create ML
©2021 Yahoo Japan Corporation All rights reserved.
Create ML
©2021 Yahoo Japan Corporation All rights reserved.
Create ML
©2021 Yahoo Japan Corporation All rights reserved.
• 学習データ
• 機械学習の知識
• モデルを作成するためのライブラリ(Python)
• Turi Create
• TensorFlow, scikit-learn, Keras...
• モデルのオンデバイス学習(パーソナライズ)
• ニューラルネットワークレイヤーの最後の⼆層⽬を更新する
⾃分で作る
22
©2021 Yahoo Japan Corporation All rights reserved.
⾃分で作る
23
• 回帰(regression) or 分類(classification)or ??
• 学習データ
• 前処理
• 特徴ベクトル
• Neural Network, Tree, KNN ...
• 協調フィルタリング、tf-idf、形態素解析、 ...
• 類似度(Jaccard、Cosine, ... )
• 精度
• ...
©2021 Yahoo Japan Corporation All rights reserved.
Keras で ニューラルネットワーク を作ると...
24
©2021 Yahoo Japan Corporation All rights reserved.
むずかしい
25
Create ML がすごい
©2021 Yahoo Japan Corporation All rights reserved.
Core ML Tools
26
TensorFlowなどで作ったモデルをmlmodelに変換するツール
https://coremltools.readme.io/docs/what-are-coreml-tools
©2021 Yahoo Japan Corporation All rights reserved.
ワードの整理
27
モデルを作る
Turi Create
TensorFlow
Keras
scikit-learn
PyTorch
Create ML
©2021 Yahoo Japan Corporation All rights reserved.
ワードの整理
28
モデルを作る
Turi Create
TensorFlow
Keras
scikit-learn
PyTorch
Create ML
Core ML
モデルを使う
©2021 Yahoo Japan Corporation All rights reserved.
ワードの整理
29
モデルを作る
Turi Create
TensorFlow
Keras
scikit-learn
PyTorch
Create ML
Core ML
モデルを使う
©2021 Yahoo Japan Corporation All rights reserved.
ワードの整理
30
モデルを作る
Core ML Tools
Turi Create
TensorFlow
Keras
scikit-learn
PyTorch
Create ML
Core ML
モデルを変換する
モデルを使う
©2021 Yahoo Japan Corporation All rights reserved.
ワードの整理
31
モデルを作る
Core ML Tools
Turi Create
TensorFlow
Keras
scikit-learn
PyTorch
Create ML
Core ML
モデルを変換する
モデルを使う
制約はあるが再学習も可能
©2021 Yahoo Japan Corporation All rights reserved.
サーバ vs Core ML
• サーバレス
• よりリアルタイム
• オフライン
• 個⼈情報
Core ML を使⽤するメリット
32
©2021 Yahoo Japan Corporation All rights reserved.
• Create ML で⾃分専⽤のモデルを作ってみると親近感が湧く
Image Classification, Recommendation がおすすめ
• Natural Language framework, Vision framework
• Create ML の進化に注⽬
オンデバイス学習への対応に期待
終わりに
33
©2021 Yahoo Japan Corporation All rights reserved.
Enjoy WWDC21.
34

Wwdc extended21 tomonish

  • 1.
    ©2021 Yahoo JapanCorporation All rights reserved. import CoreML そろそろ Core ML を使いませんか︖ ヤフー株式会社 CTO室アプリ統括部iOSアプリWG ⼤⻄智也
  • 2.
    ©2021 Yahoo JapanCorporation All rights reserved. 近年のWWDCでは ARKit・Metal・Core ML の発表が多いですが、 業務に直接関係ないからといって、 スルーしがちではありませんか︖ 2
  • 3.
    ©2021 Yahoo JapanCorporation All rights reserved. 今後の発表を少しでも有意義に⾒れるように、 Core ML の全体像をお伝えします 3
  • 4.
    ©2021 Yahoo JapanCorporation All rights reserved. ⼤⻄智也 iOSエンジニア ヤフー株式会社 CTO室 アプリ統括部 iOSアプリWG Yahoo!メール → ヤフオク! → PayPayフリマ → 現在 ObjC, Swift, Python, Typescript, React.js, Firebase, GCP https://github.com/TomoyaOnishi ⾃⼰紹介 4
  • 5.
    ©2021 Yahoo JapanCorporation All rights reserved. • CoreMLの⽴ち位置 • よく聞くワードとの関係性 • TensorFlow、scikit-learn、Create ML ... • CoreMLを使う場合、どういう流れになるのか 話すこと 5 アプリエンジニアの⽬線で話すので厳密には不正確な部分も含まれます 💦
  • 6.
    ©2021 Yahoo JapanCorporation All rights reserved. Appleデバイス上で機械学習モデルを動かすためのframework • CoreML 単体で何かが動くわけではない • import CoreML すればオブジェクト認識できるわけではない • 機械学習モデルが必要 • HogeModel.mlmodel CoreMLとは 6
  • 7.
    ©2021 Yahoo JapanCorporation All rights reserved. .mlmodel 7
  • 8.
    ©2021 Yahoo JapanCorporation All rights reserved. モデル︖ 8 𝑖𝑛𝑝𝑢𝑡 𝑜𝑢𝑡𝑝𝑢𝑡 𝑓(𝑥) (𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛)
  • 9.
    ©2021 Yahoo JapanCorporation All rights reserved. 画像分類モデル 9 𝒅𝒐𝒈: 𝟎. 𝟗𝟕 𝑓(𝑥) 𝑜𝑡ℎ𝑒𝑟: 0.01 𝑐𝑎𝑡: 0.02
  • 10.
    ©2021 Yahoo JapanCorporation All rights reserved. 住宅の価格推定モデル 10 83,000𝑦𝑒𝑛 𝑓(𝑥) 住所 駅からの距離 築年数 TOKYO 1.2km 12
  • 11.
    ©2021 Yahoo JapanCorporation All rights reserved. 商品レコメンドモデル 11 𝑓(𝑥) 閲覧した商品ID おすすめの商品
  • 12.
    ©2021 Yahoo JapanCorporation All rights reserved. 商品レコメンドモデル 12 𝑓(𝑥) 閲覧した商品ID おすすめの商品 inputをモデルに渡すためのメソッド
  • 13.
    ©2021 Yahoo JapanCorporation All rights reserved. 商品レコメンドモデル 13 𝑓(𝑥) 閲覧した商品ID おすすめの商品 モデルを動かし推論結果を取得するメソッド
  • 14.
    ©2021 Yahoo JapanCorporation All rights reserved. 商品レコメンドモデル 14 𝑓(𝑥) 閲覧した商品ID おすすめの商品 Core ML は機械学習モデルを動かすためのインターフェース
  • 15.
    ©2021 Yahoo JapanCorporation All rights reserved. コードのサンプルです let itemID = "item_id_1" let input = MyModelInput(input: try! MLMultiArray([itemID])) let model = try! MyModel(contentsOf: modelURL) let prediction = try! model.prediction(input: input) print(prediction) // item_id_5 item_id_7,
  • 16.
    ©2021 Yahoo JapanCorporation All rights reserved. イメージで掴む Core ML 16 UIImage Core ML dog.jpg ※イメージです
  • 17.
    ©2021 Yahoo JapanCorporation All rights reserved. じゃあモデルはどうするの︖ 17 2. テンプレートから作る 1. 公開されているモデルを使う 3. イチから⾃分で作る 簡単 難しい
  • 18.
    ©2021 Yahoo JapanCorporation All rights reserved. 公開されているモデルを使う 18 https://developer.apple.com/jp/machine-learning/models/ • 学習データ不要 • 機械学習の知識不要 • 応⽤⼒は低い
  • 19.
    ©2021 Yahoo JapanCorporation All rights reserved. • Xcodeに同梱 • GUI • 学習データ必要 • 機械学習の知識はほぼ不要 • テンプレートにあるものだけ テンプレートから作る 19 Create ML
  • 20.
    ©2021 Yahoo JapanCorporation All rights reserved. Create ML
  • 21.
    ©2021 Yahoo JapanCorporation All rights reserved. Create ML
  • 22.
    ©2021 Yahoo JapanCorporation All rights reserved. • 学習データ • 機械学習の知識 • モデルを作成するためのライブラリ(Python) • Turi Create • TensorFlow, scikit-learn, Keras... • モデルのオンデバイス学習(パーソナライズ) • ニューラルネットワークレイヤーの最後の⼆層⽬を更新する ⾃分で作る 22
  • 23.
    ©2021 Yahoo JapanCorporation All rights reserved. ⾃分で作る 23 • 回帰(regression) or 分類(classification)or ?? • 学習データ • 前処理 • 特徴ベクトル • Neural Network, Tree, KNN ... • 協調フィルタリング、tf-idf、形態素解析、 ... • 類似度(Jaccard、Cosine, ... ) • 精度 • ...
  • 24.
    ©2021 Yahoo JapanCorporation All rights reserved. Keras で ニューラルネットワーク を作ると... 24
  • 25.
    ©2021 Yahoo JapanCorporation All rights reserved. むずかしい 25 Create ML がすごい
  • 26.
    ©2021 Yahoo JapanCorporation All rights reserved. Core ML Tools 26 TensorFlowなどで作ったモデルをmlmodelに変換するツール https://coremltools.readme.io/docs/what-are-coreml-tools
  • 27.
    ©2021 Yahoo JapanCorporation All rights reserved. ワードの整理 27 モデルを作る Turi Create TensorFlow Keras scikit-learn PyTorch Create ML
  • 28.
    ©2021 Yahoo JapanCorporation All rights reserved. ワードの整理 28 モデルを作る Turi Create TensorFlow Keras scikit-learn PyTorch Create ML Core ML モデルを使う
  • 29.
    ©2021 Yahoo JapanCorporation All rights reserved. ワードの整理 29 モデルを作る Turi Create TensorFlow Keras scikit-learn PyTorch Create ML Core ML モデルを使う
  • 30.
    ©2021 Yahoo JapanCorporation All rights reserved. ワードの整理 30 モデルを作る Core ML Tools Turi Create TensorFlow Keras scikit-learn PyTorch Create ML Core ML モデルを変換する モデルを使う
  • 31.
    ©2021 Yahoo JapanCorporation All rights reserved. ワードの整理 31 モデルを作る Core ML Tools Turi Create TensorFlow Keras scikit-learn PyTorch Create ML Core ML モデルを変換する モデルを使う 制約はあるが再学習も可能
  • 32.
    ©2021 Yahoo JapanCorporation All rights reserved. サーバ vs Core ML • サーバレス • よりリアルタイム • オフライン • 個⼈情報 Core ML を使⽤するメリット 32
  • 33.
    ©2021 Yahoo JapanCorporation All rights reserved. • Create ML で⾃分専⽤のモデルを作ってみると親近感が湧く Image Classification, Recommendation がおすすめ • Natural Language framework, Vision framework • Create ML の進化に注⽬ オンデバイス学習への対応に期待 終わりに 33
  • 34.
    ©2021 Yahoo JapanCorporation All rights reserved. Enjoy WWDC21. 34