オラクル自身が開発するクラウドデータベースに機械学習機能を組み込む理由、優位性を聞いた
オラクルが発表した「Oracle MySQL HeatWave ML」のメリットとは
2022年04月01日 07時00分更新
オラクルは2022年3月30日、「Oracle Cloud Infrastructure(OCI)」で提供しているクラウドデータベース(DB)サービス「Oracle MySQL HeatWave Database Service」において、DB内部で機械学習(ML)を実行できる新機能「MySQL HeatWave ML」を発表した。大量のデータや作成したモデルを外部のツールやサービスに移動することなく、DB内部で機械学習処理を完結させることができる。
ほかにも簡単なSQL文(SQL関数)でトレーニング/推論/説明を実行できる点、「Oracle AutoML」によって高度な知識やスキルなしでも機械学習を扱える点、拡張性のあるHeatWaveクラスタで高速な処理実行ができる点、データをDB内に保持したままでセキュアに扱える点などが特徴となっている。
今回はMySQL HeatWaveや新機能HeatWave MLの特徴、優位性について、日本オラクル MySQLグローバルビジネスユニットの梶山隆輔氏に話を聞いた。
「MySQL HeatWave Database Service」と「MySQL HeatWave」
まずはオラクルがOracle Cloudで提供しているMySQLのクラウドサービスや技術について、情報を整理しておきたい。
「MySQL HeatWave Database Service」は、オラクルがオープンソースDB「MySQL」を使ってOCIで提供するマネージドDBサービスだ。オラクル自身が開発する商用版(有償版)MySQLをベースとしているため、セキュリティパッチなどはオンプレミス版と同じタイミングでリリースされ、アップデートは自動的に行われる。また、顧客がオンプレミス環境で利用している商用版/無償版のMySQLと完全な互換性を持っており、ワークロードのクラウド移行が容易にできるほか、オンプレミスDBとのレプリケーションも可能だ。
「MySQL HeatWave」は、上述したMySQL HeatWave Database Serviceで利用できる分析クエリ処理(OLAP)高速化のためのアクセラレーターである。インメモリ/カラム型アーキテクチャをベースに、HeatWaveクラスタが分散並列処理を実行して複雑なクエリ処理を高速化する。ただし、アプリケーション側からは通常のクエリ(OLTP)と同じように実行できるのがポイントだ。
2021年8月には、このHeatWaveの実行を自動化する「MySQL Autopilot」機能も追加された。HeatWaveクラスタのプロビジョニング、各ノードへのデータのロード、処理の並列度のチューニングといった作業について、機械学習技術の適用により自動化/アドバイスすることで、DBアーキテクトの運用業務を支援する。このAutopilotは追加コストなしで利用できる。
なお今回はHeatWave MLのほかに、HeatWaveクラスターのダウンタイムなしでの伸縮性(ノード台数の追加/削減)、中間結果データの縮減/圧縮によるノードあたりのデータ格納量の倍増といったHeatWaveのアップデートも発表されている。
梶山氏は、MySQL HeatWave Database Serviceでは他のクラウドベンダーが提供するクラウドDB/DWHサービスと比べて大幅に高速かつ低コストな分析ワークロードの処理ができることを強調した。
たとえば成功報酬型アドネットワーク(アフィリエイト広告)の「A8.net」を運用するファンコミュニケーションズでは、他社のクラウドDBサービスからアプリケーション変更なしでMySQL HeatWave Database Serviceに移行し、性能が10倍高速化した一方でコストは大幅に削減できたという。
HeatWave MLが解決する「課題」とは
ここまでの取り組みでOLTP、OLAPの処理を高速化してきたMySQL HeatWave Database Serviceだが、今回さらに機械学習のトレーニングと推論の機能も追加されることになった。それが「HeatWave ML」である。HeatWave MLそのものは追加コストなし(MySQL HeatWave Database Service、HeatWaveクラスターの料金のみ)で利用できる。
梶山氏は、DBの内部に機械学習機能を取り込んだ理由について次のように説明する。
「ユーザー各社が業務システムで使うDBには大量のデータが蓄積されている。しかしそのデータの利活用には課題があり、これまではレポーティングや分析などでしか利用できていなかった。そこで、将来の予測をDBの中でやりましょうと開発されたのが、今回のHeatWave MLになる」
どのような「課題」があったのか。梶山氏はこれまでの一般的な機械学習の手法と、HeatWave MLを比較しながら説明した。
これまでの機械学習では、機械学習の処理(トレーニング、推論、説明)を行うアプリケーションはDBと独立した外部にあった。その場合、トレーニングや推論の処理を行うためにはDBから対象とする大量のデータを引き出す必要がある。
「(機械学習アプリケーションがDBの外部にある従来の手法では)大量のデータを移動させる必要があり、そのぶんのメモリ容量や実装工数も必要となる。さらに重要なのがセキュリティの観点だ。DB内ではアクセス制御などの保護を行っているにもかかわらず、そこから外に引き出すのでセキュリティ上の課題も生じる」
これに対して、HeatWave MLではDB内でトレーニング/推論/説明の処理が完結するため、外部にデータを持ち出すうえでの課題が生じない。「学習対象のデータを指定してトレーニングを行い、そのモデルに予測のクエリを投げたら予測結果のデータだけが返ってくるようなかたち」(梶山氏)。
さらに、HeatWave MLのトレーニング処理は「Oracle AutoML」で自動化されている。AutoMLはすでに「Oarcle Database」や「Oracle Autonomous Database Cloud」で提供されているが、ユーザーが「どのテーブル/列のデータを使うか」を指定するだけでモデルが作成できる仕組みだ。たとえば多数あるアルゴリズムから今回の予測に適したものを選択する、データの特徴的なポイントをサンプリングする、ハイパーパラメーターをチューニングして“試行錯誤”するといった作業を自動化するため、作業効率の向上につながるうえ、推論の精度も向上するという。また、高度な自動化で機械学習の専門知識を持たないユーザーでも、簡単に機械学習が扱えるようになる。
また、HeatWave MLのトレーニング/推論/説明の処理は、SQL関数を通じて実行を命令するかたちとなっている。そのためPythonだけでなくJava、.NETなど、MySQLサーバーにアクセスできる開発言語であればどんな言語からでも利用できる仕組みだ。作成したモデルはユーザーごとのモデルカタログ(MySQLのテーブル)に登録され、予測/説明のSQL関数はモデルの識別子を引数に指定して実行すればよい。
ビジネスユースで必須となる「理由の説明」も組み込む
すでに触れているとおり、HeatWave MLでは推論結果に対する「説明」の機能も備えている。前述したトレーニングの工程図を見ると、モデルの説明を生成/トレーニングする処理も統合されている。
梶山氏は「特にビジネスユーザーにとっては『なぜそういう予測に至ったのか』という説明が重要だ」と説明する。ビジネス上でそうした予測結果を扱うためには、得られた予測の公正さや信頼性が担保されている必要があるからだ。また将来的には、予測結果によって不利益を被った顧客が「説明を受ける権利」を持つようになる法整備が行われる可能性もある。
HeatWave MLでは、説明のためのSQL関数を実行することで、作成したモデルが「どの特徴量をどの程度重要視しているのか」を数値として示すことができる。これにより、モデルがなぜそう予測したのか、あるいは妥当な基準に基づいて判断をしているのかどうかが明らかになる。
「“当てずっぽう”ではなく、きちんと『こういう理由でこう予測しています』と説明できれば信頼性が上がり、機械学習の利用そのものもさらに増える結果を生むだろう」(梶山氏)
なお、HeatWave MLはHeatWaveクラスター環境に最適化されており、トレーニング/推論/説明を実行すると、MySQL DBから必要なデータやモデルが自動的にHeatWaveノードにロードされて、クラスター規模で処理が実行される。
オラクルでは今回の発表において、HeatWave MLと「Amazon Redshift ML」を比較した機械学習ベンチマークテストの結果を公表している。それによると、最小のクラスターではHeatWave MLがRedshift MLの平均1%のコストで、平均25倍高速にトレーニング処理を行える。さらにこのHeatWave MLの優位性は、クラスター規模が大きくなるほど高まるとしている。