このページの本文へ

「Oracle CloudWorld 2023」レポート

ホアン・ロアイザ氏、基調講演でデータ/アプリケーション開発の将来像を語る

生成AI時代の「Oracle DB 23c」はどう変わったか、OCWで新機能発表

2023年10月10日 07時30分更新

文● 大塚昭彦/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

コンテンツの類似性、関連性に基づく検索「AI Vector Search」

 企業向け生成AIサービス「OCI Generative AI」が発表されたことはすでにお伝えしたが、生成AIというテーマに関連して、Oracle DB 23cでも新機能「AI Vector Search」の追加計画が発表されている。ロアイザ氏の基調講演では同機能も紹介された。

Oracle DB 23cに「AI Vector Search」機能を追加する計画を発表(現在は限定プレビューリリース)

 そもそも「ベクトル(ベクター)」とは何か。ここで言うベクトルとは、画像や動画、文書などのセマンティックコンテンツが、それぞれに持つ「特徴」を表すデータ(数列)のことである。また、どのような観点から特徴を示すのかを「次元(dimension)」と呼ぶ。

 ベクトルが重要なのは、そのデータをセマンティックコンテンツに付与することで、コンテンツどうしの「類似性」や「関連性」が簡単に測れるようになるからだ。たとえば「2階建/レンガ外壁/煙突あり」という3次元のベクトルが付与された住宅は、「2階建/木造外壁/煙突なし」住宅よりも「1階建/レンガ外壁/煙突あり」住宅に近いと判断できる。

 さらに、参照する次元数(特徴の種類)を増やすほど、より詳しく類似性を測れることになる。ロアイザ氏は「現在では人手ではなく機械学習アルゴリズムによってベクトルを付与するようになっており、数百次元から数千次元に及ぶのが普通だ」と説明する。

ロアイザ氏は一例として、住宅の写真を示した。屋根の種類、装飾、階数、建築素材といった多様な観点(次元、dimension)からベクトルを付与することで、その住宅と別の住宅との類似性(近い=類似性が高い、遠い=類似性が低い)が簡単に計測できる

 Oracle DB 23cでは、ネイティブのベクトルデータ格納、そしてベクトル検索(類似性に基づくクエリ)の機能が追加された。これにより、たとえば住宅販売アプリで「この住宅に似た住宅を探す」といった検索機能、レコメンド機能が実現できるようになる。

 ロアイザ氏が特に強調したのが、エンタープライズのユースケースにおいてはビジネスデータとベクトルデータを同時に扱うことが多く、Oracle DBがその両方を扱えることで生まれる利便性だ。住宅販売アプリ用DBを例に挙げると、前述した住宅外観の特徴だけでなく、「販売価格」や「地域」といったビジネスデータ(属性データ)と組み合わせて検索できたほうが、ユーザーの使い勝手も良い。

 「これがたった3行のクエリで実現できる。アプリ開発者は機械学習について詳しく学ぶ必要もなく、DBについても最小限のことだけ知っていればよい」(ロアイザ氏)

Oracle DB 23cではベクトルデータを組み込んだテーブルを作成できる。また「価格」「地域」などのビジネスデータを組み合わせたクエリも可能

 なお、ベクトル検索における処理パフォーマンスを改善するために、Oracle DBではベクトルインデックスの分割、「Oracle RAC」ノードを使った並列処理(およびOLTP処理との隔離)、「Smart Exadata Storage」への透過的オフロードに対応していると話した。これにより、通常は数ミリ秒でのレスポンスを可能にしているという。

 DBサーバーテクノロジー担当EVPのメンデルソン氏によると、AI Vector Searchの一般提供開始は来年リリースのバージョン(23.4c)になる予定だ。

“優秀な新卒社員=生成AI”の限界をカバーするベクトル検索とRAG

 さて、このようにデータどうしの類似性/関連性を測ることができるベクトル検索が、生成AIの時代にどう役立つのだろうか。ロアイザ氏は、ベクトル検索と生成AIを組み合わせることで「エンドユーザーがDBシステムに対して、自然言語で質問できるようになる」と説明する。

 「ユーザーの質問を、AI Vector SearchがDB内にある関連性の高いデータにマッピングする。そして、質問と関連データを生成AIに渡して(自然言語による)回答を生成する」(ロアイザ氏)

ベクトル検索機能と生成AIを組み合わせることで、エンドユーザーの自然言語による質問の「意図」をくみ取った回答ができると説明

 わかりづらい内容であるため、ロアイザ氏はここでも具体例を挙げて説明した。コールセンターで生成AI(LLM)を活用し、顧客からの問い合わせに自動応答させるというユースケースだ。

 まずロアイザ氏は、生成AIとは「優秀な新卒社員のような存在」だと表現する。一般的な知識については詳しいものの、自社製品や顧客の課題といった知識は乏しく、そのままでは顧客からの問い合わせにうまく答えることができない。自社製品の情報、過去の問い合わせ回答といったデータも与えて、生成AIの応答能力を「拡張(augmented)」させる必要がある。

 ここでベクトル型のDBとベクトル検索機能が活用される。自然言語による問い合わせに基づき、DBから関連性の高いデータを抽出して生成AIに与える。生成AIに外部から情報を与えてより適切な回答をさせるこの手法を「RAG(Retrieval Augmented Generation)」と呼ぶが、ここにベクトル検索機能が役立つわけだ。

 「ベクトルDBは、自社独自の情報を与えて生成AIの能力を拡張する。たとえば回答のために(顧客の)プライベートな情報が必要であっても、(自社のDBから入手したうえで)的確な回答が生成できる」(ロアイザ氏)

ベクトル検索機能により、自社保有のデータを与えて生成AIの能力を拡張するRAGの実現が容易になる

 そのほかロアイザ氏は、将来的に考えられる生成AIのユースケースとして、アプリ開発者が必要なデータを参照するSQLクエリを自然言語で指示し生成させたり、ローコード開発ツール「Oracle APEX」でアプリの概要を自然言語で伝えてブループリント(シンプルなアプリのひな形)を生成させたりすることができるようになるだろうと語った。

 なお、今回のOCW会期中には「MySQL HeatWave」においてもベクトルデータの格納や検索ができる機能が追加されたことが発表された(プライベートプレビュー)。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード