エンタープライズデータの力を活用するための生成AI:Amazon Kendra、LangChain、および大規模言語モデルによる洞察
エンタープライズデータの力を最大限に活用するためのAI生成技術:Amazon Kendra、LangChain、そして大規模言語モデルによる情報洞察
大型言語モデル(LLM)は、広範な知識を持つため、ほとんどのトピックに対して人間らしいテキストを生成することができます。しかし、大量のデータセットでのトレーニングは、特定のタスクに対しての有用性を制限しています。継続的な学習がない限り、これらのモデルは初期のトレーニング後に発生する新しいデータやトレンドを無視します。さらに、新しいLLMをトレーニングするコストは、多くの企業環境では困難です。しかし、Retrieval-Augmented Generation(RAG)を使用することで、モデルの回答を元の専門特化コンテンツとクロス参照することが可能です。これにより、新しいLLMモデルをトレーニングする必要がなくなります。
RAGは、LLMに外部知識を検索して統合する能力を与えることで、LLMの能力を高めます。事前にトレーニングされた知識だけに頼るのではなく、RAGはドキュメントやデータベースなどからデータを取得することができます。モデルはこの外部情報を生成されるテキストに巧みに統合します。コンテキストに関連するデータを提供することで、モデルは使用ケースに合わせた的確で最新の回答を提供することができます。知識の増強は、誤作動や不正確または無意味なテキストの発生確率も低下させます。RAGにより、基盤モデルは知識ベースが成長するにつれて進化する適応型の専門家となります。
本日は、MIT-0ライセンスの下でライセンスされた3つの生成型AIデモをご紹介します:
- 基盤LLMを使用したAmazon Kendra – Amazon Kendraの深い検索機能とLLMの広範な知識を統合し、多様な情報源から正確でコンテキストに即した複雑なクエリに回答します。
- 基盤LLMを使用した埋め込みモデル – 埋め込みの力(単語やフレーズの意味を捉える技術)とLLMの広範な知識ベースを統合しました。このシナジーにより、より正確なトピックモデリング、コンテンツ推薦、および意味検索の機能が可能になります。
- Foundation Models Pharma Ad Generator – 製薬業界向けの特化アプリケーションです。基盤モデルの生成能力を活用して、説得力のあるコンプライアンスを確保した製薬広告を作成します。
これらのデモは、AWSアカウントにシームレスに展開でき、AWSサービスを活用して最先端のLLM生成型AIの質問応答ボットとコンテンツ生成を作成するための基礎的な洞察とガイダンスを提供します。
この記事では、RAGとAmazon Kendraまたはカスタム埋め込みを組み合わせることで、これらの課題を乗り越え、自然言語クエリに対する洗練された回答を提供する方法について探求します。
ソリューションの概要
このソリューションを採用することで、以下の利点を得ることができます:
- 情報アクセスの向上 – RAGは、事前にトレーニングされたモデルの知識が古くなっているか不完全な場合に特に有用な、広範な外部ソースからの情報を取得することができます。
- スケーラビリティ – 利用可能なすべてのデータをモデルにトレーニングする代わりに、RAGはモデルが必要な情報をリアルタイムで取得することができます。これにより、新しいデータが利用可能になった場合には、モデル全体を再トレーニングする必要なく、それを検索データベースに追加することができます。
- メモリ効率 – LLMはパラメータを格納するために大量のメモリを必要とします。RAGのおかげで、モデルは詳細を全て覚えておく必要がないため、より小さくすることができます。必要な時にそれらを取得できます。
- 動的な知識の更新 – 一定の知識エンドポイントを持つ従来のモデルとは異なり、RAGの外部データベースは定期的に更新することができます。これにより、モデルは最新の情報にアクセスすることができます。検索機能は、異なるタスクに対して微調整することも可能です。たとえば、医療診断のタスクでは、医学のジャーナルからデータを取得することで、モデルが専門家の意見や関連情報を適切に収集できます。
- バイアスの軽減 – 適切に管理されたデータベースからのデータを取得できる能力により、偏りを最小限に抑えることができます。バランスの取れた公正な外部ソースを確保することができます。
Amazon Kendraと基盤LLMの統合について深入りする前に、必要なツールとシステム要件を備える必要があります。適切なセットアップを行うことは、デモのシームレスな展開への第一歩です。
前提条件
以下の前提条件を満たしている必要があります:
- AWSアカウントを持っていること。
- AWS Command Line Interface(AWS CLI)v2を持っていること。インストール手順については、最新バージョンのAWS CLIのインストールまたはアップデートを参照してください。
- Python 3.6以降。
- Node.js 18.x以降。
- Docker v20.10以降。
- この記事では、Pythonを使用してAWS Cloud Development Kit(AWS CDK)を使用します。ローカル環境を設定し、開発アカウントをブートストラップするためのAWS CDKのはじめ方に従ってください。
- このAWS CDKプロジェクトにはAmazon SageMakerインスタンス(ml.g5.48xlargeの2つ)が必要です。クォータの増加をリクエストする必要がある場合があります。
このチュートリアルで詳細に説明されているインフラストラクチャをローカルコンピュータから設定し、展開することは可能ですが、AWS Cloud9は便利な代替手段を提供しています。AWS CLI、AWS CDK、およびDockerなどのツールが予め装備されているAWS Cloud9は、デプロイメントワークステーションとして機能します。このサービスを使用するには、単に環境を設定してAWS Cloud9コンソールを利用します。
準備が整ったら、Amazon Kendraから基礎となるLLMの機能と能力について詳しく説明します。
基礎となるLLMを使用したAmazon Kendra
Amazon Kendraは、機械学習(ML)によって強化された先進的なエンタープライズ検索サービスで、すぐに使用可能な意味論的検索機能を提供します。自然言語処理(NLP)を利用して、Amazon Kendraは文書の内容とユーザーのクエリの意図を理解し、それをRAGベースのソリューションのコンテンツ検索ツールと位置づけます。Kendraの高精度な検索コンテンツをRAGのペイロードとして使用することで、より良いLLMの応答を得ることができます。このソリューションでAmazon Kendraを使用することにより、エンドユーザーのコンテンツアクセス許可に基づいて応答をフィルタリングしてパーソナライズされた検索も可能になります。
次の図は、RAGアプローチを使用した生成型AIアプリケーションのアーキテクチャを示しています。
ドキュメントは、Amazon Kendraによって処理およびインデックス化され、Amazon Simple Storage Service(Amazon S3)コネクタを介して行われます。顧客の要求とAmazon Kendraからのコンテキストデータは、Amazon Bedrock基礎モデルに送信されます。デモでは、AmazonのTitan、AI21のJurassic、およびAnthropicのClaudeモデルをAmazon Bedrockがサポートしています。会話の履歴は、Amazon DynamoDBに保存され、LLMが応答を生成するための追加のコンテキストが提供されます。
このデモはGitHubリポジトリで提供されています。AWSアカウントにデプロイするための展開手順は、readmeファイル内の指示に従ってください。
次の手順は、ユーザーが生成型AIアプリケーションと対話する際のプロセスを概説しています:
- ユーザーはAmazon Cognitoで認証されたWebアプリにログインします。
- ユーザーは1つ以上のドキュメントをAmazon S3にアップロードします。
- ユーザーはAmazon Kendraの同期ジョブを実行してS3ドキュメントをAmazon Kendraインデックスに注入します。
- ユーザーの質問は、Amazon API GatewayでホストされているセキュアなWebSocket APIを介してAWS Lambda関数でルーティングされます。
- AWS Lambda関数は、AI言語モデルによって駆動されるアプリケーションを作成するために設計された柔軟なツールであるLangChainフレームワークを活用し、ユーザーの質問をチャット履歴に基づいて再表現します。再表現された質問は、Retrieve APIを使用してAmazon Kendraに送信されます。応答として、Amazon Kendraインデックスが検索結果を表示し、企業のインジェストされたデータからの関連文書の抜粋が提供されます。
- ユーザーの質問およびインデックスから取得したデータは、LLMプロンプトのコンテキストとして送信されます。LLMからの応答はDynamoDB内のチャット履歴として保存されます。
- 最後に、LLMからの応答がユーザーに送信されます。
ドキュメントの索引付けワークフロー
以下はドキュメントの処理と索引付けの手順です:
- ユーザーはユーザーインターフェース(UI)を介してドキュメントを提出します。
- ドキュメントはAWS Amplify APIを使用してS3バケットに転送されます。
- Amazon KendraはAmazon Kendra S3コネクタを介してS3バケット内の新しいドキュメントを索引付けます。
利点
以下のリストはこのソリューションの利点を示しています:
- エンタープライズレベルの検索 – Amazon Kendraはエンタープライズ検索向けに設計されており、大量の構造化および非構造化データを持つ組織に適しています。
- 意味理解 – Amazon KendraのML機能により、キーワードの一致だけでなく深い意味理解に基づいた検索が行われます。
- 拡張性 – Amazon Kendraは大規模なデータソースを扱い、迅速で関連性の高い検索結果を提供します。
- 柔軟性 – 基本モデルはさまざまな文脈に基づいて回答を生成でき、システムが柔軟性を保ちます。
- 統合機能 – Amazon KendraはさまざまなAWSサービスやデータソースと統合することができ、異なる組織のニーズに適応できます。
基礎LLMを使用した埋め込みモデル
埋め込みは、テキスト、画像、音声、ドキュメントなど、さまざまなデータタイプの核心を表す数値ベクトルです。この表現は、データの固有の意味だけでなく、幅広い実践的なアプリケーションに適応するためにも変換されます。埋め込みモデルは、MLの一分野であり、単語やフレーズなどの複雑なデータを連続的なベクトル空間に変換します。これらのベクトルはデータ間の意味的な関連性を固有に捉え、より深い洞察を可能にします。
RAGは、変形子などの基礎モデルの強みと埋め込みの正確さを組み合わせ、関連情報を持つ広範なデータベースから適切な情報を検索します。クエリを受け取った後、システムは埋め込みを使用してデータの広範なコレクションから関連するセクションを特定し抽出します。基礎モデルは、この抽出した情報に基づいて文脈に合わせた的確な応答を作成します。データの検索と応答生成の完璧なシナジーにより、システムは幅広いデータベースに蓄積された豊富な知識を元に詳細な回答を提供します。
アーキテクチャレイアウトでは、UIの選択に基づいてユーザーはAmazon BedrockまたはAmazon SageMaker JumpStartファンデーションモデルに導かれます。ドキュメントは処理され、埋め込みモデルによってベクトルの埋め込みが生成されます。これらの埋め込みは、効率的な意味的検索を可能にするためにFAISSを使用してインデックス化されます。会話の履歴はDynamoDBに保存され、LLMが応答を作成するための文脈を豊かにします。
以下のダイアグラムはソリューションのアーキテクチャとワークフローを示しています。
このデモはGitHubリポジトリで提供されています。AWSアカウントに展開するための展開手順はreadmeファイル内に記載されています。
埋め込みモデル
埋め込みモデルの責任は以下の通りです:
- このモデルは、テキスト(ドキュメントやパッセージなど)を密なベクトル表現、一般的には埋め込みとして変換する責任があります。
- これらの埋め込みはテキストの意味的な意味を捉え、異なるテキストの間で効率的で意味のある比較を行うことができます。
- 埋め込みモデルは、基礎モデルと同じ大規模なコーパスでトレーニングすることも、特定のドメインに特化させることもできます。
Q&Aワークフロー
次の手順は、ドキュメントに関する質問応答のワークフローを説明しています:
- ユーザーはAmazon Cognitoによって認証されたWebアプリにログインします。
- ユーザーは1つ以上のドキュメントをAmazon S3にアップロードします。
- ドキュメントの転送後、S3イベント通知が発生し、Lambda関数が起動されます。Lambda関数は、SageMakerのエンベディングモデルエンドポイントを呼び出して、新しいドキュメントのエンベディングを生成します。エンベディングモデルは質問を密なベクトル表現(エンベディング)に変換します。生成されたベクトルファイルは、S3バケット内で安全に保存されます。
- FAISSリトリーバーは、この質問のエンベディングをデータベース内のすべてのドキュメントやパッセージのエンベディングと比較し、最も関連性の高いパッセージを見つけます。
- パッセージはユーザーの質問とともに基礎となるモデルに提供されます。Lambda関数はLangChainライブラリを使用してAmazon BedrockまたはSageMaker JumpStartエンドポイントに接続し、コンテキスト付きのクエリを実行します。
- LLMからの応答は、ユーザーのクエリ、タイムスタンプ、固有識別子、および質問のカテゴリなどの任意の識別子とともにDynamoDBに保存されます。質問と回答を別々のアイテムとして保存することにより、Lambda関数は質問が行われた時点に基づいてユーザーの対話履歴を簡単に再作成することができます。
- 最後に、応答はAPI Gateway WebSocket API統合レスポンスを介してHTTPsリクエストを通じてユーザーに送信されます。
利点
次のリストには、このソリューションの利点が説明されています:
- 意味理解 – エンベディングモデルにより、リトリーバーはキーワードの一致だけでなく、深い意味理解に基づいてパッセージを選択します。
- スケーラビリティ – エンベディングにより、大規模なドキュメントデータベースを高速に検索することが可能となります。
- 柔軟性 – 基礎となるモデルはさまざまなコンテキストに基づいて回答を生成することができ、システムが多目的であることを保証します。
- ドメイン適応性 – エンベディングモデルは特定のドメインに対してトレーニングや微調整することができ、さまざまなアプリケーションに適用することができます。
Foundation Models Pharma Ad Generator
現在の高速な製薬産業では、効率的かつローカライズされた広告がますます重要です。この問題に対処するために、革新的なソリューションが活用されており、源画像とPDFからローカライズされた製薬広告を生成するために生成AIの力を活用しています。広告の生成プロセスの迅速化に加えて、このアプローチは医療法務審査(MLR)プロセスを合理化します。MLRは、医療、法律、規制のチームが広告資料を精密に評価し、その正確性、科学的根拠、規制への適合性を保証する厳密な審査メカニズムです。従来のコンテンツ作成方法は手間がかかる場合があり、領域の適合性と関連性を確保するために手動の調整や詳細なレビューが必要となることがあります。しかし、生成AIの登場により、ローカルの観客と本当に共鳴する広告の作成を自動化することができます。厳格な基準とガイドラインを遵守しながら。
次の図は、ソリューションアーキテクチャを示しています。
アーキテクチャのレイアウトでは、ユーザーは選択したモデルと広告の設定に基づいて、Amazon Bedrockの基礎モデルにシームレスに案内されます。このシンプルなアプローチにより、新しい広告は所望の構成に完全に従って生成されます。プロセスの一環として、ドキュメントはAmazon Textractによって効率的に処理され、抽出されたテキストはDynamoDBに安全に保存されます。画像とテキストの生成にはモジュラーデザインが特徴であり、必要に応じて各コンポーネントを独立して再生成する柔軟性があります。
このデモはGitHubリポジトリで提供されています。AWSアカウントに展開するための展開手順については、readmeファイル内の展開手順を参照してください。
コンテンツ生成のワークフロー
以下の手順は、コンテンツ生成のプロセスを概説しています:
- ユーザーはドキュメント、ソース画像、広告配置、言語、画像スタイルを選択します。
- Amazon Cognito認証を介して、Webアプリケーションへの安全なアクセスが確保されます。
- WebアプリケーションのフロントエンドはAmplifyを介してホストされます。
- API Gatewayによって管理されるWebSocket APIは、ユーザーのリクエストを容易にします。これらのリクエストは、AWS Identity and Access Management(IAM)を介して認証されます。
- Amazon Bedrockとの統合には、次の手順が含まれます:
- ランバダ関数はLangChainライブラリを使用して、コンテキスト豊かなクエリを使用してAmazon Bedrockエンドポイントに接続します。
- テキストからテキストへの基盤モデルは、与えられたコンテキストと設定に基づいて文脈に適した広告を作成します。
- テキストから画像への基盤モデルは、ソース画像、選択したスタイル、場所に影響を受けたカスタム画像を作成します。
- ユーザーは、API Gateway WebSocket APIを介したHTTPSリクエストを介してレスポンスを受け取ります。
ドキュメントおよび画像処理のワークフロー
以下は、ドキュメントと画像の処理手順です:
- ユーザーは指定されたUIを介してアセットをアップロードします。
- Amplify APIはドキュメントをS3バケットに転送します。
- アセットがAmazon S3に転送された後、次のアクションのいずれかが行われます:
- ドキュメントの場合、Lambda関数はAmazon Textractを使用して広告生成のためにテキストを処理および抽出します。
- 画像の場合、Lambda関数はそれをベース64形式に変換し、元の画像から新しい画像を作成するために安定した拡散モデルに適した形式にします。
- 抽出されたテキストまたはベース64画像文字列は、DynamoDBに安全に保存されます。
メリット
次のリストは、このソリューションのメリットを説明しています:
- 効率性 – 生成AIの使用により、広告生成プロセスが大幅に加速され、手動の調整が不要になります。
- コンプライアンスの遵守 – このソリューションは、FDAのマーケティングガイドラインなど、特定のガイドラインと規制に準拠した広告の生成を保証します。
- コスト効果 – カスタム広告の作成を自動化することで、広告制作および修正に関連するコストを大幅に削減できます。
- MLRプロセスの効率化 – このソリューションは、MLRプロセスを簡素化し、摩擦ポイントを減らし、スムーズなレビューを確保します。
- 地域の共感 – 生成AIは、地域の観客に共感する広告を作成し、異なる地域での関連性と影響を確保します。
- 標準化 – このソリューションは、すべての生成された広告での一貫性を確保するために必要な基準とガイドラインを維持します。
- スケーラビリティ – AIによるアプローチは、大規模なソース画像およびPDFデータベースを処理できるため、大規模な広告生成に適しています。
- 人間の介入の削減 – 自動化により、人間の介入の必要性が減少し、エラーが最小限に抑えられ、一貫性が確保されます。
このチュートリアルのインフラストラクチャをローカルコンピュータからデプロイするか、AWS Cloud9をデプロイワークステーションとして使用することができます。 AWS Cloud9には、AWS CLI、AWS CDK、およびDockerが事前にロードされています。 AWS Cloud9を選択する場合は、環境を作成してくださいAWS Cloud9コンソールから。
クリーンアップ
不必要なコストを回避するために、AWS CloudFormationコンソールを介して作成されたすべてのインフラストラクチャをクリーンアップするか、ワークステーションで次のコマンドを実行してください:
$ cdk destroy --all.
また、Amazon Kendraインデックスを削除しても、元のドキュメントはストレージから削除されませんので、SageMakerコンソールから開始されたSageMakerエンドポイントを停止してください。
結論
LLMを代表とする生成AIは、情報にアクセスし生成する方法においてパラダイムシフトをもたらします。これらのモデルは非常に強力ですが、トレーニングデータの制約によって制約されることが多いです。RAGは、これらのモデルの広範な知識が関連性の高い現在の情報と一貫して結びつくようにすることで、この課題に取り組んでいます。
私たちのRAGベースのデモは、これを具体的に証明しています。これらのデモでは、Amazon Kendra、ベクトル埋め込み、およびLLMsのシームレスなシナジーが展示されており、情報が広範でありながら正確かつ迅速であるシステムを作り出しています。これらのデモを探求することで、事前学習済みの知識をRAGのダイナミックな機能と統合することで、信頼性のあるエンタープライズコンテンツ向けに適した出力が生成される変革的な潜在能力を直接体験することができます。
LLMによって駆動される生成AIは、情報洞察の新しい手段を開拓しますが、これらの洞察は信頼性があり、RAGアプローチを使用してエンタープライズコンテンツに制約されなければなりません。これらのRAGベースのデモを利用することで、正確かつ最新の洞察を提供します。これらの洞察の品質は、Amazon Kendraとベクトル埋め込みを使用することで可能となる意味的な関連性に依存しています。
生成AIのパワーをさらに探求し、活用する準備ができたら、次のステップを以下に示します:
- デモに参加する – 実践的な経験は非常に貴重です。機能を探索し、統合を理解し、インターフェースに慣れることができます。
- 知識を深める – 利用可能なリソースを活用しましょう。AWSは、AIの学習を支援するために詳細なドキュメント、チュートリアル、コミュニティサポートを提供しています。
- パイロットプロジェクトを始める – エンタープライズでの生成AIの小規模な導入から始めることを検討してください。これにより、特定のコンテキスト内でのシステムの実用性と適応性に関する洞察が得られます。
AWS上の生成AIアプリケーションの詳細については、以下を参照してください:
- Amazon SageMakerの基礎モデルを使用したクイズ自動生成を利用して、AWS認定試験の学習を加速させる
- Amazon SageMaker、Amazon OpenSearch Service、Streamlit、およびLangChainを使用して強力な質問応答ボットを構築する
- AWS CDKを使用してAmazon SageMaker JumpStartから生成AIモデルをデプロイする
- Amazon SageMaker JumpStartを使用してAWS上で生成AIを始める
- Amazon SageMaker JumpStartを使用して大規模言語モデルを使用したサーバーレスミーティング要約バックエンドを構築する
- Amazon Bedrockのエージェントを使用して基礎モデルを企業のデータソースに接続する
- Amazon Bedrockのエージェントを使用して基礎モデルがタスクを完了できるようにする
AIの領域は常に進化しています。最新の情報を把握し、好奇心を持ち続け、常に適応しイノベーションを行う準備を忘れずに。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles