第16回は、オラクルのチーフ・コーポレート・アーキテクトであるエドワード・スクリーベンのグループ取材の内容についてレポートします。なお、HeatWave GenAIを使ってSQLでLLMに問い合わせをしてテキストを生成したり、テキストを要約したりする方法については第15回の記事で解説しています。また、HeatWave GenAIでRAGを簡単に実現する方法などについても、今後の記事で解説予定です。
HeatWave GenAIが実現する新しい生成AIアプリケーション開発

エドワードはまず「生成AIアプリケーションの開発を簡単にするHeatWave GenAIには4つの特徴がある」として、ドキュメントに対するベクトル生成を自動化する「自動化されたインデータベース・ベクトル・ストア」、ドキュメントのベクトル化をノードを追加することでスケールできる「スケールアウト・ベクトル処理」、LLMをデータベースの中で動かせる「インデータベースLLM」、チャット形式でLLMとやり取りできる「HeatWaveチャット」を挙げた。HeatWaveには通常のRDBMSとしての機能やクエリーを高速化する機能、AutoMLなど、GenAI以外の機能もあるが、これらの機能は全て1つの環境で提供している。

「オラクル以外のデータベースを使用して生成AIアプリケーションを構築しようと思うと、非常に複雑なステップが必要になる」、「HeatWave GenAIの場合は非常にシンプルな操作でベクトル・ストアにドキュメントをロードしエンべディングを生成したり(ベクトル埋込みを作成したり)、RAGを使ったLLMへの問い合わせを実行したりできる。それぞれ1つのコマンドを実行するだけである」と、HeatWave GenAIを使うことで簡単に生成AIアプリケーションを開発できることを強調した。


そして、大手のオンライン教育サービスを提供している会社での導入事例が紹介された。このアプリケーションでは、ユーザーが受講したいコースの概要と受講可能な曜日&時間帯を入力する。すると、コース概要と関連の近いカリキュラムをベクトル検索により検出し、ユーザーが受講可能な日時に開催されるコースをスケジュール・テーブルからSQLにより絞り込み、その結果を表示することができる。カリキュラムの内容を格納しているベクトル・ストアとコーススケジュールを格納しているSQLデータベースが別のデータストアである場合、このようなアプリケーションを開発する時にはそれぞれの関連を手動で制御する必要があり、複雑になる。しかし、HeatWave GenAIであれば、1つの環境でベクトル・ストアもSQLデータベースも提供しているため、それぞれを組み合わせたアプリケーションを容易に開発できる。

ベクトル・ストアの作成は1ステップで高速に完了、ベクトル検索も正確で高速
「ユーザーから見ると、複雑な処理はブラック・ボックス化されているため、ベクトル・ストアの作成は1ステップで簡単に完了する。しかし、内部的にはオブジェクト・ストアからファイルを読み取り、これらのファイルを解析してセグメント化し、各セグメントからエンべディングを生成し、と複雑なことをやっている。これらの作業を最適にスケジューリングしているためパフォーマンスも非常にいい」と、ベクトル・ストアを簡単に作成できることや、エンべディングを生成する時のパフォーマンスの良さも強調した。


ベクトル・ストアへのデータの格納はHeatWaveのノード数を増やすことでスケールアウトでき、最大512ノードまで拡張できる。そして、223Mセグメント(2億2300万セグメント)のドキュメントを1.7時間でベクトル・ストアに格納できる処理性能を持っている。

また、オブジェクト・ストレージ上のデータが変更された時に、ベクトル・ストアの内容を自動的に更新することもできるという。

「HeatWaveのベクトル検索(類似性検索)が他のベクトル・ストアと違う点の1つに、HeatWaveのインメモリー処理とスケールアウト性能がある。他のベクトル・ストアでは、ベクトル検索を高速化するためにインデックスを使うことで精度が犠牲になっている場合がある。しかし、HeatWaveのベクトル検索はメモリ内でデータセット全体をスキャンし、高速に正確な結果を返すことができる」と、ベクトル検索の正確さとパフォーマンスの良さについても言及した。
