9月9日から12日にラスベガス(アメリカ)で開催されたOracle CloudWorld 2024に参加してきました。
本レポートは、上記セッションの内容に関するレポートとなります。
新機能であるOracle AI Vector Searchをはじめとして、Oracle DatabaseがAI活用においてどのような価値をもたらすか?という点に焦点を当て、その一部をご紹介します。
Oracle AI Vector Search機能によるベクトル検索
Vector Searchは、Oracle Database 23aiの新機能で、既存のキーバリュー検索に加えた新しい検索手法です。
ベクトル検索によって、文書、画像、動画などの非構造化データから価値をつくることを可能にします。
ドキュメントや非構造化データをベクトルとして格納することで、単純な文字列やピクセルデータではなく、そのデータそのものが持つ「意味」に着目した類似検索を行うことが可能になります。
Vector Searchは、このようにベクトル化して保管したデータを高速に検索できるようにする工夫がされていて、その1つとしてベクトルインデックスの紹介がされていました。
これはBツリーインデックスやビットマップインデックスのような、新しいタイプのインデックスで、ベクトルを1つずつ検索していく方法と比べ100倍〜1000倍もの速さでの検索を可能にします。
このベクトルインデックスには2種類のインデックスがあり、従来のインデックスと同様、用途や要件に応じて選択できるものとなっています。
SQLクエリを用いた容易なAIモデルの構築
いくつかのユースケースに沿って、AI活用に関する具体例が示されました。
この例では、顧客の収入、年齢などのデータから、顧客が商品を購入しそうかしなさそうか?という2値分類を行うモデルを作成しています。
理屈上は顧客の収入、年齢などのデータ等と合わせて、過去に該当の商品を購入したことがあるか?というデータがあれば、これをもとにモデルを構築し、購入確率を算出するモデルを構築することが可能です。
画像右側のコードが上記を実際にモデルを構築する実装例となっています。
Oracle SQL言語に組み込まれたクエリと演算子を使用して、宣言的にモデルを構築しています。
この例から、Oracle Database内のデータを利用して、SQL言語に組み込まれたクエリと演算子で容易に機械学習モデルを構築できることがわかります。
さらに、非構造化データの利用例として、アップロードされた家の画像から、類似したおすすめの家をレコメンドするアプリケーションの実装が取り上げられていました。
実装の手順として、家の画像データをベクトル化し、これを「家のベクトル」という新しい列タイプとして、家の値段などと合わせてテーブルに格納します。
家の画像のベクトルを生成することで、ベクトル距離によって、最も入力された家のイメージに近い家を順に出力することができるようになります。
さらに、画像の類似度だけでなく、他の条件と組み合わせてクエリを実行することが可能です。
画像右側のクエリ文では、値段と都市に関する条件が追加されています。
以上の例から分かることとして、ベクトル検索をデータベースに組み込むことの利点のひとつは、まさにビジネスデータがそこに存在していることです。これにより、単なる類似検索だけではない、他のビジネスデータを組み合わせたより正確なマッチングが容易に可能となります。
まとめ
Oracle Database自体がベクトル検索やAIモデル構築に対応していて、開発者はSQL文で宣言的に利用できるという点が強みの1つです。
これにより、蓄積されている手持ちのデータを容易にAI活用に利用できる、という点は魅力に感じました。
データの蓄積から分析、活用まで全て1つのデータベースで完結できる上に、直感的なSQL文によりこれらツールが利用できるという点は、開発者視点でみたとき本来の課題にリソースを割くことができるようになり、大きなメリットになると感じます。