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. 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
  2. サービス構成要素 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
  3. 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に⼊店
  4. 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というカラムで税抜でデータを送ってくる。 認証認可
  5. サービス構成要素 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
  6. ETL & ML Engine: 役割分解 ⭐ IoTɾAIɾ֎෦γεςϜ࿈ܞΛར׆༻ͨ͠ओཁళฮKPIͷܭࢉ ɾσʔλൃੜλΠϛϯά΋σʔλܗࣜ΋ϑΥʔϚοτ΋ҟͳΔෳ਺ͷσʔλιʔε Λ͕ͬͪΌΜ͜͢Δඞཁੑ͕͋Δ ɾੜσʔλ͔ΒଟஈͷूܭϩδοΫΛॱ൪ʹ࣮ߦ͠ɺ࢖͑Δσʔλʹม׵͍ͯ͘͠

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

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

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

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

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

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

    x Gin) データ層・分析環境層 プレゼンテーション層 ETL & ML Engine(データーマート関連) クライアント層 (顧客側) 顧客側 分析基幹システム