Amazon Bedrock とカスタムデータの部屋
で 前のブログでは、スマートで直感的なアプリを簡単に作成できることを説明しました。 Amazon Bedrock は、大手 AI スタートアップ企業と Amazon の高性能な基盤モデル (FM) を利用できるフルマネージド サービスです。
2024 年 XNUMX 月現在、Amazon Bedrock には次の基盤モデルが含まれています。
- アマゾンタイタン
- アントロピック・クロード
- Cohere コマンドと埋め込み
- AI21 ラボ ジュラシック
- メタラマ 2
- ミストラルAI
- 安定性AI安定拡散XL
リストは定期的に更新され、新しいモデルや改良されたモデルが追加されます。
基盤モデルに加えて、AWSはBedrockの「ツールボックス」の一部としてAmazon Bedrockに追加の概念を追加しました。.'. 最新の機能により、ナレッジ ベースとエージェントの助けを借りて、基盤モデルでカスタム データを使用できるようになります。
もちろん、 Mendix 私たちの Amazon ベッドロックコネクタ 最新の機能をすべて利用し、Amazon Bedrock の新機能を活用できます。このため、ナレッジベースとエージェントに関連するいくつかの新しい操作と例を含むコネクタの 2.3.0 バージョンをリリースしました。
当学校区の Mendix Amazon Bedrock コネクタと新しい操作の順序
次のセクションでは、カスタム データを使用して FM をカスタマイズするさまざまなアプローチについて説明します。
まず、さまざまなデータソースからデータを取得し、ナレッジベースを使用してプロンプトを充実させ、より関連性が高く正確な応答を提供する手法である Retrieval Augmented Generation (RAG) について説明します。Amazon Bedrock エージェントを使用する場合と使用しない場合の両方で、このような Amazon Bedrock ナレッジベースを FM で使用する方法を説明します。
次はプロンプトエンジニアリングの紹介です。プロンプトエンジニアリングでは、生成的な行動を導く高品質のプロンプトを作成します。 AIモデル 意味のある一貫した回答を生み出すために、このツールがあなたのビジネスにどのように役立つかを学びます。 Mendix アプリケーション。
ナレッジベースの設定方法と使用方法
ナレッジ ベースはデータに関するものです。新しいデータをデータ ソースに取り込む方法と、埋め込みモデルと宛先ベクトル データベースを使用する方法について説明します。
プロセスを実行する場合は、次のものにアクセスできることを確認してください。
- Amazonコンソール
- Amazon Bedrock (2024 年 1 月現在、ナレッジベースとエージェントは us-east-2 および us-west-XNUMX のリージョンで利用可能です)
- アマゾンS3
必ずデータファイルも S3 に追加してください。次の形式がサポートされています。
- プレーンテキスト (.txt)
- マークダウン (.md)
- ハイパーテキスト マークアップ言語 (.html)
- Microsoft Word文書(.doc/.docx)
- カンマ区切り値(.csv)
- Microsoft Excel スプレッドシート (.xls/.xlsx)
- ポータブルドキュメントフォーマット(.pdf)
- あなたにログインする AWSコンソール Amazon Bedrock に移動します。

2. 下のサイドメニューで 編成 セクション、選択 知識ベース, [OK]をクリックします 知識ベースを作成する.

3. 上のスクリーンショットのようにナレッジベースに名前を付けて、 次へ他のフィールドはデフォルトのままにしておきます。
4. S選出 S3バケツと a データ file以下に示すように。

5. S選出する 埋め込みモデル それ 使いたい とn 新しいベクターデータベースを作成する, または既存のものを使用する.

6. 新しいデータベースを確認して作成します。

ナレッジベースの使用方法をデモンストレーションするには Mendix このアプリでは、取得アクションと取得および生成アクションの2つの例を使用します。この手順に従うには、 Mendix アプリと Mendix Amazon Bedrock コネクタ。
別の方法として、 Amazon Bedrock ショーケース アプリでは、Amazon Bedrock Connector を使用してさまざまな基盤モデルを試し、Retrieval Augmented Generation (RAG) を使用してデータに合わせてカスタマイズする方法を紹介しています。また、このアプリでは、独自のデータソースを使用してタスクを実行するエージェントを構築する方法も紹介しています。
取得アクションの設定
取得アクションを設定するには、次のエンティティが必要です。

