生成 AI ワークロードの最も有用なアプリケーション パターンの 1 つは、検索拡張生成 (RAG) です。 RAG パターンでは、埋め込みに対して類似性検索を実行することで、入力プロンプトに関連する参照コンテンツを見つけます。埋め込みはテキスト本文の情報コンテンツをキャプチャし、自然言語処理 (NLP) モデルが数値形式の言語を操作できるようにします。エンベディングは単なる浮動小数点数のベクトルであるため、エンベディングを分析すると、次の 3 つの重要な質問に答えることができます。参照データは時間の経過とともに変化しますか?ユーザーが尋ねる質問は時間の経過とともに変化しますか?そして最後に、参照データは尋ねられている質問をどの程度カバーしているでしょうか?
この投稿では、埋め込みベクトル解析と埋め込みドリフトの信号の検出に関する考慮事項のいくつかについて学びます。エンベディングは一般に NLP モデル、特に生成 AI ソリューションにとって重要なデータ ソースであるため、エンベディングが時間の経過とともに変化 (ドリフト) しているかどうかを測定する方法が必要です。この投稿では、からデプロイされた大規模言語モデル (LLMS) によるクラスタリング手法を使用して、埋め込みベクトルのドリフト検出を実行する例を示します。 Amazon SageMaker ジャンプスタート。また、エンドツーエンドのサンプル アプリケーションや、オプションでアプリケーションのサブセットなど、提供されている 2 つの例を通じてこれらの概念を調べることもできます。
RAGの概要
ラグパターン PDF ドキュメント、Wiki 記事、通話記録などの外部ソースから知識を取得し、その知識を使用して LLM に送信される指示プロンプトを拡張できます。これにより、LLM は応答を生成する際に、より関連性の高い情報を参照できるようになります。たとえば、LLM にチョコレート チップ クッキーの作り方を尋ねると、そのレシピには独自のレシピ ライブラリからの情報が含まれる可能性があります。このパターンでは、レシピ テキストは埋め込みモデルを使用して埋め込みベクトルに変換され、ベクトル データベースに保存されます。受信した質問は埋め込みに変換され、ベクトル データベースは類似性検索を実行して関連コンテンツを見つけます。質問と参照データは、LLM のプロンプトに入力されます。
作成される埋め込みベクトルと、それらのベクトルに対してドリフト分析を実行する方法を詳しく見てみましょう。
埋め込みベクトルの解析
埋め込みベクトルはデータの数値表現であるため、これらのベクトルの分析により、後でドリフトの潜在的な信号を検出するために使用できる参照データへの洞察が得られます。埋め込みベクトルは、n 次元空間内の項目を表します。n は多くの場合、大きい値です。たとえば、この投稿で使用されている GPT-J 6B モデルは、サイズ 4096 のベクトルを作成します。ドリフトを測定するには、アプリケーションが参照データと受信プロンプトの両方の埋め込みベクトルをキャプチャすると仮定します。
まず、主成分分析 (PCA) を使用して次元削減を実行します。 PCA は、データの分散の大部分を維持しながら次元数を削減しようとします。この場合、分散の 95% を保存する次元の数を見つけようとします。これにより、XNUMX 標準偏差以内のものがすべて捕捉されるはずです。
次に、K-Means を使用してクラスター中心のセットを特定します。 K-Means は、各クラスターが比較的コンパクトになり、クラスター同士ができるだけ離れるように、点をクラスターにグループ化しようとします。
次の図に示すクラスタリング出力に基づいて、次の情報を計算します。
- 分散の 95% を説明する PCA の次元の数
- 各クラスターの中心、つまり重心の位置
さらに、次の図に示すように、各クラスター内のサンプルの割合 (高いか低いか) を調べます。
最後に、この分析を使用して以下を計算します。
- 慣性 – 慣性は、クラスター重心までの距離の二乗の合計であり、K 平均法を使用してデータがどの程度適切にクラスター化されたかを測定します。
- シルエットスコア – シルエット スコアは、クラスター内の一貫性を検証するための尺度であり、範囲は -1 から 1 です。 1 に近い値は、クラスター内のポイントが同じクラスター内の他のポイントに近く、クラスターからは遠いことを意味します。他のクラスターのポイント。シルエット スコアを視覚的に表現したものを次の図に示します。
この情報は、ソース参照データとプロンプトの両方の埋め込みのスナップショットとして定期的に取得できます。このデータを取得すると、埋め込みドリフトの潜在的な信号を分析できるようになります。
埋め込みドリフトの検出
定期的に、参照データの埋め込みとプロンプトの埋め込みを含むデータのスナップショットを通じてクラスタリング情報を比較できます。まず、埋め込みデータ、慣性、およびクラスタリング ジョブのシルエット スコアの変動の 95% を説明するのに必要な次元数を比較できます。次の表からわかるように、ベースラインと比較して、エンベディングの最新のスナップショットでは分散を説明するために 39 個以上の次元が必要であり、データがより分散していることを示しています。慣性が増加しており、サンプルがクラスターの中心からさらに離れたところに集合していることを示しています。さらに、シルエット スコアが低下しており、クラスターがそれほど明確に定義されていないことが示されています。プロンプト データの場合、システムに送信される質問の種類がより多くのトピックをカバーしていることを示している可能性があります。
次に、次の図では、各クラスター内のサンプルの割合が時間の経過とともにどのように変化したかがわかります。これにより、新しい参照データが以前のセットとほぼ同様であるか、新しい領域をカバーしているかがわかります。
最後に、次の表に示すように、クラスターの中心が移動しているかどうかを確認できます。これにより、クラスター内の情報に変動が見られます。
寄せられた質問に対する参照データの範囲
また、参照データが寄せられる質問とどの程度一致しているかを評価することもできます。これを行うために、各プロンプト埋め込みを参照データ クラスターに割り当てます。各プロンプトから対応する中心までの距離を計算し、それらの距離の平均、中央値、標準偏差を調べます。その情報を保存し、時間の経過とともにどのように変化するかを確認できます。
次の図は、プロンプトの埋め込みデータ センターと参照データ センター間の距離を経時的に分析する例を示しています。
ご覧のとおり、プロンプト エンベディングと参照データ センターの間の平均、中央値、標準偏差の距離統計は、最初のベースラインと最新のスナップショットの間で減少しています。距離の絶対値を解釈するのは困難ですが、傾向を使用して、参照データと受信した質問の間の意味上の重複が時間の経過とともに改善しているか悪化しているかを判断できます。
サンプルアプリケーション
前のセクションで説明した実験結果を収集するために、SageMaker JumpStart を通じてデプロイされホストされる埋め込みモデルと生成モデルを使用して RAG パターンを実装するサンプル アプリケーションを構築しました。 アマゾンセージメーカー リアルタイムエンドポイント。
アプリケーションには 3 つのコア コンポーネントがあります。
- LangChain を使用して、プロンプトをキャプチャするためのユーザー インターフェイスを含む対話型フローを RAG オーケストレーション レイヤーと組み合わせて使用します。
- データ処理フローは、PDF ドキュメントからデータを抽出し、保存される埋め込みを作成します。 AmazonOpenSearchサービス。これらは、アプリケーションの最終的な埋め込みドリフト解析コンポーネントでも使用します。
- 埋め込みは次のようにキャプチャされます。 Amazon シンプル ストレージ サービス (Amazon S3) 経由 Amazon Kinesis データ ファイアホースを組み合わせて実行します。 AWSグルー 抽出、変換、ロード (ETL) ジョブと Jupyter ノートブックを使用して埋め込み分析を実行します。
次の図は、エンドツーエンドのアーキテクチャを示しています。
完全なサンプル コードは次の場所で入手できます。 GitHubの。提供されたコードは 2 つの異なるパターンで利用できます。
- Streamlit フロントエンドを備えたフルスタック アプリケーションのサンプル – これは、プロンプトをキャプチャするための Streamlit を使用したユーザー インターフェイスを含むエンドツーエンドのアプリケーションを提供し、RAG オーケストレーション レイヤーと組み合わせて、上で実行される LangChain を使用します。 Amazon エラスティック コンテナ サービス (Amazon ECS) AWSファーゲート
- バックエンドアプリケーション – 完全なアプリケーション スタックをデプロイしたくない場合は、オプションでバックエンドのみをデプロイすることを選択できます AWSクラウド開発キット (AWS CDK) スタックを作成し、提供されている Jupyter ノートブックを使用して、LangChain を使用して RAG オーケストレーションを実行します。
提供されたパターンを作成するには、次のセクションで説明するいくつかの前提条件があります。まず、生成モデルとテキスト埋め込みモデルのデプロイから始まり、追加の前提条件に進みます。
SageMaker JumpStart を介してモデルをデプロイする
どちらのパターンも、埋め込みモデルと生成モデルのデプロイメントを前提としています。このために、SageMaker JumpStart から 6 つのモデルをデプロイします。最初のモデルである GPT-J 40B は埋め込みモデルとして使用され、XNUMX 番目のモデルである Falcon-XNUMXb はテキスト生成に使用されます。
これらの各モデルは、SageMaker JumpStart を通じて、 AWSマネジメントコンソール, Amazon SageMakerスタジオ、またはプログラム的に。詳細については、以下を参照してください。 JumpStart 基礎モデルの使用方法。導入を簡素化するには、 提供されたノート SageMaker JumpStart によって自動的に作成されたノートブックから派生します。このノートブックは、SageMaker JumpStart ML ハブからモデルを取得し、2 つの別個の SageMaker リアルタイム エンドポイントにデプロイします。
サンプル ノートブックにはクリーンアップ セクションもあります。デプロイしたばかりのエンドポイントが削除されるため、このセクションはまだ実行しないでください。ウォークスルーの最後にクリーンアップを完了します。
エンドポイントのデプロイが成功したことを確認したら、完全なサンプル アプリケーションをデプロイする準備が整います。ただし、バックエンドと分析ノートブックのみの調査に興味がある場合は、オプションでそれのみをデプロイできます。これについては、次のセクションで説明します。
オプション 1: バックエンド アプリケーションのみをデプロイする
このパターンでは、バックエンド ソリューションのみをデプロイし、Jupyter ノートブックを使用してソリューションを操作できます。完全なフロントエンド インターフェイスを構築したくない場合は、このパターンを使用します。
前提条件
次の前提条件が必要です。
- デプロイされた SageMaker JumpStart モデル エンドポイント – 前述したように、SageMaker JumpStart を使用してモデルを SageMaker リアルタイム エンドポイントにデプロイします。
- 導入パラメータ – 以下を記録します。
- テキストモデルエンドポイント名 – SageMaker JumpStart でデプロイされたテキスト生成モデルのエンドポイント名
- エンベディングモデルのエンドポイント名 – SageMaker JumpStart でデプロイされた埋め込みモデルのエンドポイント名
AWS CDK を使用してリソースをデプロイする
前のセクションで説明したデプロイメントパラメータを使用して、AWS CDK スタックをデプロイします。 AWS CDK のインストールの詳細については、を参照してください。 AWSCDKの使用を開始する.
AWS CDK のデプロイに使用されるワークステーションに Docker がインストールされ、実行されていることを確認してください。参照する Docker を入手する 追加のガイダンスについて。
または、コンテキスト値を次のファイルに入力することもできます。 cdk.context.json
セクションに pattern1-rag/cdk
ディレクトリと実行 cdk deploy BackendStack --exclusively
.
デプロイメントにより出力が出力されますが、その一部はノートブックの実行に必要になります。質疑応答を開始する前に、次のセクションに示すように、参照ドキュメントを埋め込みます。
参照ドキュメントを埋め込む
この RAG アプローチでは、参照ドキュメントは最初にテキスト埋め込みモデルで埋め込まれ、ベクトル データベースに保存されます。このソリューションでは、PDF ドキュメントを取り込む取り込みパイプラインが構築されています。
An アマゾン エラスティック コンピューティング クラウド (Amazon EC2) インスタンスは PDF ドキュメントの取り込み用に作成されており、 AmazonElasticファイルシステム (Amazon EFS) ファイル システムは、PDF ドキュメントを保存するために EC2 インスタンスにマウントされます。アン AWS データ同期 タスクは 3 時間ごとに実行され、EFS ファイル システム パスで見つかった PDF ドキュメントを取得し、S3 バケットにアップロードしてテキスト埋め込みプロセスを開始します。このプロセスでは、参照ドキュメントが埋め込まれ、その埋め込みが OpenSearch Service に保存されます。また、後の分析のために、Kinesis Data Firehose を通じて埋め込みアーカイブを SXNUMX バケットに保存します。
参照ドキュメントを取り込むには、次の手順を実行します。
- 作成されたサンプル EC2 インスタンス ID を取得します (AWS CDK の出力を参照)
JumpHostId
) を使用して接続します セッションマネージャ、の機能 AWS システム マネージャー。 手順については、を参照してください。 AWS Systems Manager Session Manager を使用して Linux インスタンスに接続する. - ディレクトリに移動します
/mnt/efs/fs1
、EFS ファイル システムがマウントされる場所であり、という名前のフォルダーを作成します。ingest
: - 参照 PDF ドキュメントを
ingest
ディレクトリにあります。
DataSync タスクは、このディレクトリにあるすべてのファイルを Amazon S3 にアップロードして埋め込みプロセスを開始するように構成されています。
DataSync タスクは時間ごとのスケジュールで実行されます。オプションでタスクを手動で開始して、追加した PDF ドキュメントの埋め込みプロセスをすぐに開始できます。
- タスクを開始するには、AWS CDK 出力からタスク ID を見つけます。
DataSyncTaskID
および タスクを開始する デフォルトで。
埋め込みが作成されたら、次のセクションで示すように、Jupyter ノートブックを通じて RAG の質問と回答を開始できます。
Jupyter Notebook を使用した質疑応答
次の手順を完了します。
- AWS CDK 出力から SageMaker ノートブック インスタンス名を取得します。
NotebookInstanceName
SageMaker コンソールから JupyterLab に接続します。 - ディレクトリに移動します
fmops/full-stack/pattern1-rag/notebooks/
. - ノートブックを開いて実行します
query-llm.ipynb
ノートブック インスタンスで、RAG を使用して質疑応答を実行します。
必ず使用してください conda_python3
ノートブック用のカーネル。
このパターンは、フルスタック アプリケーションに必要な追加の前提条件をプロビジョニングする必要なく、バックエンド ソリューションを検討するのに役立ちます。次のセクションでは、生成 AI アプリケーションと対話するためのユーザー インターフェイスを提供する、フロントエンド コンポーネントとバックエンド コンポーネントの両方を含むフルスタック アプリケーションの実装について説明します。
オプション 2: Streamlit フロントエンドを使用してフルスタックのサンプル アプリケーションをデプロイする
このパターンでは、質問と回答のためのユーザー フロントエンド インターフェイスを備えたソリューションを展開できます。
前提条件
サンプル アプリケーションをデプロイするには、次の前提条件を満たしている必要があります。
- SageMaker JumpStart モデルのエンドポイントがデプロイされました – 前のセクションで概説したように、提供されたノートブックを使用して、SageMaker JumpStart を使用してモデルを SageMaker リアルタイム エンドポイントにデプロイします。
- Amazon Route 53 ホストゾーン –作成する アマゾンルート53 パブリックホストゾーン このソリューションに使用します。次のような既存の Route 53 パブリックホストゾーンを使用することもできます。
example.com
. - AWS 証明書マネージャーの証明書 – プロビジョニング AWS証明書マネージャー Route 53 ホストゾーンのドメイン名とその該当するサブドメインの (ACM) TLS 証明書 (例:
example.com
および*.example.com
すべてのサブドメインに対して。手順については、を参照してください。 公開証明書のリクエスト。この証明書は、HTTPS を構成するために使用されます。 アマゾンCloudFrontの そして元のロードバランサー。 - 導入パラメータ – 以下を記録します。
- フロントエンド アプリケーションのカスタム ドメイン名 – フロントエンド サンプル アプリケーションへのアクセスに使用されるカスタム ドメイン名。提供されたドメイン名は、フロントエンド CloudFront ディストリビューションを指す Route 53 DNS レコードを作成するために使用されます。例えば、
app.example.com
. - ロードバランサーの起点カスタムドメイン名 – CloudFront 分散ロードバランサーのオリジンに使用されるカスタム ドメイン名。指定されたドメイン名は、オリジンロードバランサーを指す Route 53 DNS レコードを作成するために使用されます。例えば、
app-lb.example.com
. - Route 53 ホストゾーン ID – 提供されたカスタム ドメイン名をホストする Route 53 ホスト ゾーン ID。例えば、
ZXXXXXXXXYYYYYYYYY
. - Route 53 ホストゾーン名 – 提供されたカスタム ドメイン名をホストする Route 53 ホスト ゾーンの名前。例えば、
example.com
. - ACM 証明書 ARN – 提供されたカスタム ドメインで使用される ACM 証明書の ARN。
- テキストモデルエンドポイント名 – SageMaker JumpStart でデプロイされたテキスト生成モデルのエンドポイント名。
- エンベディングモデルのエンドポイント名 – SageMaker JumpStart でデプロイされた埋め込みモデルのエンドポイント名。
- フロントエンド アプリケーションのカスタム ドメイン名 – フロントエンド サンプル アプリケーションへのアクセスに使用されるカスタム ドメイン名。提供されたドメイン名は、フロントエンド CloudFront ディストリビューションを指す Route 53 DNS レコードを作成するために使用されます。例えば、
AWS CDK を使用してリソースをデプロイする
前提条件でメモしたデプロイメントパラメータを使用して、AWS CDK スタックをデプロイします。詳細については、以下を参照してください。 AWSCDKの使用を開始する.
AWS CDK のデプロイに使用されるワークステーションに Docker がインストールされ、実行されていることを確認してください。
前述のコードでは、 -c は、入力時に提供される、必須の前提条件の形式でのコンテキスト値を表します。または、コンテキスト値を次のファイルに入力することもできます。 cdk.context.json
セクションに pattern1-rag/cdk
ディレクトリと実行 cdk deploy --all
.
ファイル内でリージョンを指定していることに注意してください。 bin/cdk.ts
。 ALB アクセス ログを構成するには、指定されたリージョンが必要です。デプロイ前にこのリージョンを変更できます。
デプロイメントにより、Streamlit アプリケーションにアクセスするための URL が出力されます。質疑応答を開始する前に、次のセクションで示すように、参照ドキュメントを埋め込む必要があります。
参考ドキュメントを埋め込む
RAG アプローチの場合、参照ドキュメントは最初にテキスト埋め込みモデルで埋め込まれ、ベクトル データベースに保存されます。このソリューションでは、PDF ドキュメントを取り込む取り込みパイプラインが構築されています。
最初のデプロイメント オプションで説明したように、PDF ドキュメントの取り込み用にサンプル EC2 インスタンスが作成されており、PDF ドキュメントを保存するために EFS ファイル システムが EC2 インスタンスにマウントされています。 DataSync タスクは 3 時間ごとに実行され、EFS ファイル システム パスで見つかった PDF ドキュメントを取得し、S3 バケットにアップロードしてテキスト埋め込みプロセスを開始します。このプロセスでは、参照ドキュメントが埋め込まれ、その埋め込みが OpenSearch Service に保存されます。また、後の分析のために、Kinesis Data Firehose を通じて埋め込みアーカイブを SXNUMX バケットに保存します。
参照ドキュメントを取り込むには、次の手順を実行します。
- 作成されたサンプル EC2 インスタンス ID を取得します (AWS CDK の出力を参照)
JumpHostId
) を選択し、セッション マネージャーを使用して接続します。 - ディレクトリに移動します
/mnt/efs/fs1
、EFS ファイル システムがマウントされる場所であり、という名前のフォルダーを作成します。ingest
: - 参照 PDF ドキュメントを
ingest
ディレクトリにあります。
DataSync タスクは、このディレクトリにあるすべてのファイルを Amazon S3 にアップロードして埋め込みプロセスを開始するように構成されています。
DataSync タスクは時間ごとのスケジュールで実行されます。必要に応じて、タスクを手動で開始して、追加した PDF ドキュメントの埋め込みプロセスをすぐに開始できます。
- タスクを開始するには、AWS CDK 出力からタスク ID を見つけます。
DataSyncTaskID
および タスクを開始する デフォルトで。
質疑応答
参照ドキュメントが埋め込まれた後、URL にアクセスして Streamlit アプリケーションにアクセスすることで、RAG の質問と回答を開始できます。アン アマゾンコグニート 認証レイヤーが使用されるため、アプリケーションに初めてアクセスする場合は、AWS CDK 経由でデプロイされた Amazon Cognito ユーザー プールにユーザー アカウントを作成する必要があります (ユーザー プール名については AWS CDK の出力を参照)。 Amazon Cognito ユーザーの作成手順については、を参照してください。 AWSマネジメントコンソールでの新しいユーザーの作成.
ドリフト解析を埋め込む
このセクションでは、最初に参照データ エンベディングとプロンプト エンベディングのベースラインを作成し、次に時間の経過に伴うエンベディングのスナップショットを作成することにより、ドリフト分析を実行する方法を示します。これにより、ベースライン エンベディングとスナップショット エンベディングを比較できます。
参照データの埋め込みベースラインを作成し、プロンプトを表示します
参照データの埋め込みベースラインを作成するには、AWS Glue コンソールを開いて ETL ジョブを選択します embedding-drift-analysis
。 ETL ジョブのパラメータを次のように設定し、ジョブを実行します。
- 作成セッションプロセスで
--job_type
〜へBASELINE
. - 作成セッションプロセスで
--out_table
Amazon DynamoDB 参照埋め込みデータのテーブル。 (AWS CDK の出力を参照してください)DriftTableReference
テーブル名に。) - 作成セッションプロセスで
--centroid_table
参照重心データとして DynamoDB テーブルにコピーします。 (AWS CDK の出力を参照してください)CentroidTableReference
テーブル名に。) - 作成セッションプロセスで
--data_path
プレフィックスを付けて S3 バケットに送信します。例えば、s3://
/embeddingarchive/
。 (AWS CDK の出力を参照してください)BucketName
バケット名に使用します)。
同様に、ETL ジョブを使用する embedding-drift-analysis
、プロンプトの埋め込みベースラインを作成します。 ETL ジョブのパラメータを次のように設定し、ジョブを実行します。
- 作成セッションプロセスで
--job_type
〜へBASELINE
- 作成セッションプロセスで
--out_table
プロンプト埋め込みデータのために DynamoDB テーブルに送信します。 (AWS CDK の出力を参照してください)DriftTablePromptsName
テーブル名に。) - 作成セッションプロセスで
--centroid_table
プロンプト重心データを得るために DynamoDB テーブルに送信します。 (AWS CDK の出力を参照してください)CentroidTablePrompts
テーブル名に。) - 作成セッションプロセスで
--data_path
プレフィックスを付けて S3 バケットに送信します。例えば、s3://
/promptarchive/
。 (AWS CDK の出力を参照してください)BucketName
バケット名に使用します)。
参照データの埋め込みスナップショットを作成し、プロンプトを表示します
追加情報を OpenSearch Service に取り込んだ後、ETL ジョブを実行します embedding-drift-analysis
再度、参照データの埋め込みのスナップショットを作成します。パラメーターは、前のセクションで示したように、参照データの埋め込みベースラインを作成するために実行した ETL ジョブと同じになります。 --job_type
パラメータを SNAPSHOT
.
同様に、プロンプトの埋め込みのスナップショットを作成するには、ETL ジョブを実行します。 embedding-drift-analysis
また。パラメーターは、前のセクションで示したプロンプトの埋め込みベースラインを作成するために実行した ETL ジョブと同じになります。ただし、 --job_type
パラメータを SNAPSHOT
.
ベースラインとスナップショットを比較する
参照データとプロンプトの埋め込みベースラインとスナップショットを比較するには、提供されているノートブックを使用します。 pattern1-rag/notebooks/drift-analysis.ipynb
.
参照データまたはプロンプトの埋め込み比較を確認するには、DynamoDB テーブル名の変数 (tbl
および c_tbl
) ノートブック内の を、ノートブックの実行ごとに適切な DynamoDB テーブルにコピーします。
ノートブック変数 tbl
適切なドリフト テーブル名に変更する必要があります。以下は、ノートブック内の変数を設定する場所の例です。
テーブル名は次のように取得できます。
- 参照埋め込みデータの場合は、AWS CDK 出力からドリフト テーブル名を取得します。
DriftTableReference
- プロンプト埋め込みデータの場合は、AWS CDK 出力からドリフト テーブル名を取得します。
DriftTablePromptsName
さらに、ノートブック変数 c_tbl
適切な重心テーブル名に変更する必要があります。以下は、ノートブック内の変数を設定する場所の例です。
テーブル名は次のように取得できます。
- 参照埋め込みデータの場合は、AWS CDK 出力からセントロイド テーブル名を取得します。
CentroidTableReference
- プロンプト埋め込みデータの場合は、AWS CDK 出力から重心テーブル名を取得します。
CentroidTablePrompts
参照データからプロンプト距離を分析する
まず、AWS Glue ジョブを実行します embedding-distance-analysis
。このジョブは、参照データ埋め込みの K-Means 評価から、各プロンプトがどのクラスターに属しているかを見つけます。次に、各プロンプトから対応するクラスターの中心までの距離の平均、中央値、標準偏差が計算されます。
ノートブックを実行できます pattern1-rag/notebooks/distance-analysis.ipynb
時間の経過に伴う距離メトリックの傾向を確認します。これにより、プロンプト埋め込み距離の分布における全体的な傾向を把握できます。
ノート pattern1-rag/notebooks/prompt-distance-outliers.ipynb
は、外れ値を探す AWS Glue ノートブックです。これは、参照データに関連しないプロンプトがさらに表示されているかどうかを特定するのに役立ちます。
類似性スコアを監視する
OpenSearch サービスからのすべての類似性スコアがログインされます アマゾンクラウドウォッチ 下 rag
名前空間。ダッシュボード RAG_Scores
平均スコアと取り込まれたスコアの合計数を示します。
クリーンアップ
今後料金が発生しないようにするには、作成したすべてのリソースを削除してください。
デプロイされた SageMaker モデルを削除する
のクリーンアップセクションを参照してください。 提供されたノートブックの例 デプロイされた SageMaker JumpStart モデルを削除するか、次の方法で削除できます。 SageMaker コンソール上のモデルを削除する.
AWS CDK リソースを削除する
パラメータを入力した場合、 cdk.context.json
ファイルを次のようにクリーンアップします。
コマンドラインにパラメータを入力し、バックエンド アプリケーション (バックエンド AWS CDK スタック) のみをデプロイした場合は、次のようにクリーンアップします。
コマンドラインにパラメータを入力し、完全なソリューション (フロントエンドとバックエンドの AWS CDK スタック) をデプロイした場合は、次のようにクリーンアップします。
まとめ
この投稿では、生成 AI の RAG パターンで参照データとプロンプトの両方の埋め込みベクトルをキャプチャするアプリケーションの実例を提供しました。クラスタリング分析を実行して、参照データまたはプロンプト データが時間の経過とともに変動しているかどうか、および参照データがユーザーの質問の種類をどの程度カバーしているかを判断する方法を示しました。ドリフトを検出した場合、環境が変化し、モデルが処理に最適化されていない可能性のある新しい入力を取得していることを示す信号が提供される可能性があります。これにより、入力の変化に対して現在のモデルを事前に評価できるようになります。
著者について
アブドゥラヒ・オラオエ アマゾン ウェブ サービス (AWS) のシニア ソリューション アーキテクトです。 Abdullahi は、ウィチタ州立大学でコンピュータ ネットワーキングの修士号を取得しており、DevOps、インフラストラクチャの最新化、AI などのさまざまなテクノロジ領域にわたって役割を果たしてきた出版著者でもあります。彼は現在、ジェネレーティブ AI に注力しており、企業がジェネレーティブ AI を活用した最先端のソリューションを設計および構築するのを支援する上で重要な役割を果たしています。テクノロジーの領域を超えて、彼は探求の芸術に喜びを見出しています。 AI ソリューションを作成していないときは、家族と一緒に新しい場所を探索する旅行を楽しんでいます。
ランディ・デフォー AWS のシニア プリンシパル ソリューション アーキテクトです。 彼はミシガン大学で修士号を取得しており、そこで自動運転車のコンピューター ビジョンに取り組みました。 彼はコロラド州立大学で MBA も取得しています。 Randy は、ソフトウェア エンジニアリングから製品管理に至るまで、テクノロジー分野でさまざまな役職を歴任してきました。 氏は 2013 年にビッグデータ分野に参入し、引き続きその分野の探索を続けています。 彼は ML 分野のプロジェクトに積極的に取り組んでおり、Strata や GlueCon などの数多くのカンファレンスで講演を行っています。
シェルビーアイゲンブロード アマゾンウェブサービス(AWS)のプリンシパルAIおよび機械学習スペシャリストソリューションアーキテクトです。 彼女は24年間、複数の業界、テクノロジー、および役割にまたがるテクノロジーに携わってきました。 彼女は現在、DevOpsとMLのバックグラウンドをMLOpsのドメインに組み合わせて、顧客がMLワークロードを大規模に提供および管理できるようにすることに注力しています。 さまざまなテクノロジードメインで35を超える特許が付与されており、継続的なイノベーションとデータを使用してビジネスの成果を推進することに情熱を注いでいます。 Shelbeeは、Courseraの実用的なデータサイエンス専門分野の共同作成者およびインストラクターです。 彼女はまた、デンバー支部のビッグデータ(WiBD)の女性の共同ディレクターでもあります。 暇なときは、家族や友達、過激な犬と過ごすのが好きです。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/monitor-embedding-drift-for-llms-deployed-from-amazon-sagemaker-jumpstart/
- :持っている
- :は
- :not
- :どこ
- $UP
- 1
- 10
- 100
- 2013
- 24
- 視聴者の38%が
- 39
- 7
- 9
- 視聴者の38%が
- a
- できる
- 私たちについて
- 絶対の
- アクセス
- ACM
- 越えて
- 積極的に
- 追加されました
- 添加
- NEW
- 追加情報
- さらに
- 再び
- に対して
- 集計
- AI
- 整列
- すべて
- 許可
- ことができます
- また
- しかし
- Amazon
- アマゾンコグニート
- Amazon EC2
- アマゾンセージメーカー
- Amazon SageMaker ジャンプスタート
- Amazon Webサービス
- Amazon Webサービス(AWS)
- an
- 分析
- 分析します
- 分析する
- および
- 回答
- 応答
- 何でも
- 適用可能な
- 申し込み
- アプローチ
- 適切な
- 建築
- Archive
- です
- AREA
- エリア
- 宝品
- 物品
- AS
- 頼む
- 質問
- 支援する
- 引き受けます
- At
- 増強
- 増強された
- 認証
- 著者
- 自動的に
- 自律的
- 自律車両
- 利用できます
- 平均
- 避ける
- 離れて
- AWS
- AWSグルー
- バックエンド
- 背景
- スイング
- ベース
- ベースライン
- BE
- なぜなら
- き
- さ
- 所属
- より良いです
- の間に
- 越えて
- ビッグ
- ビッグデータ
- ボディ
- 両言語で
- 広く
- ビルド
- 内蔵
- ビジネス
- by
- 計算する
- 計算する
- コール
- 呼ばれます
- 缶
- 機能
- キャプチャー
- 捕捉した
- キャプチャ
- キャプチャ
- 場合
- CD
- センター
- センター
- 証明書
- 変化する
- 変更
- 変更
- 変化
- 章
- 課金
- チップ
- チョコレート
- 選択する
- 閉じる
- クローザー
- クラウド
- クラスタ
- クラスタリング
- コード
- コロラド州
- 組み合わせ
- 組み合わせた
- 結合
- 到来
- コンパクト
- 比較します
- 比べ
- 比較
- コンプリート
- コンポーネント
- コンポーネント
- 計算
- コンピュータ
- Computer Vision
- コンセプト
- 会議
- 設定された
- 構成する
- お問合せ
- 検討事項
- 領事
- コンテナ
- コンテンツ
- コンテキスト
- 続ける
- 連続的な
- 変換
- クッキー
- 基本
- 対応する
- カバレッジ
- カバー
- カバーする
- カバー
- 作ります
- 作成した
- 作成します。
- 作成
- 電流プローブ
- 現在
- カスタム
- Customers
- 最先端
- ダッシュボード
- データ
- データセンター
- データ処理
- データサイエンス
- データベース
- デフォルト
- 定義済みの
- 配信する
- デンバー
- 展開します
- 展開
- 展開する
- 展開
- 配備する
- 派生
- 破壊する
- 詳細な
- 検出
- 検出
- 決定する
- 開発
- 偏差
- ダイアグラム
- 異なります
- 難しい
- 次元
- 大きさ
- 議論する
- 分散した
- 距離
- 遠い
- ディストリビューション
- DNS
- do
- デッカー
- ドキュメント
- ドキュメント
- ドメイン
- ドメイン名
- ドメイン名
- ドメイン
- ドント
- ダウン
- ドライブ
- 各
- 埋め込みます
- 埋め込まれた
- 埋め込み
- end
- 端から端まで
- エンドポイント
- エンジニアリング
- 入力します
- 入力されました
- 企業
- 環境
- 評価する
- 評価
- あらゆる
- 例
- 例
- 例外
- 既存の
- 実験的
- 説明する
- 探査
- 探る
- 探る
- 外部
- エキス
- 抽出物
- 家族
- 遠く
- フィギュア
- File
- ファイナル
- 最後に
- もう完成させ、ワークスペースに掲示しましたか?
- 発見
- 名
- floating
- フロー
- 焦点を当て
- 焦点
- フォロー中
- 次
- フォーム
- 発見
- Foundation
- 友達
- から
- フロントエンド
- フル
- 未来
- 集める
- 生成
- 世代
- 生々しい
- 生成AI
- 取得する
- 受け
- 与える
- Go
- 行って
- 付与された
- グループ
- ガイダンス
- ハンドル
- 持ってる
- he
- ヒーロー
- 助けます
- 彼女の
- より高い
- 彼の
- 保持している
- host
- 主催
- 時間
- 認定条件
- How To
- しかしながら
- HTML
- HTTP
- HTTPS
- ハブ
- ID
- 識別する
- if
- 説明する
- 直ちに
- 実装
- 実装する
- 重要
- in
- include
- 含ま
- 含めて
- 入ってくる
- 示す
- 産業
- 慣性
- 情報
- インフラ
- 初期
- 革新的手法
- 入力
- 洞察力
- インストール
- インストール
- 説明書
- 対話
- 相互作用
- 相互作用的
- 興味がある
- インタフェース
- に
- IT
- ITS
- ジョブ
- Jobs > Create New Job
- 喜び
- JPG
- ただ
- キー
- Kinesisデータ消防ホース
- 知識
- 言語
- 大
- 後で
- 最新の
- 層
- LEARN
- 学習
- ことができます
- 図書館
- 好き
- LINE
- linuxの
- LLM
- 負荷
- 場所
- ログインして
- 見て
- LOOKS
- 下側
- 機械
- 機械学習
- make
- 管理します
- 管理
- マネージャー
- 手動で
- 五月..
- 意味する
- 手段
- だけど
- 措置
- メトリック
- ミシガン州
- かもしれない
- ML
- MLOps
- モデル
- モニター
- 他には?
- 最も
- 移動する
- の試合に
- しなければなりません
- 名
- 名
- ナチュラル
- 自然言語処理
- 必要
- 必要とされる
- 必要
- ネットワーキング
- 新作
- より新しい
- 次の
- NLP
- ノート
- 注意
- 数
- 番号
- 多数の
- of
- 頻繁に
- on
- の
- 開いた
- 最適化
- オプション
- or
- 編成
- 注文
- 起源
- その他
- 私たちの
- でる
- 成果
- 概説
- 出力
- outputs
- が
- 全体
- オーバーラップ
- 自分の
- パラメーター
- パラメータ
- 特定の
- 情熱
- 特許
- path
- パターン
- パターン
- 実行する
- 実行
- ピース
- パイプライン
- 場所
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 演劇
- ポイント
- ポイント
- プール
- ポジション
- 可能
- ポスト
- 潜在的な
- パワード
- 実用的
- 先行
- 前提条件
- PLM platform.
- 保存する
- 前
- 前に
- 校長
- 印刷物
- 先を見越した
- プロセス
- 処理
- プロダクト
- 製品管理
- プロジェクト(実績作品)
- プロンプト
- 割合
- 提供します
- 提供
- は、大阪で
- 準備
- 公共
- 公表
- 引っ張る
- 質問
- 質問
- ぼろ
- 範囲
- 測距
- 準備
- への
- realm
- レシピ
- 記録
- 減らします
- 削減
- 参照する
- 参照
- 地域
- 関連する
- 相対的に
- 関連した
- 表す
- 表現
- 表し
- の提出が必要です
- 必要
- リソース
- 応答
- 結果
- 検索
- 職種
- 役割
- ルート
- ラン
- ランニング
- runs
- セージメーカー
- 同じ
- Save
- 規模
- スケジュール
- 科学
- スコア
- を検索
- 検索
- 二番
- セクション
- セクション
- 見て
- select
- セマンティック
- シニア
- センス
- 送信
- 別
- サービス
- サービス
- セッション
- セッションに
- 設定
- いくつかの
- 彼女
- すべき
- 表示する
- 示されました
- 示す
- 作品
- シグナル
- 信号
- 同様の
- 簡単な拡張で
- 簡素化する
- サイズ
- Snapshot
- So
- ソフトウェア
- ソフトウェア工学
- 溶液
- ソリューション
- 一部
- ソース
- ソース
- スペース
- 緊張
- 専門家
- 指定の
- 過ごす
- 二乗
- スタック
- スタック
- 標準
- start
- 開始
- 起動
- 都道府県
- 統計
- ステップ
- ストレージ利用料
- 店舗
- 保存され
- 成功した
- そのような
- 確か
- システム
- テーブル
- 取る
- 仕事
- 技術
- テクノロジー
- テクノロジー
- 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다.
- それ
- 情報
- ソース
- アプリ環境に合わせて
- それら
- その後
- そこ。
- ボーマン
- この
- それらの
- 三
- 介して
- 時間
- 〜へ
- 一緒に
- トピック
- トータル
- 最適化の適用
- 旅行
- トレンド
- トレンド
- 試します
- 2
- 下
- 大学
- URL
- us
- つかいます
- 中古
- 便利
- ユーザー
- ユーザーインターフェース
- users
- 値
- 価値観
- 変数
- 多様
- さまざまな
- 車
- 、
- ビジョン
- ビジュアル
- ウォークスルー
- 欲しいです
- ました
- 仕方..
- we
- ウェブ
- Webサービス
- WELL
- いつ
- かどうか
- which
- while
- 意志
- 以内
- 無し
- レディース
- 仕事
- 働いていました
- ワーキング
- もっと悪い
- でしょう
- 年
- まだ
- You
- あなたの
- ゼファーネット
- ゾーン