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

機械学習/深層学習とCassandraの進化〜リアルタイムデータからリアルタイムAIへ

 機械学習/深層学習とCassandraの進化〜リアルタイムデータからリアルタイムAIへ

DATASTAX JAPAN

July 06, 2023
Tweet

More Decks by DATASTAX JAPAN

Other Decks in Technology

Transcript

  1. ©2023 DataStax. – All rights reserved
 機械学習/深層学習と Cassandraの進化 〜リアルタイムデータからリアルタイムAI 


    河野泰幸<[email protected]> - プリセールスアーキテクト
 
 
 【DataStax Japan Webinar】 2023年7月6日

  2. ©2023 DataStax. – All rights reserved
 2
 はじめに:本ウェビナーについて 本ウェビナーは、録画されたビデオの配信となります。
 


    
 7/6 オンラインで参加の方々へ
 
 ご覧のプラットフォームの「Ask Question」からご質問いただくことが可能です。 
 ご覧の全ての方々へ
 
 ご質問・デモ・ご商談のご依頼は、[email protected]へお問合せください。
  3. ©2023 DataStax. – All rights reserved
 DataStaxのご紹介 本社
 
 Santa

    Clara, CA
 
 2010年4月創業
 
 Santa Clara • London • Paris • 
 Singapore • Tokyo •
 Sydney • Wellington
 
 
 
 
 オープンソースを基盤とした
 テクノロジースタックを
 エンタープライズ向けソリューション
 として提供
 DATASTAX JAPAN 2017年法人設立
  4. ©2023 DataStax. – All rights reserved
 Apache Cassandra オープンソース NoSQLデータベース


    分散アーキテクチャ
 ワイド カラム データ モデル
 低レイテンシ/ 無限のスケール
 単一障害点のない高可用性 

  5. ©2023 DataStax. – All rights reserved
 リアルタイムデータとは? 7
 以下は、Apache Cassandra公式サイトから引用(

    https://cassandra.apache.org/_/case-studies.html) Appleは、 Cassandra を使用して 1 秒あたり数百万回の操作 (読み取り/書き込み) を行っています。 Apache Cassandraデータベースの本質的な価値・ユースケース
 
 • 大規模データの利用を必要とする ミッションクリティカル・サービス における長い実績
 • 低レイテンシー
 • 高スループット
 Netflix は、ペタバイト規模のデータ を Apache Cassandra で管理、ユーザーは わずか数ミリ秒で確実にアクセ スできる必要があります。
  6. ©2023 DataStax. – All rights reserved
 リアルタイムアプリケーションとは? 8
 リクエストベースから、イベントベースへのパラダイム・シフト
 


    
 Apache Pulsarなどのメッセージング・ストリーミングプラットフォームの本質的な価値・ユー スケース

  7. ©2023 DataStax. – All rights reserved
 Apache Pulsar オープンソース
 メッセージング/ストリーミング


    ミドルウェア
 分散アーキテクチャ
 クラウドネイティブ設計
 保証されたメッセージ配信 
 軽量サーバーレス関数フレームワーク 
 階層型ストレージオフロード 

  8. ©2023 DataStax. – All rights reserved
 Kaskada Open Source &

    Enterprise Support https://www.datastax.com/jp/products/luna-ml
  9. ©2023 DataStax. – All rights reserved
 包括的な オープンテクノロジー スタック オンプレとクラウドの両方で一

    貫して技術を提供 リアルタイムAI DataStaxが指向する マシンラーニング
 ストリーミング
 クラウド
 データ

  10. ©2023 DataStax. – All rights reserved
 ©2023 DataStax. – All

    rights reserved
 アジェンダ 13
 Cassandraの機械学習利用
 Kaskada概要
 Cassandraのベクトル検索機能
 
 (サンプルアプリ紹介)
  11. ©2023 DataStax. – All rights reserved
 機械学習における隠れた技術的負債 15
 Hidden Technical

    Debt in Machine Learning Systems (Sculley et al. 2015) https://papers.nips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf
  12. ©2023 DataStax. – All rights reserved
 フィーチャーストアのない世界とある世界 17
 ML Feature

    Stores: A Casual Tour ⅓ https://farmi.medium.com/ml-feature-stores-a-casual-tour-fc45a25b446a
  13. ©2023 DataStax. – All rights reserved
 Uber:CassandraをMLプラットフォームに活用 18
 https://www.uber.com/en-JP/blog/michelangelo-machine-learning-platform/ Cassandra

    フィーチャーストア Cassandra モデルレポ • バッチ(OFFLINE)とリアルタイム(ONLINE)、 2つ のデータ処理パイプラインを備えた Lambda アーキテクチャ
  14. ©2023 DataStax. – All rights reserved
 ドライバーの稼働情報 
 リアルタイム気象データ 


    パーソナライズされた顧客の好み 
 乗車客が過去に訪れた目的地 
 継続的に更新される乗車客の 地理位置情報データ 
 リアルタイム交通データによって 
 最適化されたルートの推奨 
 予約・注文データ 
 顧客生涯価値の最大化と評価 
 動的な価格設定 
 機械学習の活用により
 • 毎日 1,400 万以上の顧客 を、世界中の 390 万人のド ライバーとマッチング 
 • 乗客の好みや利用履歴に 合わせてパーソナライズさ れたサービス
 • 予測可能な価格設定 による 安全かつ安全な取引 
 • 82 か国で常時オンタイム のサービスを提供

  15. ©2023 DataStax. – All rights reserved
 Kaskada:イベント処理エンジン 21
 Kaskadaは統合イベント処理エンジン であり、ステートフルなストリーム処理のためのあらゆる能力を提供

    します。 Kaskadaは、その目的のために、バッチおよびリアルタイムで イベントを論理的に扱うために特化して設計 されたハイレベルの宣言型クエリ言語 を用います。
  16. ©2023 DataStax. – All rights reserved
 イベントとは何か? アーロン ブラッド カーラ

    因果関係を理解するにはイ ベントの順序が重要
 複数の種類のイベントの組み合わせ から得られる洞察
 イベントの時間には意味がある
 (イベントのない時間も)
 ゲームのデータ:勝敗、課金、コメント 
 ユーザー(エンティティ) 

  17. ©2023 DataStax. – All rights reserved
 イベントデータに特有の概念 タイムライン〜離散または連続 離散 連続

    イベントデータは本来、離散的
 (特定時点の購入金額など、散発するイベントの特 定時点にのみ結びついた値) 
 集計などの操作により、データは 連続性を得る。
 つまり、期間において、何らかの値を取る。 
 (任意の時点における、それまでの購入金額合計・平均) 

  18. ©2023 DataStax. – All rights reserved
 (SQL - History) (Kaskada)

    WITH activity AS ( (SELECT k, t, 1 as is_page_view FROM page_views) UNION (SELECT k, t, 0 as is_page_view FROM purchases) ), purchase_counts AS ( SELECT k, t, is_page_view, SUM(CASE WHEN is_page_view = 0 THEN 1 ELSE 0 END) OVER (PARTITION BY k ORDER BY t) AS purchase_count FROM activity ) SELECT k, t, SUM(CASE WHEN is_page_view = 1 THEN 1 ELSE 0 END) OVER (PARTITION BY k, purchase_count ORDER BY t) AS views FROM purchase_counts SQL のウィンドウ処理との比較 各ユーザーの最後の購入以降のページ ビューは何回か?
 1 2 3 PageViews | count(window=since(Purchases))
  19. ©2023 DataStax. – All rights reserved
 タイムトラベル:「タイムライン」データの操作 29
 なぜ、このような機能が必要とされたのか? 


    • 機械学習では、予測モデルを作成する。
 • 時系列問題の場合、過去のデータから、未来を予測する 
 • モデルのトレーニングでは、実データから、 遠過去(予測モデルへのインプット) と近過去(モデルのア ウトプット=予測したい内容=ラベル) という異なる時点のデータを扱う
 復習: 「タイムライン」:時間順かつ、エンティティ単位の、データセット 「タイムトラベル」:タイムラインデータを時間にズラす(遡る・先に進める) →従来のデータ操作手法(クエリ等)は、このような目的のために設計されていない
  20. ©2023 DataStax. – All rights reserved
 Kaskadaの実行環境(2通りの利用方法) 31
 Kaskadaマネージャー
 Kaskadaエンジン


    Kaskadaコマンド
 Fenlプログラム(テキストファイル) 
 サーバープロセス(Linux, Windows, Mac/Darwin用バイナリ)
 基本構造
 独自言語(Fenl)とOSレベルコマ ンドの組み合わせにより 
 プログラミング言語を問わずに実 行(システム統合)可能
 Python環境(Jupyterノートブック)
 Kaskadaマネージャー
 Kaskadaエンジン
 コア
 これらはライブラリ利用時に背後で 
 暗黙理に立ち上がる(別途プロセス実行は不要) 
 Pythonライブラリが提供されている 
 また、JupyterでFenlを直接実行可能
 
 JupyterのセルでFenl言語を直接記述可能 
 (Ipythonマジックコマンドを提供) 
 KaskadaはRustで実装 データサイエンティスト は、自分の環境で容易に実行可能

  21. ©2023 DataStax. – All rights reserved
 外部データ利用 1. Kaskada APIを介して、Kaskadaにテーブルを定義


    2. Kaskadaテーブルにデータをロード
 a. レコードは、以下の二つを持つ必要がある 
 i. エンティティID
 ii. タイムスタンプ
 32
 次のステップにより、外部のデータが「タイムライン」データとして、 Kaskadaで利用可能になります。
  22. ©2023 DataStax. – All rights reserved
 データ保存:マテリアライゼーション 33
 クエリで使用されるテーブルに データが追加されるたびに

    結果が 更新される データの送信先定義(Pulsar トピック) Kaskadaから外部にデータを保存することを「マテリアライゼーション」と呼びます。
  23. ©2023 DataStax. – All rights reserved
 Kaskada インテグレーション: CassandraとPulsar 34


    Cassandra連携 • Cassandra Sink Connector • Pulsarを介したリアルタイム連携 https://kaskada.io/docs-site/kaskada/main/integrating/index.html Pulsar 連携 その他、Redis、AWS Redshift、Snowflakeとの統合機能を提供 また、さらに様々な他の統合(ストリーミング等)も計画中。
  24. ©2023 DataStax. – All rights reserved
 ベクトル検索とは何か? 36
 
 Googleいわく、「あらゆるデータ」を「瞬時に」アクセス(つまり検索)する技術


    
 https://cloud.google.com/blog/ja/topics/developers-practitioners/find-anything-blazingly-fast-googles-v ector-search-technology?hl=ja
 
 
 
 
 
 
 
 
 (非構造化)データのベクトル化 (Embedding) ベクトル同士の類似性を検出する (数学的)アルゴリズム Cassandraのカバーする範囲

  25. ©2023 DataStax. – All rights reserved
 CEP-30:ベクトル検索 (Cassandra 5.0プロポーザル) 37


    新たなデータ型 VECTORの導入 新たなオペレーター ANN OFの導入 近似最近傍探索を実装 approximate nearest neighbor (ANN) インデックスを定義 Storage Attached Index
  26. ©2023 DataStax. – All rights reserved
 CEP-7:Storage Attached Indexes (SAI)

    38
 従来のセカンダリインデックスの 
 代替となる技術

  27. ©2023 DataStax. – All rights reserved
 Similarity function(類似性を判断する方法) 40
 


    • コサイン
 ◦ 正規化されていないベクトルでも利用可能 
 
 • ドット積
 ◦ 1.5倍高速
 ◦ 正規化されたベクトルでのみ利用可能 

  28. ©2023 DataStax. – All rights reserved
 今すぐ、試してみよう! 41
 http://astra.datastax.com Apache

    Cassandra 4.xには未実装の、ベクトル検索機能を 
 DataStaxのCassandraマネージドサービス(DBaaS)であるAstra DBでは、
 今すぐ、試してみることができます。 

  29. ©2023 DataStax. – All rights reserved
 サンプルアプリ 42
 https://github.com/YoshiyukiKono/semantic-text-search Astra

    DBとColaboratory (※)の組み合わせのみ で実行可能
 
 ※ Colaboratory (Colab): Googleの提供する、環境構築なしでブラウザ上で、 Pythonを記述・実行できる環境。 

  30. ©2023 DataStax. – All rights reserved
 サンプル/デモの内容:セマンティック・テキスト・サーチ 45
 このサンプル/デモは:
 


    • 🟢 セマンティック・テキスト・サーチ :文章全体の類似度の計算による、 類似した文章(ここでは、 Q&Aサイトの質問 文)の検索を扱います。
 • ❌セマンティック検索:利用者が何を求めて検索したかを適切に理解し、 求める検索結果を提供する技術そのもの ではありません。
 
 ここでは、質問の類似性にフォーカスしていますが、例えば、検索対象データとして、質問と答えの組み合わせを管理す るようになっていれば、質問の文章表現の揺れを吸収して、答えを提供する、原始的なシステムを構築することができま す。
 
 
 
 このサンプルは、
 Pinecone(ベクトル特化型データベースサービス )の提供する「Semantic Search」チュートリアル (https://docs.pinecone.io/docs/semantic-text-search)と同等の処理をAstra DBを使って実装したものとなっています。 
 
 (データは、AIコミュニティhuggingfaceの `datasets`ライブラリで提供されるデータを利用)
  31. ©2023 DataStax. – All rights reserved
 イベントのご案内: AGENT X 46


    https://www.datastax.com/gen-ai-agent-x 開催日:7月11日 タイムゾーンに合わせ2つのセッションを実施 セッション1は、日本時間 20〜22時に開催 LLM、LangChain、分散データベースを使用して AI エージェントを構築する方法を学ぶ無 料のオンライン イベント 次のことを学ことができます。 • AI システムにおけるベクトル検索 • Cassandraのリアルタイム データを使用して LLM をトレーニングする方法 • 「スモールモデル」と「ビッグモデル」のチェーンにより、独自のボットを作成する方 法 • LLM エージェントに Astra/Cas sandra 5.0 を使用する利点 • インテリジェント エージェントを設計する際のセキュリティとプライバシー