- Oracle Database
【Oracle AI Database 26ai】現在の統計に影響を与えず過去の統計情報をエクスポート!AS_OF_TIMESTAMPを試してみた
Oracle AI Database 26aiで追加されたAS_OF_TIMESTAMPを解説。現在の統計情報に影響を与えず、過去の任意時点の統計情報をエクスポートする手順と、性能劣化調査での活用方法を紹介します。
|
|
AI Vector Searchは、データをベクトル化し、データ同士の意味や特徴の近さに基づいて、類似したデータを検索できる機能です。オンプレミス環境とクラウド環境の両方で利用できます。
近年、生成AIの普及とともに、ベクトル検索という言葉を耳にする機会も増えたのではないでしょうか。しかし、具体的な仕組みがイメージしづらいという方も多いように感じます。 そこで本記事では、ベクトル検索の基本概念を解説した上で、データベース内でベクトル検索を実現する「Oracle AI Database 26ai」の新機能「AI Vector Search」についてご紹介します。
本記事は、以下のステップで解説します。
Index
「ベクトル検索」と聞くと、どのようなイメージを持ちますか。ベクトル検索を理解するうえで、比較対象としてよく挙げられるのが、従来の「キーワード検索」です。
この2つの検索方法は何が異なるのでしょうか。そして、どのように使い分ければいいのでしょうか。
キーワード検索とは、文字列や単語の一致を基準に検索する方法です。
SQLでは、SELECT文のWHERE句で条件を指定して絞り込む検索が、キーワード検索に近い考え方です。
例えば、”Apple” という単語で検索した場合、検索対象に ”Apple” という文字列が存在すればヒットします。
一方で、”りんご”のような言い換えや、表記ゆれには対応しにくいのが特徴です。
このため、キーワード検索は厳密な条件で情報を探したい場合に適しています。
|
|
ベクトル検索とは、文字列の一致ではなく、意味の近さを基準に検索する方法です。
例えば、”Fruits” で検索した場合、検索対象に”Fruits”という文字列が含まれていなくても ”Apple” や “Banana” のように意味の近いデータがヒットする可能性があります。意味の近いデータがヒットし、気づきや示唆を得られる期待があります。ただし厳密性は伴わないため、意図しないデータがヒットする可能性も意図するデータがヒットしない可能性もあります。
このため、ベクトル検索は言い換えや関連語も含めて、類似した情報を探したい場合に適しています。
|
|
ここからは、ベクトル検索が内部でどのように「意味」を捉え、類似するものを探しているのか、具体的な仕組みを解説します。
|
|
このように、ベクトル検索を行うためには、検索対象のデータをあらかじめ埋め込みモデルでベクトル化しておく必要があります。
ここからは、ベクトルとは何かを説明し、これらのベクトルを使ってどのようにベクトル検索を行うのかを解説します。
ベクトルとは、意味や特徴を数値の配列で表したものです。これを図で表すと、空間上の点として捉えられます。
下の図をご覧ください。
この図は、埋め込み後のベクトルが2次元だった場合の例です。(本来は数百次元、数千次元になりますが、説明の都合上、2次元の場合で説明します)
埋め込みモデルは単語の意味や特徴を学習しているため、意味や特徴が近い単語ほど、対応するベクトルの距離も近くなる傾向があります。 下の図にある”Apple”と”Banana ”は意味的に近いため、対応するベクトルの距離は近くなります。一方、”Apple”と”Tennis”は意味的に遠いため、対応するベクトルの距離は遠くなります。
つまりベクトル検索では、単語の意味や特徴の近さを点と点の距離として数学的に処理し、指定したベクトルと距離の近いベクトルを検索することで、類似検索を実現しています。
|
|
ベクトル検索をする際のデータベースの構成は、大きく以下の二つのパターンがあります。
これらの構成の概要、課題を確認し、Oracle AI Database 26aiでベクトル検索を使うメリットを解説します。
ベクトル検索を実現するための代表的な構成のひとつが、業務データなどを持つリレーショナルデータベースとは別に、ベクトルを格納・検索するためのベクトルデータベースを用意する構成です。
この構成では、以下のステップでデータのベクトル化を行います。
1.リレーショナルデータベースのデータをデータベース外に持ち出す
2.外部の埋め込みモデルを呼び出しベクトル化する
3.ベクトル化されたデータをベクトルデータベースに格納する
そのため、以下のような課題を考慮する必要があります。
リレーショナルデータベースのみでベクトル検索ができる構成を組むには、リレーショナルデータベース自体にベクトル化およびベクトル検索の機能が備わっている必要があります。
この構成では、以下のステップでデータのベクトル化を行うことが多いです。
1.リレーショナルデータベース内のデータを埋め込みモデル(外部API)を使用してベクトル化する
2.ベクトル化したデータをそのままリレーショナルデータベースに格納する
また、SQLでは専用の関数を使用してベクトル検索を行うため、構文が複雑になりがちです。そして、ベクトル検索に使用する埋め込みモデルは外部APIを使用するものも多く、その場合は結局データを外部に持ち出す必要があります。
まとめると、この構成であっても以下のような課題を考慮する必要があります。
Oracle AI Databaseの新機能である「AI Vector Search」は、リレーショナルデータベースのみの構成でベクトル検索ができます。そのため、リレーショナルデータベースとベクトルデータベースに分ける構成と比較して、データ同期、整合性管理の負担を軽減しやすくなります。
また、AI Vector Searchでは、埋め込みモデルをデータベース内にロードし、そのモデルを用いてデータベース内でベクトル化できます。
ベクトル化にあたって外部アプリケーションは必要なく、データベース内でベクトル化まで完結できる構成が組めます。このように、ベクトル化の過程でデータを外部に持ち出さずに処理できる構成を取れることはセキュリティ面でも大きな強みになります。
さらに、ベクトル検索を行う際のSQLの複雑さの問題も解決できる可能性があります。Oracle AI Database 26aiにはSELECT AI(生成AIモデルを使用して自然言語からSQLを生成できる機能)が存在するため、外部アプリケーションを使用することなく、自然言語でのベクトル検索が実現可能になります。
まとめると、Oracle AI Database 26aiのAI Vector Searchには以下のメリットがあります。
本記事では、一般的なベクトル検索の解説と、なぜOracle AI Database 26aiの新機能AI Vector Searchを使うのが良いかについてご説明しました。少しでもベクトル検索の理解につながりましたら幸いです。
最後までお読みいただき、ありがとうございました!
|
|
2025年に新卒入社。
現在はOracle AI Databaseのフィールドエンジニアを担当。AI分野に興味を持ち、AI×Databaseの可能性に注目している。 趣味はゴルフと麻雀。インドアなのかアウトドア派なのかわからない。...show more
|
■本記事の内容について
本記事に記載されている製品およびサービス、定義及び条件は、特段の記載のない限り本記事執筆時点のものであり、予告なく変更になる可能性があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java及びMySQLは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
Oracle AI Database 26aiで追加されたAS_OF_TIMESTAMPを解説。現在の統計情報に影響を与えず、過去の任意時点の統計情報をエクスポートする手順と、性能劣化調査での活用方法を紹介します。
Oracle AI Database 26aiのSelect AI Agentをオンプレミス環境で検証。アラートログを分析し、参照ナレッジに基づく対処案を提示する、DBAのトラブルシュート支援の仕組みを解説します。
OCIのOracle AI DatabaseをAWSから利用できる「Oracle AI Database@AWS」について、サービス概要と導入メリットをわかりやすく解説します。マルチクラウド環境でのオラクル活用に関心のある方は、ぜひご活用ください。