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

Oracle Database で機械学習を始めよう! Oracle Machine Learning

Oracle Database で機械学習を始めよう! Oracle Machine Learning

2024/03/22 に行われたOracle AI Brown Bag Seminar #9 Oracle Database で機械学習を始めよう! Oracle Machine Learningで用いた資料です。

oracle4engineer

March 22, 2024
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Machine Learning Oracle Database で機械学習を始めよう! Oracle AI Brown Bag

    Seminar #9 Cloud Solution Engineer Oracle Corporation Japan March 22, 2024 Ryunosuke Deguchi
  2. 出口 龍之介 (Ryunosuke Deguchi) Cloud Solution Engineer 日本オラクル株式会社 2021年に新卒として日本オラクルに入社。 入社以来、Autonomous

    Databaseを中心に、データベース関連の 案件支援、情報発信活動に従事。 最近では、AIやマイクロサービスといったOracle Databaseのデータ活 用機能に関する技術支援も担当。 Copyright © 2024, Oracle and/or its affiliates 2
  3. Oracle Cloud Infrastructure AI/ML 製品ポートフォリオ Copyright © 2024, Oracle and/or

    its affiliates 3 Applications Fusion Applications Fusion Analytics Industry Applications 3rd Party Applications Oracle AI Partners ML for data platforms OCI Data Science AI Vector Search / ML in Oracle Database MySQL HeatWave AutoML Vector Store OCI Data Labeling AI infrastructure Compute bare metal instances and VMs OCI Supercluster with RDMA networking Block, object, and file storage; HPC filesystems Data NetSuite OCI Generative AI OCI Generative AI Agents Digital Assistant Speech Language Vision Document Understanding AI Services
  4. Oracle Cloud Infrastructure AI/ML 製品ポートフォリオ Copyright © 2024, Oracle and/or

    its affiliates 4 Applications Fusion Applications Fusion Analytics Industry Applications 3rd Party Applications Oracle AI Partners ML for data platforms OCI Data Science MySQL HeatWave AutoML Vector Store OCI Data Labeling AI infrastructure Compute bare metal instances and VMs OCI Supercluster with RDMA networking Block, object, and file storage; HPC filesystems Data NetSuite OCI Generative AI OCI Generative AI Agents Digital Assistant Speech Language Vision Document Understanding AI Services AI Vector Search / ML in Oracle Database
  5. 1. Oracle Machine Learning(OML) とは 2. 各製品 3. AutoML UIデモ

    4. AI Vector Search Agenda Copyright © 2024, Oracle and/or its affiliates 5
  6. Copyright © 2024, Oracle and/or its affiliates 7 一般的な機械学習のプロセス データ準備(収集)

    モデル構築 モデル評価 デプロイ データ準備 有用なデータを探索し、持ってきて、 データ変換等を行うことでモデル構築 用のデータを生成する モデルの評価 精度やモデルの内部を確認し、解釈する 等の作業を通して、モデルが目的に対して 適切なものであるか、利用に耐えるもの であるかを判断 事業への適用 機械学習モデルをシステムに組み込むこと で実現することが多い
  7. Copyright © 2024, Oracle and/or its affiliates 8 一般的な機械学習のプロセス データ準備(収集)

    データ準備 有用なデータを探索し、持ってきて、 データ変換等を行うことでモデル構築 用のデータを生成する 例 • 課題: 追加契約率を上げる • 解決方法: 追加契約の可能性を判定し、見込みの高い 顧客への売り込みを強化する • データ: 顧客マスタ、契約状況データ、契約受注データ… • 準備: 過去の受注履歴データから追加受注が発生したかどうか を確認し、顧客ごとに追加契約フラグ(0/1)を立てる。
  8. Copyright © 2024, Oracle and/or its affiliates 9 一般的な機械学習のプロセス データ準備(収集)

    モデル構築 モデル評価 デプロイ 分析、データ理解: データ連携・集計 データ変換処理: データ型を揃える 等 データ抽出: 必要なデータのみを抽出 データ準備 有用なデータを探索し、持ってきて、 データ変換等を行うことでモデル構 築用のデータを生成する 80%の時間がデータの準備/検索/管理に費やされている 80%
  9. Copyright © 2024, Oracle and/or its affiliates 10 一般的な機械学習のプロセス データ準備(収集)

    モデル構築 モデル評価 デプロイ データベースの領分 機械学習の領分 業務システムの領分 分析システム 業務システム データの移動 モデル、データの移動
  10. Oracle Database の機械学習機能の総称 Oracle Database の標準ライセンスに含まれる(無償) • 自動化された機械学習 データサイエンティストの生産性を向上 アルゴリズム固有のデータ準備

    • 拡張性 30以上の高性能、並列化された データベース内機械学習アルゴリズムにより、データの移動が不要 • 本番環境への適用 SQL および REST API を使用して、 本番環境で機械学習モデルを素早くデプロイ、更新可能 データ並列およびタスク並列呼び出し可能な RおよびPythonユーザー定義関数のデプロイ Oracle Machine Learning (OML) とは モデル・リポジトリ ワークスペース/ プロジェクト Zeppelinベースの ノートブック モデルのデプロイ モデル作成 モデル管理 予測の詳細 R/Pythonとの統合 AutoML データ・マネジメント インフラストラクチャ Oracle Database – Oracle Autonomous Database – Data Lake Access – Integration – Preparation – Exploration CPU – ストレージ – ネットワーク Cloud On premises Copyright © 2024, Oracle and/or its affiliates 12
  11. Oracle Machine Learning (OML) 構成要素 Copyright © 2024, Oracle and/or

    its affiliates 13 Oracle Machine Learning OML Services OML4SQL OML4Py OML4R OML Notebooks OML4Spark Oracle Data Miner OML AutoML UI データサイエンスで人気の ある言語のインタフェース SQL, R, Python Autonomous Database で動作するZeppelinを ベースにしたノートブック環境 GUIでMLソリューションを 作成、スケジュール、デプロイ可能な SQL Developerの拡張機能 スケーラブルなアルゴリズムによる Rからのビッグデータ環境のためのML Autonomous Database で動作するノーコード 機械学習インタフェース モデルのデプロイと管理
  12. Copyright © 2024, Oracle and/or its affiliates 15 • データベースに統合された機械学習エンジン

    データベースの内部カーネルに機械学習のエンジンを統合 • 他サーバへのデータ移動は不要 • 高鮮度の機械学習環境の実現 • 大規模なデータ分析に データベースの大規模向け並列処理機構を利用 • メモリを節約し大量データ分析を実現可能 • データベース内機械学習モデル モデルはデータベース内に生成、管理 • 機械学習結果(モデル)の即時適用が可能 • DB監査の仕組みの上で動作 Oracle Machine Learning for SQL (OML4SQL) SQLベース の機械学習エンジン SQL Interfaces SQL*Plus SQL Developer … OML Notebooks Oracle Database Oracle Autonomous Database
  13. Copyright © 2024, Oracle and/or its affiliates 16 モデル作成(PL/SQL) リアルタイムスコアリング(SQLクエリ)

    ※クエリ内で予測され結果が取得できます OML4SQL: モデルの作成とリアルタイム予測 BEGIN DBMS_DATA_MINING.CREATE_MODEL( model_name => 'BUY_INSUR1', mining_function => dbms_data_mining.classification, data_table_name => 'CUST_INSUR_LTV', case_id_column_name => 'CUST_ID', target_column_name => 'BUY_INSURANCE', settings_table_name => 'CUST_INSUR_LTV_SET'); END; SELECT prediction_probability(BUY_INSUR1, 'Yes' USING 3500 as bank_funds, 825 as checking_amount, 400 as credit_balance, 22 as age, 'Married' as marital_status, 93 as MONEY_MONTLY_OVERDRAWN, 1 as house_ownership) FROM dual;
  14. Copyright © 2024, Oracle and/or its affiliates 17 OML4SQL アルゴリズム

    回帰(Regression) 線形モデル(LM) 一般化線形モデル(GLM) サポート・ベクター・マシーン(SVM) ステップワイズ線形回帰 ニューラル・ネットワーク 異常検出(Abnormally Detection) 1クラスSVM MSET (21c) 相関(Association Rules) Apriori/バスケット分析 属性評価(Attribute Importance) 最小記述長(Minimum Description Length) CUR行列分解 教師なしペアワイズKLダイバージェンス A1 A2 A3 A4 A5 A6 分類(Classification) 決定木(Decision Tree) (2項分類)一般化線形モデル(GLM) 単純ベイズ(Naïve Bayes) ランダム・フォレスト(Random Forest) サポート・ベクター・マシン(SVM) 明示的セマンティック分析(ESA) ニューラル・ネットワーク XGBoost (21c) クラスタリング(Clustering) 期待値最大化法(EM) k平均法(k-means) 直交パーティショニング・クラスタリング (O-Cluster) 時系列(Time Series) 指数平滑法 等 (単純,、2重、Holt-Winters法、Regular & Irregular, with and w/o trends & seasonal 含 む) 特徴抽出(Feature Extraction) 明示的セマンティック分析 (ESA) Non-Negative Matrix Factorization (NMF) 特異解分析 (SVD) 主成分分析 (PCA) 教師無し Pair-wise KL Div 予測問合せ(Predictive Queries) クラスタリング問合せ 特徴抽出問合せ 異常検出問合せ 統計関数(Statistical Functions) 基本関数:最小、最大、メジアン、標準偏 差、t検定、F検定、ピアソン分布、カイ二乗 検定、 分散分布(ANOVA)等 SQL関数:行列の選択、条件式、結合、 等
  15. Copyright © 2024, Oracle and/or its affiliates 18 Oracle Databaseへの処理のオフロード

    データの探索、変換、分析を高速、かつスケール可能に データベース内の並列分散型 MLアルゴリズムの利用 • より多くのモデルをより多くのデータで開発、大量のデータスコアリングを高速に • Pythonの記法のままのAPIでIn-DatabaseのOML4SQLのアルゴリズムを利用可能 • 自動データ準備やPartitioned Modelによる生産性向上 Database内でPythonスクリプトの実行と Pythonオブジェクトを管理 • コラボレーション性の向上: データサイエンティストから開発者へのデータの受け渡しを簡単に • データパラレル、タスクパラレルでのユーザ定義のファンクションを実行 • Python と REST APIで構造化された結果や生成された画像を返すことが可能 automatic machine learning (AutoML) と model explainability (MLX) • データサイエンティストの生産性を向上し、非専門家でも機械学習を利用し恩恵を得られる • アルゴリズム選択、特徴量選択 、ハイパーパラメータチューニング、モデル選択 • モデルの予測に影響を与える重要な特徴量をモデルの種類にとらわれない形で識別 Oracle Machine Learning for Python (OML4Py) OML Notebooks REST インターフェース OML4Py データベースの表をPandasのDataFrameとして扱えます ※19c以降で利用可能
  16. Copyright © 2024, Oracle and/or its affiliates 19 モデル作成(Python) OML4Py:

    スケーラブルなデータベース内アルゴリズム Support Vector Machineを使った例 import oml # 学習用データの作成 dat = oml.sync(table='IRIS').split() train_x = dat[0].drop('Species') train_y = dat[0]['Species'] test_dat = dat[1] # モデルオブジェクトの定義 svm_mod = oml.svm('classification', svms_kernel_function = 'dbms_data_mining.svms_linear') # 分類モデルの作成 svm_mod = svm_mod.fit(train_x, train_y) # モデルを使った予測 svm_mod.predict(test_dat.drop('Species'), supplemental_cols = test_dat[:, ['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Species']]) OML4Py OML Notebooks Oracle Autonomous Database User tables
  17. Copyright © 2024, Oracle and/or its affiliates 20 AutoML 搭載の簡単機械学習インターフェイス

    概要 • データと予測対象を選択するだけ • モデルを自動で構築、管理、デプロイ • ノーコード の AutoML ユーザインターフェイス AutoML • 自動で モデル選択、特徴選択、モデルチューニング 利点 • 専門知識が無くても、機械学習モデルの構築が可能 Oracle Machine Learning AutoML UI ※ Autonomous Databaseでのみ提供
  18. Copyright © 2024, Oracle and/or its affiliates 21 選択:予測したいデータ表と列を準備し選択 開始:複数のモデルを自動構築し、モデル品質メトリクスで

    比較 生成:AutoMLが選択したハイパーパラメータ値を用いて、 目的のモデルの編集可能なノートブックを生成 名前設定:リポジトリ内のモデルを容易に認識可能 デプロイ:SQLを使用してモデルを即座にデプロイ、或いは RESTエンドポイントとしてOMLサービスへデプロイ クリック操作でMLモデルを構築 OML AutoML UIは、コーディング不要のインタフェースで迅速にモデルを構築 データ・サイエンティストの生産性を高め、 専門家以外の人にもMLモデルを作成できるように
  19. Copyright © 2024, Oracle and/or its affiliates 22 アプリケーションで使用するデータベース内モデルのデプロイ すでに構築されているモデルのデプロイも可能

    Oracle APEX Oracle Analytics Cloud サービス・アプリケーション モバイル・アプリケーション アプリケーション SQL モデルのエクスポート /インポート REST Autonomous Database SELECT prediction_probability(BUY_TRAVEL_INSUR, 'Yes’ USING 98400 as income, 45 as age, 'Married' as marital_status, 2 as num_previous_cruises) FROM dual; CREATE TABLE CUSTOMER_SCORES AS SELECT case_ID, prediction(BUY_TRAVEL_INSUR USING *) BUY_INSUR prediction_details(BUY_TRAVEL_INSUR USING *) PD FROM CUSTOMERS; curl --location --request POST '{oml-service- url}/omlmod/v1/deployment/buyinsurance/score' ¥ --header 'Content-Type: application/json' ¥ --header 'Authorization: Bearer <token>' ¥ --data-raw '{ "inputRecords": [{ "INCOME": 98400, "AGE": 45, "CUST_GENDER": "M", "MARITAL_STATUS": "Married", "NUM_PREVIOUS_CRUISES": 2 }] }' シングルトン・スコア- SQL バッチ・スコア- SQL シングルトン・スコア- REST
  20. Copyright © 2024, Oracle and/or its affiliates 23 スクリプトベースの機械学習インターフェイス 概要

    • データを確認しながら分析作業を行う データ・サイエンティスト、DBエンジニア、データアナリスト向け • SQL, PL/SQL, Python をサポート • OML4SQL、OML4Pyを利用可能 • コラボレーション/共有機能 利点 • SQLだけで機械学習を完結できる • データの管理性、セキュリティを手放さず分析を促進 Oracle Machine Learning Notebooks ※ Autonomous Databaseでのみ提供
  21. Copyright © 2024, Oracle and/or its affiliates 24 Oracle Machine

    Learning (OML) :動作環境 ※ OML Notebooksは OML4Pyを利用することで AutoMLを実行することができます On-Premise BaseDB/ ExaDB-D Autonomous Database AutoML機能 備考 OML4SQL 〇 〇 〇 × OML4R 〇 〇 〇 × ※ADBは一部機能制限有 OML4Py(19c~) 〇 〇 〇 〇 ※ADBは一部機能制限有 OML AutoML UI × × 〇 〇 OML Notebooks × × 〇 〇 Data Miner 〇 〇 〇 × OML Services × × 〇 - Oracle Machine Learning はOracle Database の標準ライセンスに含まれています(無償)
  22. お弁当の需要を予測する回帰問題 日ごとの「メニュー」や「イベントの有無」、「気温」など、全部で18の属性(列)を持ったデータセットから、青色の17個の属性と赤色の1個の属性の 関連性を学習し、予測モデルを構築。その日の17個の属性から、赤色の属性であるお弁当の販売数を予測する回帰問題。 18個の属性 DAYS:経過日数 NAME:お弁当の名前 SOLDOUT:売り切れたら1, 売り切れなかったら0 KCAL:キロカロリー数 EVENT:イベントの有無

    PAYDAY:給料日だと1, それ以外は0 FUN:お楽しみメニューがあれば1, それ以外は0 TEMPERATURE:気温 PRECIPITATION:降水量, 降らなかった日は-1 RAIN:雨の日は1, それ以外は0 YEAR:年 MONTH:月 MON~FRI:曜日 Y:販売数 お弁当データセット 説明変数 目的変数(予測対象) Copyright © 2024, Oracle and/or its affiliates 26 使用するデータ
  23. Oracle Machine Learning (OML) デモの流れ <今の状態> 日ごとの弁当の需要に関する下記の2つのcsvファイルをDatabaseにロード済み • TRAIN表(機械学習モデルを作成するための学習用データセット) <デモの流れ>

    1. AutoML UIで自動で予測モデルを作成 2. 作成したモデルをOML4Pyで再作成するスクリプトを確認(OML Notebooks) 27 Copyright © 2024, Oracle and/or its affiliates
  24. Copyright © 2024, Oracle and/or its affiliates 28 AutoML データ・サイエンティストの生産性の向上

    – 全体的なコンピューティングの時間を削減 自動モデル 選択 適合モデル探しを 高速に実現 特徴量を50%削減 自動モデル チューニング 大幅なスコア改善 ML モデル 使えるモデルを作るまでの繰り返しになりがちなモデル構築作業工程を自動化 Data Table 自動特徴選択 – 予測的に有用でない特徴 量を削減し特徴の数を最 適化 – モデル性能と精度の向上 自動モデル選択 – 網羅的なモデル探しよりも高 速に、最も適切なデータベー ス内アルゴリズムを識別 自動モデルチューニング – パイパーパラメータを自動調整 – 大幅なモデル精度の向上 – 総当たりのパラメータ評価なしで の高精度の実現
  25. AI Vector Search 機能はOracle Database 23c の今後のリリースでサポート 使いやすく、わかりやすい設計 • VECTOR形式のデータを格納するための新しいVECTORデータ型

    • 新しいSQL構文および関数は、類似性検索を簡単に行います • ベクトル索引は、 パッケージ化およびチューニングされ、高パフォーマンスと品質を実現 Oracle AI Vector Search Oracle Database の新たなベクトル検索機能 Copyright © 2024, Oracle and/or its affiliates 30
  26. ニューヨークのソフトウェア エンジニアの求人で、 その職務内容と履歴書の関連性が高いトップ10を検索 AI Vector Search の使用例: SELECT … FROM

    Job_Postings WHERE title = 'Software Engineer' AND location = 'New York' ORDER BY VECTOR_DISTANCE(job_description_vector, :resume_vector) FETCH APPROX FIRST 10 ROWS ONLY; Copyright © 2024, Oracle and/or its affiliates 31
  27. ベクトル生成のネイティブ・サポート 新しいSQL EMBEDDINGSファンクション Copyright © 2024, Oracle and/or its affiliates

    32 画像の 埋込み生成 入力イメージ (クライアント) イメージを BLOBとして ロード ベクトル 埋め込み 上位一致 抽出 出力一致 Oracle Database 入力画像をベクトルに埋め込み EMBEDDING(resnet_50 USING input_img) データベース内の画像は、ベクトルに埋め込 まれ、保存されている EMBEDDING(resnet_50 USING data_img) 類似した画像・ ベクトルの検索
  28. Copyright © 2024, Oracle and/or its affiliates 33 AI Vector

    Searchは、大規模な再アーキテクチャなしでOracle Database 23cに追加 拡張SQL機能: データベースの一つの拡張機能としてAI Vector Searchは追加される • データの型に関係なく、リレーショナル、ドキュメント、地理空間、グラフ、AI Vector Searchを単一のクエリで 簡単に組み合わせることが可能 • 単一目的のデータベースを使用する場合は、5つの異なるデータベースが必要になり、 それらを統合するコード開発も必要になってしまうがOracle Databaseは一つで完結 45年以上開発し続けた技術が OracleのAI Vector Searchを強化します