Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI x IoT利活用SaaSにおけるデータ基盤の構築

AI x IoT利活用SaaSにおけるデータ基盤の構築

Hiroyuki Ootaguro

February 17, 2021
Tweet

More Decks by Hiroyuki Ootaguro

Other Decks in Technology

Transcript

  1. AI x IoT利活⽤SaaSにおけるデータ基盤の構築
    ABEJA Inc. Hiroyuki Ootaguro (@xecus)
    https://finatext.connpass.com/event/202265/

    View full-size slide

  2. ⾃⼰紹介
    1994年⽣まれ。千葉県出⾝。
    産業技術⾼専卒業後、⾸都⼤学東京に編⼊学。
    ⾼専在学中は、超⼩型⼈⼯衛星の開発、
    医療機器に関する研究に携わる。
    ⼤学では量⼦効果デバイスに関する研究に従事。
    2015年ABEJAに⼊社、⼩売流通業向け店舗解析サービス
    ABEJA Insight for Retailのサービス⽴ち上げに従事。
    全社の技術戦略を⽴案・実⾏だったり、
    ⼈事(採⽤等)的なところもお⼿伝いしてます
    ⼤⽥黒 紘之
    ABEJA SaaS事業部 @xecus

    View full-size slide

  3. 1. 会社・事業紹介(5分)
    2. データ基盤周りの構成、技術選定話 (9分)
    4. さいごに (< 1分)
    AGENDA

    View full-size slide

  4. Corporate Name
    Headquarters Address
    Representative
    ABEJA.Inc
    the ARGYLE Aoyama 5F(WeWork),
    2-14-4, Kita-Aoyama, Minato-ku,
    Tokyo 107-0061,Japan
    September 10 2012
    Major shareholders
    Employee
    Corporate
    Approx. 80 people
    Archetype Venture Fund, L.P.
    Daikin Industries, Ltd.
    Google International LLC
    Innovation Network Corporation of Japan
    inspire investment Co., Ltd
    Itochu Corporation
    NTT Plala Inc.
    Nvidia Corporation
    Mitsubishi UFJ Capital No. 4 Investment Limited Partnership
    Mizuho Growth Support Investment Limited Partnership
    Musashi Seimitsu Industry Co., Ltd.
    PNB-INSPiRE Ethical Fund 1 Investment Business Limited Liability Partnership
    SAKURA Internet Inc.
    salesforce.com, inc.
    SBI AI & Blockchain LPS (operated by SBI Investment Co., Ltd.)
    TBS Innovation Partners 2 Investment Partnership
    (operated by Tokyo Broadcasting System Holdings, Inc.)
    Topcon Corporation
    Toshiba Tec Corporation

    View full-size slide

  5. ABEJA Insight for Retail
    ・⼩売業向けのAIソリューション(SaaS)
    ・徹底的にリアル店舗をデータ化し、⼩売経営
    をもっとデータドリブンにする事で新たな⼩売
    流通業の形の創造=⼩売業のDXを実現するプロ
    ダクト
    ・⼀⾔でいうと、オフライン世界における
    GoogleAnalytics

    View full-size slide

  6. Copyright © 2018 ABEJA, Inc. All rights reserved.

    View full-size slide

  7. Copyright © 2018 ABEJA, Inc. All rights reserved.

    View full-size slide

  8. 店舗KPI例
    ళฮӡӦͷKPIʹͳΔσʔλΛIoT x AIͰऔಘɾ෼ੳ͠ɺݟ͑ΔԽ

    View full-size slide

  9. 使⽤しているデバイス例
    IPカメラ
    TOFカメラ
    POS
    その他
    IoTデバイス

    View full-size slide

  10. サービス特徴
    ⭐ 数千台のIoTデバイス(カメラ、ビーコン、その他)が現地で稼働中
    ⭐ ディープラーニングを活⽤し1⽇数⼗TBの映像解析を実施
    クラウドとエッジの両⽅を活⽤。⾃社開発モデル及びパイプラインによる⽐較的低
    コストな映像解析技術を確⽴。
    ⭐ 多種多様なデータをJOIN&集計&機械学習の適⽤可能なデータ基盤がある
    (現状、AWSベースで構築、中⻑期的にGCP側にシフト予定)

    View full-size slide

  11. サービス実績
    ⭐ サービス開始よりで約4億⼈(PV)の⼊店客をシステムが認識
    ⭐ 2015年より提供を開始。5年間で140社840店舗以上のユーザー様が利⽤。
    ⭐「⼩売・卸売AI市場」と「マーケティングAI市場」でシェア1位に
    (2019年 ミック経済研究所調べ)

    View full-size slide

  12. https://www.nikkei.com/article/DGXMZO56747720T10C20A3000000/

    View full-size slide

  13. サービスのシステム構成
    ϏδωεʹΠϯύΫτ͢Δҙࢥܾఆ͕Ͱ͖ΔσʔλՄࢹԽ
    ϏδωεʹΠϯύΫτ͢Δσʔλ෼ੳ݁ՌΛग़ྗ͢Δػೳ܈
    ߦಈऀɾళฮͷ͋ΒΏΔσʔλԽͱอ࣋ɾݕࡧͰ͖Δػೳ܈
    ϦΞϧੈքͷσʔλΛऩूɾՃ޻͢ΔIoTσόΠεɾγεςϜ܈
    Dashboard
    Analyzer
    Data
    Device
    例:店舗KPIの可視化UI
    例:店舗KPI出⼒⽤のETL基盤、 機械学習基盤
    例:顔認証、顔画像解析エンジン、特徴量データベース
    例:RGB,ToFカメラ、ビーコン、POS

    View full-size slide

  14. データ基盤の役割
    適正な⽬標設定や施策⽀援の為の
    データ出⼒
    (データドリブンな経営⽀援)
    IoT・AI・外部システム連携を
    利活⽤した主要店舗KPIの計算
    (店舗のデジタル化)
    IoTやAIを⽤いたリアル世界のデータ化と
    SQLの集計関数を⽤いた各種KPIの算出
    ≒ 体重計的機能の提供
    機械学習(分類・予測)を利⽤し、デー
    タドリブン経営(PDCA)に必要なデータ
    を出⼒する ≒ ライザップ的機能
    データドリブンな⼩売経営を実現する為のバックエンド

    View full-size slide

  15. サービス構成要素
    Video
    Analyzer
    Camera
    (RGB)
    IoTDevic
    e
    (PeopleC
    ounter)
    POS
    (VenderA
    IoT
    Gateway ETL
    &
    ML
    Engine
    POS
    (VenderB
    Camera
    (ToF)
    特徴量DB
    (ベクトル検索
    エンジン)
    ⼊店退店イベント
    ・店舗内⾏動
    売上トラン
    ザクション
    店舗
    主要KPI
    PoS
    Gateway
    各業界
    ベンチマーク
    Datalake
    Dataware
    House
    DWH
    分析環境
    Datamart
    適正⽬標
    設定値
    Pre ETL
    Pre ETL

    View full-size slide

  16. Video Analyzer
    Datalake
    (Video)
    ⼊店、退店イベント
    With PersonID
    Camera
    (RGB)
    特徴量DB
    Recorder
    ML Model
    (FaceDetection)
    Frame
    (15FPS)
    Chunk
    (5min)
    Streaming
    Bulk
    ML Model
    (ObjectTracker)
    ML Model
    (FeatureExtractor)
    ML Model
    (FaceQualityChecker)
    映像解析マイクロサービス群
    (On ABEJA Platform)
    顔特徴量(⾼次元ベクトル)
    をストア&検索可能にするDB
    PersonID XXXさんが
    店舗Aに⼊店

    View full-size slide

  17. IoT Gateway (+ Pre ETL)
    例)PeopleCounterAは、XXXというシリアル番号を持っていて、XML形式でXXというカラムに⼊店数を送信してくる
    ので、いい感じに内部フォーマットに変換する
    ※装置のシリアル番号と設置店舗のマッピングは別途存在
    IoT
    Gateway
    + Pre ETL ⼊店、退店イベント
    IoTDevice
    (People
    CounterA)
    IoTDevice
    (BLE Beacon)
    認証認可

    View full-size slide

  18. POS Gateway (+ Pre ETL)
    Case 1: A社POSレジはShiftJISで売上をCSV形式でXXXというカラムで消費税込みでデータを送ってくる。
    また設置店舗を識別するのは、先⽅が送ってくるPOSマスターを別途参照する必要性がある。
    POS
    (VenderA
    POS
    (VenderB
    PoS
    Gateway
    + Pre ETL 売上トランザクション
    (内部フォーマット)
    Case 2: B社POSレジはUTF-8で売上をJSON形式でXXXというカラムで税抜でデータを送ってくる。
    認証認可

    View full-size slide

  19. データ基盤を作る上でのツラミ①
    ⭐ IoTσόΠεͷNWো֐ɺෛՙʹىҼͨ͠ө૾ղੳͷ஗Ԇɺސ٬POSγεςϜͷෆ
    ۩߹ʹΑΓɺσʔλ࿈ܞ͕ී௨ʹ஗ΕΔࣄ͕͋Δ
    →ɹ஗ԆσʔλΛߟྀͨ͠࠶ूܭɾႈ౳ੑ୲อͷ࢓૊Έ։ൃ͕ඞཁ
    → σʔλసૹΛৗʹ؂ࢹ͢Δ࢓૊Έͷ։ൃ΋ผ్͍Δʢӡ༻؍఺ʣ
    %BUB UT5B

    ࣌ؒͷྲྀΕ
    *P5σόΠε
    ө૾ղੳίΞ
    5B 5C
    ωοτϫʔΫো֐
    0Sղੳ஗Ԇো֐

    5D
    %BUB UT5D

    5E
    %BUB UT5E

    5BЋ 5CЋ 5DЋ
    %BUB UT5C

    5EЋ

    View full-size slide

  20. データ基盤を作る上でのツラミ②
    ⭐ IoTηϯαʔ΍ސ٬POS͕ૹ৴͢Δσʔλ͸ɺৗʹٙ͏࢟੎
    Τοδέʔεྫʣ/8ো֐౳ʹΑΔ/51ࣦഊ΍35$ͷόοςϦʔ͕ඈΜͰΔͱɺྫ͑
    ͹੢ྐྵ4370೥͙Β͍͔ΒσʔλདྷͨΓ΋͢ΔɻσόΠε'8ͷ໰୊ͷࣄ΋͋Δɻ
    異常な値がそもそも⼊ってこない&出⼒しようとするとアラートするような仕組み等⼤事

    View full-size slide

  21. データ基盤を作る上でのツラミ③
    ⭐ɹ৿ཏສ৅ͷσʔλमਖ਼ܥΦϖϨʔγϣϯΛ૝ఆͨ͠ઃܭ͕ඞཁ
    σʔλϚʔτͷϨίʔυΛमਖ਼͢ΔͷͰ͸ͳ͘ɺमਖ਼Λલఏͱͨ͠ूܭύΠϓϥΠ
    ϯͷઃܭ͕ඞཁɻʢσʔλϚʔτͷσʔλΛ௚मਖ਼ͨ͠Βɺ࠶ूܭͰ্ॻ͖͞Εͯ
    ͠·͏ҝʣ
    γφϦΦ"ɿ IoTσόΠεͷFWόάʹΑΓσʔλ͕ଟॏૹ৴͞Ε͍ͯͨ
    γφϦΦ#ɿ ͏͔ͬΓ੫཰ؒҧ͑ͨ104σʔλૹͬͪΌͬͨ

    View full-size slide

  22. サービス構成要素
    Video
    Analyzer
    Camera
    (RGB)
    IoTDevic
    e
    (PeopleC
    ounter)
    POS
    (VenderA
    IoT
    Gateway ETL
    &
    ML
    Engine
    POS
    (VenderB
    Camera
    (ToF)
    特徴量DB
    (ベクトル検索
    エンジン)
    ⼊店退店イベント
    ・店舗内⾏動
    売上トラン
    ザクション
    店舗
    主要KPI
    PoS
    Gateway
    各業界
    ベンチマーク
    Datalake
    Dataware
    House
    DWH
    分析環境
    Datamart
    適正⽬標
    設定値
    Pre ETL
    Pre ETL

    View full-size slide

  23. ETL & ML Engine: 役割分解
    ⭐ IoTɾAIɾ֎෦γεςϜ࿈ܞΛར׆༻ͨ͠ओཁళฮKPIͷܭࢉ
    ɾσʔλൃੜλΠϛϯά΋σʔλܗࣜ΋ϑΥʔϚοτ΋ҟͳΔෳ਺ͷσʔλιʔε
    Λ͕ͬͪΌΜ͜͢Δඞཁੑ͕͋Δ
    ɾੜσʔλ͔ΒଟஈͷूܭϩδοΫΛॱ൪ʹ࣮ߦ͠ɺ࢖͑Δσʔλʹม׵͍ͯ͘͠
    ⭐ దਖ਼ͳ໨ඪઃఆ΍ࢪࡦࢧԉͷҝͷσʔλग़ྗ
    ɾߪങঢ়گɾೖళঢ়گ͔ΒػցֶशΛ༻͍ͨళฮΫϥελϦϯάɺΫϥελϦϯάຖ
    ͷฏۉKPI͔Βళฮͷ৳ͼ͠ΖΛࣗಈܭࢉʢ໨ඪࣗಈਪఆʣ౳
    ɾ ্هͷओཁKPIΛΨοπϦͱ࢖͍ɺσʔλ׆༻ࢧԉʹͭͳ͕Δ৘ใΛग़ྗ

    View full-size slide

  24. ETL & ML Engineの分解
    σʔλ
    औΓࠐ
    Έ෦
    Datalake Datamart
    特徴量DB
    (ベクトル検索
    エンジン)
    ⼊店退店イベント
    ・店舗内⾏動
    売上トラン
    ザクション
    店舗
    主要KPI
    各業界
    ベンチマーク
    適正⽬標
    設定値
    DWH
    (෼ੳ؀ڥ)
    JOB
    ੍ޚ෦
    ूܭJOB
    ML
    Logic
    ML
    Logic
    ML
    Logic
    ूܭJOB
    ूܭJOB

    View full-size slide

  25. ETL & ML Engine: 技術選定 (DWH & Datamart)
    ⭐ BigQuery (⾔わずとしれたGoogleの虎の⼦)
    ɾコスパの良いビッグデータ分析を実現
    ɾ⼀旦おまかせしておけば、スケール⾯は問題なさそう。
    ただし、使いすぎてお⾦を溶かしすぎないように要注意。ABEJAでは、flat rate契約
    をしているので、ある程度使い放題になっている。
    ⭐ CloudSQL
    ɾAPIのアプリケーション・サーバーの結合を想定
    ɾレイテンシ重視でCloudSQL with Postgresを採⽤

    View full-size slide

  26. ETL & ML Engine: 技術選定 (Pipeline)
    ⭐ CloudComposer (雰囲気はマネージドAirflow)
    ・多種多様な動作・頻度を持つ、相互依存性の⾼い集計JOBの起動を管理したい
    ・特定のJOBの再実⾏等をチームでやりやすいようにしたい (チームで運⽤)
    ・ある程度運⽤レスなDAG管理・実⾏エンジンがほしかったので採⽤した
    ⭐ Dataflow ( 雰囲気はマネージドApache Beam実⾏基盤 ) x Scio (Scala Wrapper)
    ・複数SRC(Datalake)と複数DST(Datamart)のデータ⼊出⼒をエレガントに書きたい
    ・PythonSDKよりJavaSDKの⽅が固くて安定と聞いたので、Scalaを選択した

    View full-size slide

  27. ETL & ML Engine: 技術選定 (Pipeline)
    ⭐ Kedro  (機械学習パイプライン)
    ・機械学習エコシステム(Python, Pandas,その他ライブラリ周り)との相性が良し
    ・S3やGCS、SQL、Spark等のリソースをDataSetクラスで抽象的に扱えていい感じ
    最初、Docker化したMLロジックをPodOperator経由でComposerから起動していた
    が、コアロジック以外の部分が多めになってきて疲弊→Kedroにシフト
    ・ただ、Kedro⾃体はパイプラインツールとしての運⽤機能が薄めなので
    Composerから呼び出すようにしている

    View full-size slide

  28. Dataflow (Streamer)
    DatalakeのデータをDWHである
    BQに随時格納
    BigQuery (DWH)
    データ層・分析環境層
    Pre ETL
    特徴量DB
    (ベクトル検索
    エンジン)
    ⼊店退店イベント
    ・店舗内⾏動
    売上トラン
    ザクション
    raw_pos_xxxx
    raw_visitor_xxxx
    raw_iot_xxxx
    Pubsub Topic
    Datalake上のオブジェクトの
    登録イベントを管理
    ETL & ML Engine(データ取り込み部)
    サービス層

    View full-size slide

  29. CloudComposer (Airflow)
    集計JOBの起動や
    依存性管理(DAG)
    ※全ての司令塔
    Dataflow (Job)
    Bigquery上のデータを集計し
    GCSやCloudSQLに出⼒するJOB
    CloudSQL (Datamart)
    BigQuery (DWH)
    CloudStorage (ArtifactStore)
    Kedro Job
    役割: 機械学習ベースのアルゴリズムを適⽤し
    ⽬標設定・施策⽀援⽤情報を出⼒
    データ層・分析環境層
    ETL & ML Engine(データ集計・機械学習連携部)
    ⽣成物の
    保存
    集計結果の格納

    View full-size slide

  30. CloudSQL (Datamart)
    BigQuery (DWH)
    CloudStorage (ArtifactStore)
    API Server
    フロントエンドへのデータ供給⽤
    (Go x Gin)
    データ層・分析環境層
    プレゼンテーション層
    ETL & ML Engine(データーマート関連)
    クライアント層
    (顧客側)
    顧客側
    分析基幹システム

    View full-size slide

  31. さいごに
    ⭐ 本⽇は、Insight for retailにおけるデータ基盤周りの構成や取り組みについて
    ご説明させて頂きました!!
    ⭐ ABEJA=AIの会社というイメージはありますが、データエンジニア含むたくさん
    のエンジニアを募集しておりますので、ご興味があればぜひご覧ください。
    → 本当にお気軽にご連絡頂いてOKです!!!!
    https://hrmos.co/pages/abeja/jobs

    View full-size slide

  32. https://hrmos.co/pages/abeja/jobs/11797367

    View full-size slide