取得リクエストには、ナレッジベースID、クエリテキスト、および構成オブジェクトへの関連付けが必要です。.

構成オブジェクトには結果の数のみを含める必要があります。

この操作はRetrieveResponse型のオブジェクトを返します。このオブジェクトには、知識ベースから取得したテキストチャンクを含むRetrievalResultオブジェクトのリストが含まれます。リストには最大で 結果数 エントリー 結果数 構成オブジェクトで指定した番号です。
取得と生成のテスト 操作
Amazon Bedrock Connector を使用すると、以下に示すようなマイクロフローを設定することで、取得および生成操作で以前に設定したナレッジベースをテストすることもできます。

RetrieveAndGenerateRequest オブジェクトと RetrieveAndGenerateConfiguration オブジェクトは必須です。SessionConfiguration オブジェクトはオプションのオブジェクトで、セッションを暗号化するキーを説明するために KmsKeyArn を追加する必要がある場合にリクエストに追加できます。次に、必須オブジェクトの詳細について説明します。
RetrieveAndGenerateRequest オブジェクトには、クエリする入力テキストと、進行中のセッションを続行する場合はオプションでセッション ID が含まれている必要があります。RetrieveAndGenerateConfiguration オブジェクトには、ナレッジ ベース ID、使用するモデルの ModelARN、および RetrieveAndGenerateType というパラメータが含まれている必要があります。このパラメータには現在、オブジェクトの作成時に設定される列挙値「KNOWLEDGE_BASE」のみを含めることができます。これらのオブジェクト間の関連付けも、RetrieveAndGenerateConfiguration オブジェクトで設定する必要があります。

RetrieveAndGenerateResponse オブジェクトは、ナレッジ ベース内の情報を使用してクエリに回答するために生成された出力テキストを返します。応答オブジェクトには、関連付けられた Citation オブジェクトのリストも含まれており、そこから、取得された参照と出力生成中に使用された部分に関する情報を見つけることができます。
さらに一歩進めましょう
「取得と生成」と「モデルの呼び出し」操作をさらに有効に活用するには、クエリをより詳細に構造化して、質問に対するより良い回答を得られるようにする必要があります。プロンプトエンジニアリングとは、より良い回答が得られるプロンプトを作成する技術です。プロンプトエンジニアリングを使用すると、, 期待できる応答を調整します。たとえば、モデルが使用するユーザー プロンプトに追加データを追加できます。これにより、ナレッジ ベースと LLM でより適切なクエリを実行して、ユース ケースに役立つスタイルの応答を生成できるようになります。
取得と生成と Amazon Bedrock エージェント
アプリケーションで「取得と生成」と「エージェントの呼び出し」のどちらを使用するか迷うかもしれません。これら 2 つの操作の包括的な概要を提供するために、これら 2 つの操作で何が行われているかを見てみましょう。
ドキュメントをナレッジ ベースに追加して同期すると、ドキュメントは最初にチャンクに分割されます (もちろん、チャンク化メソッドを構成している場合)。次に、これらのチャンクは埋め込みモデルを使用して変換され、ベクター ストアに書き込まれます。このプロセス中に、指定されたベクター インデックスが各チャンクにマップされるため、モデルは必要に応じて最も関連性の高いチャンクを見つけることができます。
これらのベクトル表現は、おそらく私たちにとっては意味のない数字の列(埋め込み)ですが、埋め込みモデルにとっては多くの意味を持っています。ですから、単なる意味不明なものだと考えないでください。これらの埋め込みが保存されるベクトルデータベースは、知識ベースを使用したすべての操作の使用において重要なコンポーネントです。下の画像を見ると、公式の Amazon Bedrock ドキュメント.

下の図は、取得操作と取得と生成操作を示しています。取得操作または取得と生成操作を使用してユーザー クエリが実行されると、そのクエリはナレッジ ベース作成と同じ埋め込みモデルを使用してベクトルに変換されます。
次に、ユーザー クエリに割り当てられたベクトル表現がベクトル データベース内のベクトルと比較され、意味的に類似したチャンクが検索されます。その後、類似性が見つかったチャンクが検索され、ユーザーに返されます。この部分は、下の画像に表示されている赤い線まで実行されるプロセスであり、取得操作を示しています。
その後、変換されたテキストは、ユーザー クエリとともにテキスト モデルに渡され、ユーザーへの応答が生成されます。このすべてが、取得と生成の操作について説明しています。

