ノート:

OCI Generative AIによる自然言語でのPDF文書の分析

はじめに

Oracle Cloud Infrastructure Generative AI(OCI Generative AI)は、企業や開発者が最先端の言語モデルを使用してインテリジェントなアプリケーションを作成できるようにする、高度な生成人工知能ソリューションです。このソリューションは、大規模言語モデル(LLM)などの強力なテクノロジに基づいて、複雑なタスクの自動化を可能にし、自然言語でのやりとりを通じてプロセスをより迅速かつ効率的に、アクセスできるようにします。

OCI Generative AIの最も影響力のあるアプリケーションの1つは、PDFドキュメント分析です。企業は、契約、財務レポート、技術マニュアル、研究論文など、大量の文書を頻繁に処理します。これらのファイルの情報を手動で検索すると、時間がかかり、エラーが発生しやすくなります。

生成人工知能を使用することで、情報を瞬時に正確に抽出できるため、ユーザーは自然言語で質問を策定するだけで複雑なドキュメントに問い合わせることができます。つまり、ページ全体を読み取って、契約内の特定の条項またはレポート内の関連データ・ポイントを検索するかわりに、分析されたコンテンツに基づいて回答をすばやく返すモデルを尋ねることもできます。

OCI Generative AIは、情報の取得だけでなく、長いドキュメントの要約、コンテンツの比較、情報の分類、戦略的インサイトの生成にも使用できます。これらの機能により、法律、財務、ヘルスケア、エンジニアリングなどのさまざまな分野でテクノロジーが不可欠になり、意思決定を最適化し、生産性を高めることができます。

このテクノロジーをOracle AIサービス、OCI Data Science、ドキュメント処理のためのAPIなどのツールと統合することで、企業はデータのやり取り方法を完全に変革するインテリジェントなソリューションを構築し、情報の取得を迅速かつ効果的に行うことができます。

前提条件

タスク1: Pythonパッケージのインストール

Pythonコードには、OCI生成AIを使用するための特定のライブラリが必要です。次のコマンドを実行して、必要なPythonパッケージをインストールします。

pip install -r requirements.txt

タスク2: Pythonコードの理解

これは、Oracle SOA SuiteおよびOracle Integrationの機能を問い合せるためのOCI生成AIのデモです。どちらのツールも現在、ハイブリッド統合戦略として使用されており、クラウド環境とオンプレミス環境の両方で運用されています。

これらのツールは機能とプロセスを共有しているため、このコードは、各ツールで同じ統合アプローチを実装する方法を理解するのに役立ちます。さらに、ユーザーは共通の特性と違いを調べることができます。

ここからPythonコードをダウンロードします:

PDFドキュメントは次の場所にあります。

Manualsという名前のフォルダを作成し、これらのPDFをそこに移動します。

これで、3つのオプションを選択してドキュメントを処理できるようになりました。次のことを考えられます。

そのため、次のオプションがあります:

固定サイズのチャンク化:ドキュメントを処理するより高速な代替方法です。欲しいものを手に入れるには十分です。

セマンティック・チャンク化:このプロセスは、固定サイズのチャンク化よりも遅くなりますが、より質の高いチャンク化を実現します。

GraphRAGを使用したセマンティック・チャンク:チャンク・テキストおよびナレッジ・グラフが編成されるため、より正確なメソッドが提供されます。

固定サイズのチャンク化

oci_genai_llm_context_fast.pyからコードをダウンロードします。

セマンティック・チャンキング

oci_genai_llm_context.pyからコードをダウンロードします。

GraphRAGを使用したセマンティック・チャンク化

oci_genai_llm_graphrag.pyからコードをダウンロードします。

GraphRAG (Graph-Augmented Retrieval-Augmented Generation)は、従来のベクトルベースの取得と構造化されたナレッジ・グラフを組み合せた高度なAIアーキテクチャです。標準RAGパイプラインでは、言語モデルがベクトル・データベース(FAISSなど)からセマンティック類似度を使用して関連するドキュメント・チャンクを取得します。ただし、ベクトルベースの取得は構造化されていない方法で動作し、埋め込みや距離メトリックのみに依存します。これは、より深いコンテキスト的または関係的な意味を欠くことがあります。

GraphRAGは、エンティティ、概念、コンポーネントおよびその関係がノードおよびエッジとして明示的に表されるナレッジ・グラフ・レイヤーを導入することで、このプロセスを強化します。このグラフベースのcontextにより、言語モデルは、ベクトル類似性のみでは取得できない関係、階層および依存関係を推論できます。

ノート:

Neo4j使用方法:

この実装では、デモンストレーションおよびプロトタイピングの目的で、Neo4jを組込みナレッジ・グラフ・データベースとして使用します。Neo4jは、開発、テストおよび中小から中規模のワークロードに適した強力で柔軟なグラフ・データベースですが、特に高可用性、スケーラビリティおよび高度なセキュリティ・コンプライアンスを必要とする環境では、エンタープライズ・グレード、ミッションクリティカル、または非常にセキュアなワークロードの要件を満たしていない可能性があります。

本番環境およびエンタープライズ・シナリオでは、次の機能を提供するOracle Databaseグラフ機能を利用することをお薦めします。

Oracle Databaseをグラフ・ワークロードに使用することで、組織は構造化データ、半構造化データ、グラフ・データを単一のセキュアでスケーラブルなエンタープライズ・プラットフォームに統合できます。

タスク3: Oracle IntegrationおよびOracle SOA Suiteコンテンツの問合せの実行

次のコマンドを実行します

FOR FIXED CHUNKING TECHNIQUE (MORE FASTER METHOD)
python oci_genai_llm_context_fast.py --device="mps" --gpu_name="M2Max GPU 32 Cores"
FOR SEMANTIC CHUNKING TECHNIQUE
python oci_genai_llm_context.py --device="mps" --gpu_name="M2Max GPU 32 Cores"
FOR SEMANTIC CHUNKING COMBINED WITH GRAPHRAG TECHNIQUE
python oci_genai_llm_graphrag.py --device="mps" --gpu_name="M2Max GPU 32 Cores"

ノート: --deviceおよび--gpu_nameパラメータを使用すると、マシンにGPUがある場合はGPUを使用して、Pythonでの処理を高速化できます。このコードはローカル・モデルでも使用できます。

提供されるコンテキストでは、Oracle SOA SuiteとOracle Integrationが区別され、次の点を考慮してコードをテストできます。

次のコンテキストを定義することで、ドキュメントを正しく解釈するのに役立ちます。

img_7.png

次の図は、Oracle SOA SuiteとOracle Integrationの比較の例を示しています。

img.png

次のステップ

このコードは、インテリジェントなPDF分析のためのOCI生成AIの適用を示しています。これにより、ユーザーはセマンティック検索と生成AIモデルを使用して大量のドキュメントを効率的に問い合せて、正確な自然言語レスポンスを生成できます。

このアプローチは、法律、コンプライアンス、テクニカル・サポート、学術研究など、さまざまな分野に適用できるため、情報の取得がはるかに迅速でスマートになります。

確認

その他の学習リソース

docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。