LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

Facebook X Instagram
ラックピープル | 

DB内で完結する生成AI!HeatWave GenAIでRAGを試してみた

AIエンジニアリンググループの加藤です。

近年、企業での生成AI活用の取り組みが進んでいます。特に、検索拡張生成(Retrieval-Augmented Generation:以下、RAG)は、社内データを有効活用するための技術として、多くの企業で導入が進んでいます。ただ、従来のRAGを実現するためには、いくつかの課題があります。

例えば、元となるデータの前処理やベクトルストアへの埋め込みは非常に手間がかかり、精度を高めるためには高度な専門知識が必要です。また、チャットインターフェースも含めたインフラ構築も難しく、RAGを効率的に運用するためには様々なクラウドリソースも必要になります。

しかし、Oracleの「HeatWave GenAI」を使用することで、それらの課題を解決できる可能性があります。HeatWave GenAIではRAGを実現するためのステップをデータベース内のみで完結させることができます。本記事ではHeatWave GenAIについて実際の検証も交えて解説します。

Oracle HeatWave GenAIとは

OracleのHeatWave GenAIは、データベース内に大規模言語モデル(Large Language Models:以下、LLM)を統合し、生成AIを活用したアプリケーションを簡単に開発できるプラットフォームです。HeatWave GenAIには、RAGを簡単に実現するための機能が多く組み込まれています。

HeatWave GenAIの主な特徴は、以下の4つです。

データベース内でのLLM実行

通常、AIを活用する際には、データを外部のAIシステムに送る必要があります。しかし、HeatWave GenAIでは、データベース自体にLLMを組み込んでいます。これにより、データを外部に移動することなく、データベース内で直接AI機能を利用できます。

データベース内で標準で使用できるLLMは、自然な文章生成が得意な「Llama」と、高速で軽量な「Mistral」の2種類です。どちらもオープンな大規模言語モデルで、用途に応じた使い分けが可能です。

高速な検索や情報抽出を可能にするHeatWaveベクトルストア

ベクトルストアとは、テキストや画像などのデータを数値化して保存する仕組みです。HeatWave GenAIは、このベクトルストアをデータベース内に自動的に作成します。これにより、非構造化データを効率的に管理し、高速な検索や情報抽出が可能になります。

HeatWaveベクトルストアでは、.pdf、.txt、.pptx、.docx、.htmlファイル形式に対応しており、最大100MBまでのファイルを埋め込むことが可能です。

柔軟で高速なベクトル処理

HeatWaveは、データをメモリ上で処理する「インメモリ技術」と、必要に応じて処理能力を拡張できる「スケールアウト・アーキテクチャ」を採用しています。これにより、大量のデータに対しても高速なベクトル処理が可能です。

さらに、「VECTORデータ型」をサポートしており、専門的なプログラミング知識がなくても、標準的なSQL言語でベクトルデータの作成や管理が行えます。

自然言語で対話可能なHeatWave Chat

HeatWave Chatは、データベース内の情報に対して自然言語で対話できる機能です。これにより、専門的なクエリ言語を知らなくても、日常的な言葉でデータベースに質問し、必要な情報を取得できます。例えば、「先月の売上トップ5の商品は?」といった質問を直接データベースに投げかけることができます。

これらの機能を用いて簡易的なRAGを実装し、データに基づいた回答を得られるのかを検証していきます。

HeatWave Chatを用いた情報検索の実施と結果

今回は「社内規定の検索」をテストケースとして検証します。架空の社内規定を用意し、それに基づいた応答が行えるかを見ていきます。

テストデータ

テストデータとして架空の社内FAQと社内規定をそれぞれPDFとDOCX形式で用意しました。

hwtest架空FAQ.pdf
hwtest架空FAQ.pdf
hwtest架空規定集.docx
hwtest架空規定集.docx

実行環境

テストデータの作成ができたら、OCI上に検証に必要なリソースを作成します。

従来のRAGを実現するためには、LLMを呼び出すAIサービスとベクトルストアなど機能に応じてリソースが分かれているため、多くのリソースが必要でした。ただ、HeatWave GenAIを使用することで以下のような最小限のリソースでRAGを実現できます。

HeatWave Chatを用いた「社内規定の検索」の検証環境

HeatWave MySQL

今回の主役となるデータベースです。GenAI機能を活用するためには前提条件として以下の3つが必要です。

  • データベースのバージョン:9.0.0-革新以上
  • HeatWaveクラスタおよびHeatWaveレイクハウスの有効化
  • HeatWaveクラスタのシェイプ:HeatWave.512GB

オブジェクトストレージ

非構造化ドキュメントを格納するためのストレージです。作成したテストデータをアップロードします。

オブジェクトストレージに作成したテストデータをアップロード

ベクトルストアへの埋め込み