Amazon Bedrock の取得と生成操作を使用したい場合、すべての基盤モデルがその操作の機能であるとは限りません。しかし、ほとんどの人は、プラン A が思ったほどうまくいかなかったときに、問題の回避策を見つけなければならなかったことがあると思います。そこで、開発者仲間として、Amazon Bedrock で利用可能な基盤モデルで同様の機能を使用できる回避策も考案しました。
上で説明したように、取得と生成操作はナレッジ ベースから関連情報を取得します。次に、この情報はユーザー クエリとともにテキスト モデルに渡され、応答が生成されます。この機能は、2 つの別々の手順で複製して完了できます。
まず、Retrieve 操作を使用してナレッジベースから関連情報を取得します。次に、Invoke Model 操作を使用して、受信した関連情報と最初の質問を含むフォローアップクエリを実行します。この方法を使用する場合、Invoke Model 操作の JSON リクエスト本文を自分で作成する必要があります。ただし、Amazon Bedrock が提供する基盤モデルは自由に使用できます。
それでは、エージェントの呼び出しがどのように異なるのか、以下の詳細な図を見て見ましょう。 Amazon Bedrock エージェントのドキュメント.
操作はユーザー入力から始まります。まず、前処理、オーケストレーション、ナレッジ ベース応答生成、および後処理の各ステップで使用される拡張プロンプトがプロンプト ストアから取得されます。
以前にエージェント呼び出し操作を使用したことがある場合は、「プロンプト ストア? プロンプトを作成していないのに、操作が何らかの形で機能している…?」と思われるかもしれません。\ この場合は、Amazon Bedrock には、これらの手順で使用されるデフォルトのプロンプトが最初から構成されているため、その通りです。ただし、これらのプロンプトは、アプリケーションのニーズに合わせて完全に構成可能であり、これは Amazon Bedrock のエージェントの柔軟性を示す機能の 1 つです。次に、クエリの会話の履歴を念頭に置いておきたい場合は、取得された情報とクエリで入力された前処理プロンプトが基盤モデルに送信される前に、セッションに従って履歴が取得されます。クエリが有効な入力として受け入れられると、図に示すループが開始されます。
操作はループに進み、前の情報を使用して構成されたオーケストレーション プロンプトに入力し、基盤モデルを呼び出します。解析された応答に従って、図のアクションの呼び出しセクションが実行されます。このアクションが何になるかは、完全にユーザーの設定次第です。
取得と生成とは異なり、エージェントは複数のナレッジベースを使用してさまざまな操作を実行でき、Lambda 関数を使用してタスクをオーケストレーションすることもできます。可能性は無限であり、出力を受け取るだけに限定されません。Amazon Bedrock エージェントの機能を使用して、意図した結果が見つかるまで、または意図したアクションが発生するまで、操作をループし続けるように設定できます。これらのアクションが正確に何であるかは... まあ、それは今後のブログに残しておくと思います。

Amazon BedrockとAIカスタマイズの探求 Mendix
この投稿では、Amazon Bedrockと MendixAWSが導入した新機能により、カスタムデータを基礎モデルに組み込むことがこれまで以上に簡単になり、プロンプトを充実させ、より関連性の高い応答を生成することができます。ステップバイステップのガイドを通じて、ナレッジベースの設定方法、データの取り込み方法、活用方法を示しました。 Mendix これらの技術のパワーを活用するには、Amazon Bedrock コネクタを使用してアプリケーションを構築します。
さらに、Retrieve and Generate と Invoke Agent の操作を比較し、その違いと機能について明らかにしました。Retrieve and Generate は、情報を取得して応答を生成するための合理化されたアプローチを提供しますが、Invoke Agent はより柔軟性が高く、複数のナレッジ ベース、ラムダ関数などを使用してタスクをオーケストレーションできます。
チェックアウトします Amazon Bedrock ショーケース アプリ、Amazon Bedrock Connectorで現在可能なすべての操作の概要を確認してください。Amazon Bedrockと Mendix可能性は無限です。AI のカスタマイズと統合の領域で実現できることは、まだほんの一部に過ぎません。
このブログ投稿はAgapiと共同執筆されました カラフォリドゥ および アイチャ・オネル。