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

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

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

A85883525b7d876db1a1a6bf200e9e88?s=128

Hiroyuki Ootaguro

February 17, 2021
Tweet

Transcript

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

  2. ⾃⼰紹介 1994年⽣まれ。千葉県出⾝。 産業技術⾼専卒業後、⾸都⼤学東京に編⼊学。 ⾼専在学中は、超⼩型⼈⼯衛星の開発、 医療機器に関する研究に携わる。 ⼤学では量⼦効果デバイスに関する研究に従事。 2015年ABEJAに⼊社、⼩売流通業向け店舗解析サービス ABEJA Insight for

    Retailのサービス⽴ち上げに従事。 全社の技術戦略を⽴案・実⾏だったり、 ⼈事(採⽤等)的なところもお⼿伝いしてます ⼤⽥黒 紘之 ABEJA SaaS事業部 @xecus
  3. 1. 会社・事業紹介(5分) 2. データ基盤周りの構成、技術選定話 (9分) 4. さいごに (< 1分) AGENDA

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

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

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

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

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

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

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

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

  14. サービスのシステム構成 ϏδωεʹΠϯύΫτ͢Δҙࢥܾఆ͕Ͱ͖ΔσʔλՄࢹԽ ϏδωεʹΠϯύΫτ͢Δσʔλ෼ੳ݁ՌΛग़ྗ͢Δػೳ܈ ߦಈऀɾళฮͷ͋ΒΏΔσʔλԽͱอ࣋ɾݕࡧͰ͖Δػೳ܈ ϦΞϧੈքͷσʔλΛऩूɾՃ޻͢ΔIoTσόΠεɾγεςϜ܈ Dashboard Analyzer Data Device 例:店舗KPIの可視化UI

    例:店舗KPI出⼒⽤のETL基盤、 機械学習基盤 例:顔認証、顔画像解析エンジン、特徴量データベース 例:RGB,ToFカメラ、ビーコン、POS
  15. データ基盤の役割 適正な⽬標設定や施策⽀援の為の データ出⼒ (データドリブンな経営⽀援) IoT・AI・外部システム連携を 利活⽤した主要店舗KPIの計算 (店舗のデジタル化) IoTやAIを⽤いたリアル世界のデータ化と SQLの集計関数を⽤いた各種KPIの算出 ≒ 体重計的機能の提供

    機械学習(分類・予測)を利⽤し、デー タドリブン経営(PDCA)に必要なデータ を出⼒する ≒ ライザップ的機能 データドリブンな⼩売経営を実現する為のバックエンド
  16. サービス構成要素 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
  17. 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に⼊店
  18. IoT Gateway (+ Pre ETL) 例)PeopleCounterAは、XXXというシリアル番号を持っていて、XML形式でXXというカラムに⼊店数を送信してくる ので、いい感じに内部フォーマットに変換する ※装置のシリアル番号と設置店舗のマッピングは別途存在 IoT Gateway

    + Pre ETL ⼊店、退店イベント IoTDevice (People CounterA) IoTDevice (BLE Beacon) 認証認可
  19. 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というカラムで税抜でデータを送ってくる。 認証認可
  20. データ基盤を作る上でのツラミ① ⭐ IoTσόΠεͷNWো֐ɺෛՙʹىҼͨ͠ө૾ղੳͷ஗Ԇɺސ٬POSγεςϜͷෆ ۩߹ʹΑΓɺσʔλ࿈ܞ͕ී௨ʹ஗ΕΔࣄ͕͋Δ →ɹ஗ԆσʔλΛߟྀͨ͠࠶ूܭɾႈ౳ੑ୲อͷ࢓૊Έ։ൃ͕ඞཁ → σʔλసૹΛৗʹ؂ࢹ͢Δ࢓૊Έͷ։ൃ΋ผ్͍Δʢӡ༻؍఺ʣ %BUB UT5B ࣌ؒͷྲྀΕ

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

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

  23. サービス構成要素 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
  24. ETL & ML Engine: 役割分解 ⭐ IoTɾAIɾ֎෦γεςϜ࿈ܞΛར׆༻ͨ͠ओཁళฮKPIͷܭࢉ ɾσʔλൃੜλΠϛϯά΋σʔλܗࣜ΋ϑΥʔϚοτ΋ҟͳΔෳ਺ͷσʔλιʔε Λ͕ͬͪΌΜ͜͢Δඞཁੑ͕͋Δ ɾੜσʔλ͔ΒଟஈͷूܭϩδοΫΛॱ൪ʹ࣮ߦ͠ɺ࢖͑Δσʔλʹม׵͍ͯ͘͠

    ⭐ దਖ਼ͳ໨ඪઃఆ΍ࢪࡦࢧԉͷҝͷσʔλग़ྗ ɾߪങঢ়گɾೖళঢ়گ͔ΒػցֶशΛ༻͍ͨళฮΫϥελϦϯάɺΫϥελϦϯάຖ ͷฏۉKPI͔Βళฮͷ৳ͼ͠ΖΛࣗಈܭࢉʢ໨ඪࣗಈਪఆʣ౳ ɾ ্هͷओཁKPIΛΨοπϦͱ࢖͍ɺσʔλ׆༻ࢧԉʹͭͳ͕Δ৘ใΛग़ྗ
  25. ETL & ML Engineの分解 σʔλ औΓࠐ Έ෦ Datalake Datamart 特徴量DB

    (ベクトル検索 エンジン) ⼊店退店イベント ・店舗内⾏動 売上トラン ザクション 店舗 主要KPI 各業界 ベンチマーク 適正⽬標 設定値 DWH (෼ੳ؀ڥ) JOB ੍ޚ෦ ूܭJOB ML Logic ML Logic ML Logic ूܭJOB ूܭJOB
  26. ETL & ML Engine: 技術選定 (DWH & Datamart) ⭐ BigQuery (⾔わずとしれたGoogleの虎の⼦)

    ɾコスパの良いビッグデータ分析を実現 ɾ⼀旦おまかせしておけば、スケール⾯は問題なさそう。 ただし、使いすぎてお⾦を溶かしすぎないように要注意。ABEJAでは、flat rate契約 をしているので、ある程度使い放題になっている。 ⭐ CloudSQL ɾAPIのアプリケーション・サーバーの結合を想定 ɾレイテンシ重視でCloudSQL with Postgresを採⽤
  27. ETL & ML Engine: 技術選定 (Pipeline) ⭐ CloudComposer (雰囲気はマネージドAirflow) ・多種多様な動作・頻度を持つ、相互依存性の⾼い集計JOBの起動を管理したい ・特定のJOBの再実⾏等をチームでやりやすいようにしたい

    (チームで運⽤) ・ある程度運⽤レスなDAG管理・実⾏エンジンがほしかったので採⽤した ⭐ Dataflow ( 雰囲気はマネージドApache Beam実⾏基盤 ) x Scio (Scala Wrapper) ・複数SRC(Datalake)と複数DST(Datamart)のデータ⼊出⼒をエレガントに書きたい ・PythonSDKよりJavaSDKの⽅が固くて安定と聞いたので、Scalaを選択した
  28. ETL & ML Engine: 技術選定 (Pipeline) ⭐ Kedro  (機械学習パイプライン) ・機械学習エコシステム(Python,

    Pandas,その他ライブラリ周り)との相性が良し ・S3やGCS、SQL、Spark等のリソースをDataSetクラスで抽象的に扱えていい感じ 最初、Docker化したMLロジックをPodOperator経由でComposerから起動していた が、コアロジック以外の部分が多めになってきて疲弊→Kedroにシフト ・ただ、Kedro⾃体はパイプラインツールとしての運⽤機能が薄めなので Composerから呼び出すようにしている
  29. 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(データ取り込み部) サービス層
  30. CloudComposer (Airflow) 集計JOBの起動や 依存性管理(DAG) ※全ての司令塔 Dataflow (Job) Bigquery上のデータを集計し GCSやCloudSQLに出⼒するJOB CloudSQL

    (Datamart) BigQuery (DWH) CloudStorage (ArtifactStore) Kedro Job 役割: 機械学習ベースのアルゴリズムを適⽤し ⽬標設定・施策⽀援⽤情報を出⼒ データ層・分析環境層 ETL & ML Engine(データ集計・機械学習連携部) ⽣成物の 保存 集計結果の格納
  31. CloudSQL (Datamart) BigQuery (DWH) CloudStorage (ArtifactStore) API Server フロントエンドへのデータ供給⽤ (Go

    x Gin) データ層・分析環境層 プレゼンテーション層 ETL & ML Engine(データーマート関連) クライアント層 (顧客側) 顧客側 分析基幹システム
  32. さいごに ⭐ 本⽇は、Insight for retailにおけるデータ基盤周りの構成や取り組みについて ご説明させて頂きました!! ⭐ ABEJA=AIの会社というイメージはありますが、データエンジニア含むたくさん のエンジニアを募集しておりますので、ご興味があればぜひご覧ください。 → 本当にお気軽にご連絡頂いてOKです!!!! https://hrmos.co/pages/abeja/jobs

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