OCIリソースの作成ができたらデータベースへ接続し、ドキュメントを読み込み、指定したテーブルにベクトル化します。従来のRAGではデータの前処理のプロセスが必要ですが、HeatWave GenAIでは、後述するコマンド1つで埋め込みプロセスを自動で行えます。

従来のRAGとHeatWave GenAIにおけるベクトルストアへの埋め込みプロセスの違い

今回はインターフェースとしてVSCodeの拡張機能であるMySQL Shell for VSCodeを使用します。

  • ベクトル埋め込みを行うコマンド
    call sys.vector_store_load('事前承認リクエストURI/ドキュメント名', '{"table_name": "任意のテーブル名"}');

hwtest架空FAQ.pdfをhwtest_simplefaqという名前のテーブルに埋め込みます。上記コマンド実行後に、テーブルを確認するとセグメント化され、ベクトル型のフィールドを持っていることが分かります。

hwtest_simplefaqというテーブルを確認するとセグメント化され、ベクトル型のフィールドを持っていることが確認できる

検証結果

それではHeatWave Chatを用いて自然言語で質問します。「¥chat」コマンドでチャットモードに切り替えます。

sql> \chat

チャットモデルはLlama3を使用しました。またHeatWave Chatは日本語ネイティブではないので、今回は英語で質問をします。まずはhwtest架空FAQ.pdfにある「休日出勤の申請方法」について尋ねます。

HeatWave Chatに英語で「休日出勤の申請方法」について尋ねる
hwtest架空FAQ.pdfを埋め込んだsimplefaqテーブルを参照して、正しい回答を返したことが確認できる

hwtest架空FAQ.pdfを埋め込んだsimplefaqテーブルを参照して、正しい回答を返したことが確認できます。

次に回答の精度を確認するために、質問を簡単な方からレベル1、レベル2、レベル3で設けました。同じように英語で質問します。正しい回答が返ってきたかどうかを正解/不正解で判定しています。

hwtest架空FAQ.pdfの質問に対して正しい回答が返ってきたかどうか判定する

検証結果のまとめ

FAQに対する質問には精度良く回答が得られましたが、複雑な質問については正確に応答できない場合もありました。これにはチャットが完全に日本語対応していないことと、埋め込み処理があらかじめ細かく調整されていない点が影響していると考えられます。

HeatWave GenAIでは、ドキュメントをそのままベクトル化する仕組みになっており、「どのように分割・抽出するか」の設計はシンプルなプリセットに依存しています。より高度な応答には、チャンク戦略や重み付けといったカスタマイズ性の強化が今後の課題となりそうです。

それでも、検証全体を通してHeatWave GenAIのメリットを再確認できました。

データの前処理不要で、コマンド1つでベクトル化できる

従来のRAGにおいては、ドキュメントの整形や分割などのデータの前処理を手動でする必要がありますが、HeatWave GenAIではコマンド1つでこれらのプロセスを省略し、データをそのままベクトルストアに埋め込めるため、効率的に活用できます。この手間が省けることで、AI導入のハードルが大きく下がり、専門的な知識がなくても簡単にRAGを活用できました。

RAGを用いたLLMとのチャットがデータベース1つで完結する

データベース内で生成AI機能を直接活用できるため、データ移動やセキュリティリスクを減らすことができ、より安全で効率的な運用が可能になります。実際に、自然言語での質問に対して、FAQ対応は問題なく行えました。

現時点では、日本語対応や複雑な質問への対応に限界があるものの、HeatWave GenAIは非常に高いポテンシャルを持つプラットフォームであることが確認できました。今後のアップデートにより、対応言語の拡充や埋め込み処理の柔軟性が向上すれば、さらに幅広い場面での活用が期待できるでしょう。

さいごに

今回は行いませんでしたが、HeatWave GenAIではすでにデータベース上に存在するテーブルをベクトル化することも可能です。つまり、ドキュメントだけでなく、既存のテーブルデータをデータソースとしてRAGを実現できるのです。例えば、既存の業務テーブルをそのままベクトル化し、問い合わせ内容に応じてデータベース内の構造化データ・非構造化データの両方を横断的に活用するようなユースケースも考えられます。

また、HeatWaveはOCI上だけでなく、AzureやAWSといった主要なクラウドプラットフォーム上でも利用可能なため、マルチクラウド環境における柔軟な構成や既存システムとの連携も実現しやすくなっています。これにより、OCIに依存せず、既存のクラウド戦略に応じた活用が可能です。

私たちは、AI技術を活用したソリューションを提供し、お客様の業務改善をサポートしています。HeatWave GenAIやその他AI技術にご興味のある方は、ぜひお気軽にご相談ください。

プロフィール

加藤 央彬

加藤 央彬
お客様向けに生成AIの活用支援を行っています。G検定を保有。今後は生成AIの利活用に関する情報発信を行い、最新技術の普及と促進に貢献します。

この記事は役に立ちましたか?

はい いいえ

page top