

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# リアルタイムベクトル埋め込みブループリント - よくある質問
<a name="troubleshooting-blueprints-FAQ"></a>

リアルタイムベクトル埋め込みブループリントに関する次のよくある質問を確認します。リアルタイムベクトル埋め込みブループリントの詳細については、「[Real-time vector embedding blueprints](https://docs.aws.amazon.com/msk/latest/developerguide/ai-vector-embedding-integration-learn-more.html)」を参照してください。

**Topics**
+ [このブループリントはどのような AWS リソースを作成しますか?](#troubleshooting-blueprints-1)
+ [AWS CloudFormation スタックのデプロイが完了した後のアクションは何ですか?](#troubleshooting-blueprints-2)
+ [ソース Amazon MSK トピック内のデータ構造はどのようにすべきですか?](#troubleshooting-blueprints-3)
+ [埋め込むメッセージの一部を指定できますか?](#troubleshooting-blueprints-4)
+ [複数の Amazon MSK トピックからデータを読み取ることはできますか?](#troubleshooting-blueprints-5)
+ [正規表現を使用して Amazon MSK トピック名を設定できますか?](#troubleshooting-blueprints-6)
+ [Amazon MSK トピックから読み取ることができるメッセージの最大サイズを教えてください。](#troubleshooting-blueprints-7)
+ [どのタイプの OpenSearch がサポートされていますか?](#troubleshooting-blueprints-8)
+ [ベクトル検索コレクション、ベクトルインデックスを使用し、OpenSearch Serverless コレクションにベクトルフィールドを追加する必要があるのはなぜですか?](#troubleshooting-blueprints-9)
+ [ベクトルフィールドのディメンションとして設定すべきものは何ですか?](#troubleshooting-blueprints-10)
+ [設定された OpenSearch インデックスの出力はどのようなものですか?](#troubleshooting-blueprints-11)
+ [OpenSearch インデックスに保存されているドキュメントに追加するメタデータフィールドを指定できますか?](#troubleshooting-blueprints-12)
+ [OpenSearch インデックスに重複するエントリを想定すべきですか?](#troubleshooting-blueprints-13)
+ [複数の OpenSearch インデックスにデータを送信できますか?](#troubleshooting-blueprints-14)
+ [複数のリアルタイムベクトル埋め込みアプリケーションを 1 つの AWS アカウントにデプロイできますか?](#troubleshooting-blueprints-15)
+ [複数のリアルタイムベクトル埋め込みアプリケーションが同じデータソースまたはシンクを使用できますか?](#troubleshooting-blueprints-16)
+ [アプリケーションはクロスアカウント接続をサポートしていますか?](#troubleshooting-blueprints-17)
+ [アプリケーションはクロスリージョン接続をサポートしていますか?](#troubleshooting-blueprints-18)
+ [Amazon MSK クラスターと OpenSearch コレクションを異なる VPC またはサブネットに配置することはできますか?](#troubleshooting-blueprints-19)
+ [アプリケーションではどのような埋め込みモデルがサポートされていますか?](#troubleshooting-blueprints-20)
+ [ワークロードに基づいてアプリケーションのパフォーマンスをファインチューニングできますか?](#troubleshooting-blueprints-21)
+ [サポートされている Amazon MSK 認証タイプは何ですか?](#troubleshooting-blueprints-22)
+ [`sink.os.bulkFlushIntervalMillis` とは何ですか? どのように設定すればよいですか?](#troubleshooting-blueprints-23)
+ [Managed Service for Apache Flink アプリケーションをデプロイすると、Amazon MSK トピックのどの時点からメッセージの読み取りが開始されますか?](#troubleshooting-blueprints-24)
+ [`source.msk.starting.offset` の使用方法は?](#troubleshooting-blueprints-25)
+ [どのようなチャンク化戦略がサポートされていますか?](#troubleshooting-blueprints-26)
+ [ベクトルデータストアのレコードを読み取るにはどうすればよいですか?](#troubleshooting-blueprints-27)
+ [ソースコードの新しい更新はどこで確認できますか?](#troubleshooting-blueprints-28)
+ [AWS CloudFormation テンプレートを変更して Managed Service for Apache Flink アプリケーションを更新できますか?](#troubleshooting-blueprints-29)
+ [私の代わりにアプリケーションを AWS モニタリングおよび保守しますか?](#troubleshooting-blueprints-30)
+ [このアプリケーションはデータを AWS アカウントの外部に移動させますか?](#troubleshooting-blueprints-31)

## このブループリントはどのような AWS リソースを作成しますか?
<a name="troubleshooting-blueprints-1"></a>

アカウントにデプロイされたリソースを検索するには、 AWS CloudFormation コンソールに移動し、Managed Service for Apache Flink アプリケーションに指定した名前で始まるスタック名を特定します。**[リソース]** タブを選択して、スタックの一部として作成されたリソースを確認します。以下は、スタックが作成するキーリソースです。
+ リアルタイムベクトル埋め込みの Managed Service for Apache Flink アプリケーション
+ リアルタイムベクトル埋め込みアプリケーションのソースコードを保持するための Amazon S3 バケット
+ ログを保存するための CloudWatch のロググループとログストリーム
+ リソースをフェッチおよび作成するための Lambda 関数
+ Lambda 用の IAM ロールとポリシー、Managed Service for Apache Flink アプリケーション、Amazon Bedrock と Amazon OpenSearch Service へのアクセス
+ Amazon OpenSearch Service のデータアクセスポリシー
+ Amazon Bedrock と Amazon OpenSearch Service にアクセスするための VPC エンドポイント

## AWS CloudFormation スタックのデプロイが完了した後のアクションは何ですか?
<a name="troubleshooting-blueprints-2"></a>

 AWS CloudFormation スタックのデプロイが完了したら、 Managed Service for Apache Flink コンソールにアクセスし、設計図 Managed Service for Apache Flink アプリケーションを見つけます。**[構成]** タブを選択し、すべてのランタイムプロパティが正しく設定されていることを確認します。次のページにオーバーフローする可能性があります。設定に自信が持てたら、**[実行]** を選択します。アプリケーションはトピックからのメッセージの取り込みを開始します。

新しいリリースを確認するには、「[https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases](https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases)」を参照してください。

## ソース Amazon MSK トピック内のデータ構造はどのようにすべきですか?
<a name="troubleshooting-blueprints-3"></a>

現在、構造化ソースデータと非構造化ソースデータをサポートしています。
+ 非構造化データは、`source.msk.data.type` の `STRING` によって示されます。データは受信メッセージからそのまま読み込まれます。
+ 現在、`source.msk.data.type` で `JSON` が示す構造化 JSON データをサポートしています。データは常に JSON 形式である必要があります。アプリケーションが不正な形式の JSON を受信すると、アプリケーションは失敗します。
+ ソースデータ型として JSON を使用する場合は、すべてのソーストピックのすべてのメッセージが有効な JSON であることを確認します。この設定で JSON オブジェクトを含まないトピックを 1 つ以上サブスクライブすると、アプリケーションは失敗します。1 つ以上のトピックに構造化データと非構造化データが混在している場合は、Managed Service for Apache Flink アプリケーションでソースデータを非構造化として設定することをお勧めします。

## 埋め込むメッセージの一部を指定できますか?
<a name="troubleshooting-blueprints-4"></a>
+ `source.msk.data.type` が `STRING` である非構造化入力データの場合、アプリケーションは常にメッセージ全体を埋め込み、そのメッセージ全体を設定された OpenSearch インデックスに保存します。
+ `source.msk.data.type` が `JSON` である構造化入力データの場合、埋め込み用に JSON オブジェクトのどのフィールドを選択するかを指定するように `embed.input.config.json.fieldsToEmbed` を設定できます。これは最上位の JSON フィールドでのみ機能し、ネストされた JSON や JSON 配列を含むメッセージでは機能しません。「.\$1」を使用して JSON 全体を埋め込みます。

## 複数の Amazon MSK トピックからデータを読み取ることはできますか?
<a name="troubleshooting-blueprints-5"></a>

はい、このアプリケーションで複数の Amazon MSK トピックからデータを読み取ることができます。すべてのトピックのデータは同じタイプ (STRING または JSON) である必要があります。そうしないと、アプリケーションが失敗する可能性があります。すべてのトピックのデータは、常に 1 つの OpenSearch インデックスに保存されます。

## 正規表現を使用して Amazon MSK トピック名を設定できますか?
<a name="troubleshooting-blueprints-6"></a>

`source.msk.topic.names` は正規表現のリストをサポートしていません。トピック名のカンマ区切りリスト、またはすべてのトピックを含めるための `.*` 正規表現のいずれかをサポートしています。

## Amazon MSK トピックから読み取ることができるメッセージの最大サイズを教えてください。
<a name="troubleshooting-blueprints-7"></a>

処理できるメッセージの最大サイズは、Amazon Bedrock InvokeModel 本文制限によって制限されており、現在は 25,000,000 に設定されています。詳細については、「[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html#API_runtime_InvokeModel_RequestBody)」を参照してください。

## どのタイプの OpenSearch がサポートされていますか?
<a name="troubleshooting-blueprints-8"></a>

OpenSearch ドメインとコレクションの両方がサポートされています。OpenSearch コレクションを使用している場合は、ベクトルコレクションを使用し、このアプリケーションに使用するベクトルインデックスを作成してください。これにより、OpenSearch ベクトルデータベース機能を使用してデータをクエリできます。詳細については、[「Amazon OpenSearch Service のベクトルデータベース機能の説明](https://aws.amazon.com/blogs/big-data/amazon-opensearch-services-vector-database-capabilities-explained/)」を参照してください。

## ベクトル検索コレクション、ベクトルインデックスを使用し、OpenSearch Serverless コレクションにベクトルフィールドを追加する必要があるのはなぜですか?
<a name="troubleshooting-blueprints-9"></a>

OpenSearch Serverless の*ベクトル検索*コレクションタイプは、スケーラブルで高性能な類似検索機能を提供します。最新の機械学習 (ML) を活用した検索エクスペリエンスや生成 AI アプリケーションの構築が効率化されます。詳細については、「[Working with vector search collections](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vector-search.html?icmpid=docs_console_unmapped)」を参照してください。

## ベクトルフィールドのディメンションとして設定すべきものは何ですか?
<a name="troubleshooting-blueprints-10"></a>

使用する埋め込みモデルに基づいてベクトルフィールドのディメンションを設定します。次の表を参照して、それぞれのドキュメントからこれらの値を確認します。


**ベクトルフィールドディメンション**  

| Amazon Bedrock ベクトル埋め込みモデル名 | モデルが提供する出力ディメンションのサポート | 
| --- | --- | 
|  Amazon Titan Text Embeddings V1  | 1,536 | 
|  Amazon Titan Text Embeddings V2  | 1,024 (デフォルト)、384、256 | 
|  Amazon Titan Multimodal Embeddings G1  | 1,024 (デフォルト)、384、256 | 
|  Cohere Embed English  | 1,024 | 
|  Cohere Embed Multilingual  | 1,024 | 

## 設定された OpenSearch インデックスの出力はどのようなものですか?
<a name="troubleshooting-blueprints-11"></a>

OpenSearch インデックス内のすべてのドキュメントには、次のフィールドが含まれます。
+ **original\$1data**: 埋め込みの生成に使用されたデータ。STRING タイプの場合、それはメッセージ全体です。JSON オブジェクトの場合、埋め込みに使用された JSON オブジェクトです。メッセージ内の JSON 全体でも、JSON 内の指定されたフィールドでもかまいません。例えば、受信メッセージから埋め込まれるように名前を選択した場合、出力は次のようになります。

  ```
  "original_data": "{\"name\":\"John Doe\"}"
  ```
+ **embedded\$1data**: Amazon Bedrock によって生成された埋め込みのベクトル浮動小数点配列
+ **date**: ドキュメントが OpenSearch に保存された UTC タイムスタンプ

## OpenSearch インデックスに保存されているドキュメントに追加するメタデータフィールドを指定できますか?
<a name="troubleshooting-blueprints-12"></a>

いいえ。現在、OpenSearch インデックスに保存されている最終ドキュメントへのフィールドの追加はサポートされていません。

## OpenSearch インデックスに重複するエントリを想定すべきですか?
<a name="troubleshooting-blueprints-13"></a>

アプリケーションの設定方法によっては、インデックスに重複するメッセージが表示される場合があります。一般的な理由の 1 つは、アプリケーションの再起動です。デフォルトでは、アプリケーションはソーストピックの最も古いメッセージからの読み取りを開始するように設定されています。構成を変更すると、アプリケーションは再起動し、トピック内のすべてのメッセージを再処理します。再処理を回避するには、source.msk.starting.offset の使用方法に関するドキュメントを参照して、アプリケーションの開始オフセットを正しく設定します。

## 複数の OpenSearch インデックスにデータを送信できますか?
<a name="troubleshooting-blueprints-14"></a>

いいえ。このアプリケーションは、単一の OpenSearch インデックスへのデータの保存をサポートしています。複数のインデックスにベクトル化出力を設定するには、個別の Managed Service for Apache Flink アプリケーションをデプロイする必要があります。

## 複数のリアルタイムベクトル埋め込みアプリケーションを 1 つの AWS アカウントにデプロイできますか?
<a name="troubleshooting-blueprints-15"></a>

はい。すべてのアプリケーションに一意の名前がある場合、複数のリアルタイムベクトル埋め込み Managed Service for Apache Flink アプリケーションを 1 つの AWS アカウント にデプロイできます。

## 複数のリアルタイムベクトル埋め込みアプリケーションが同じデータソースまたはシンクを使用できますか?
<a name="troubleshooting-blueprints-16"></a>

はい。同じトピックからデータを読み取るか、同じインデックスにデータを保存する複数のリアルタイムベクトル埋め込み Managed Service for Apache Flink アプリケーションを作成できます。

## アプリケーションはクロスアカウント接続をサポートしていますか?
<a name="troubleshooting-blueprints-17"></a>

いいえ。アプリケーションが正常に実行されるには、Amazon MSK クラスターと OpenSearch コレクションが、Managed Service for Apache Flink アプリケーションをセットアップしようとしている AWS アカウント のと同じ にある必要があります。

## アプリケーションはクロスリージョン接続をサポートしていますか?
<a name="troubleshooting-blueprints-18"></a>

いいえ。アプリケーションでは、Amazon MSK クラスターと OpenSearch コレクションを使用して、Managed Service for Apache Flink アプリケーションの同じリージョンにのみ Managed Service for Apache Flink アプリケーションをデプロイできます。

## Amazon MSK クラスターと OpenSearch コレクションを異なる VPC またはサブネットに配置することはできますか?
<a name="troubleshooting-blueprints-19"></a>

はい。異なる VPC やサブネットにある Amazon MSK クラスターと OpenSearch コレクションでも、同じ AWS アカウント内であればサポートしています。セットアップが正しいことを確認するには、(一般的な MSF のトラブルシューティング) を参照してください。

## アプリケーションではどのような埋め込みモデルがサポートされていますか?
<a name="troubleshooting-blueprints-20"></a>

現在、アプリケーションは Bedrock でサポートされているすべてのモデルをサポートしています。具体的には次のとおりです。
+ Amazon Titan Embeddings G1 - Text
+  Amazon Titan Text Embeddings V2
+  Amazon Titan Multimodal Embeddings G1 
+  Cohere Embed English 
+  Cohere Embed Multilingual 

## ワークロードに基づいてアプリケーションのパフォーマンスをファインチューニングできますか?
<a name="troubleshooting-blueprints-21"></a>

はい。アプリケーションのスループットは、さまざまな要因によって異なります。これらはすべてお客様が制御できます。

1. **AWS MSF KPUs**: アプリケーションは、デフォルトの並列処理係数 2 と KPU 1 あたりの並列処理でデプロイされ、自動スケーリングが有効になっています。ただし、ワークロードに応じて Managed Service for Apache Flink アプリケーションのスケーリングを設定することをお勧めします。詳細については、「[Review Managed Service for Apache Flink application resources](https://docs.aws.amazon.com/managed-flink/latest/java/how-resources.html)」を参照してください。

1. **Amazon Bedrock**: 選択した Amazon Bedrock オンデマンドモデルに基づいて、異なるクォータが適用される場合があります。Bedrock のサービスクォータを確認して、サービスが処理できるワークロードを把握します。詳細については、「[Quotas for Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)」を参照してください。

1. **Amazon OpenSearch Service**: さらに、状況によっては、OpenSearch がパイプラインのボトルネックであることに気付く場合があります。スケーリングの詳細については、OpenSearch のスケーリングの「[Sizing Amazon OpenSearch Service domains](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/sizing-domains.html)」を参照してください。

## サポートされている Amazon MSK 認証タイプは何ですか?
<a name="troubleshooting-blueprints-22"></a>

IAM MSK 認証タイプのみをサポートしています。

## `sink.os.bulkFlushIntervalMillis` とは何ですか? どのように設定すればよいですか?
<a name="troubleshooting-blueprints-23"></a>

Amazon OpenSearch Service にデータを送信するとき、一括フラッシュ間隔は、アクションの数やリクエストのサイズに関係なく、一括リクエストが実行される間隔を指します。デフォルト値は 1 ミリ秒に設定されています。

フラッシュ間隔を設定すると、データが適時にインデックス作成されるようにできますが、設定が低すぎるとオーバーヘッドが増加する可能性もあります。フラッシュ間隔を選択するときは、ユースケースとタイムリーなインデックス作成の重要性を考慮してください。

## Managed Service for Apache Flink アプリケーションをデプロイすると、Amazon MSK トピックのどの時点からメッセージの読み取りが開始されますか?
<a name="troubleshooting-blueprints-24"></a>

アプリケーションは、アプリケーションのランタイム構成で設定された `source.msk.starting.offset` 設定で指定されたオフセットで Amazon MSK トピックからのメッセージの読み取りを開始します。`source.msk.starting.offset` が明示的に設定されていない場合、アプリケーションのデフォルト動作は、トピック内で最も古い利用可能なメッセージから読み取りを開始します。

## `source.msk.starting.offset` の使用方法は?
<a name="troubleshooting-blueprints-25"></a>

目的の動作に基づいて、`ource.msk.starting.offset` を次のいずれかの値に明示的に設定します。


+  EARLIEST: デフォルト設定で、パーティション内の最も古いオフセットから読み取ります。これは、特に以下の場合に適しています。
  +  新しく作成した Amazon MSK トピックとコンシューマーアプリケーション。
  +  状態を構築または再構築するには、データを再生する必要があります。これは、イベントソーシングパターンを実装する場合や、データ履歴の完全なビューを必要とする新しいサービスを初期化する場合に当てはまります。
+ LATEST: Managed Service for Apache Flink アプリケーションは、パーティションの末尾からメッセージを読み込みます。このオプションは、新しく生成されるメッセージだけを扱い、過去のデータを処理する必要がない場合にお勧めします。この設定では、コンシューマーは既存のメッセージを無視し、アップストリームプロデューサーによって発行された新しいメッセージのみを読み込みます。
+ COMMITTED: Managed Service for Apache Flink アプリケーションは、コンシューマーグループのコミット済みオフセットからメッセージの消費を開始します。コミットされたオフセットが存在しない場合、EARLIEST リセット戦略が使用されます。

## どのようなチャンク化戦略がサポートされていますか?
<a name="troubleshooting-blueprints-26"></a>

[langchain](https://js.langchain.com/v0.1/docs/get_started/introduction/) ライブラリを使用して入力をチャンク化しています。チャンク化は、入力の長さが選択した `maxSegmentSizeInChars` より大きい場合にのみ適用されます。次の 5 つのチャンク化タイプがサポートされています。
+ `SPLIT_BY_CHARACTER`: 各チャンクには可能な限り文字を納めますが、チャンク長は maxSegmentSizeInChars を上限とします。空白文字を認識しないため、単語が途中で切れてしまうことがあります。
+ `SPLIT_BY_WORD`: 空白文字を見つけて、それを基準にチャンク化します。単語が途中で切れることはありません。
+ `SPLIT_BY_SENTENCE`: 文の境界は、Apache OpenNLP ライブラリの英語文モデルを用いて検出されます。
+ `SPLIT_BY_LINE`: 改行文字を検出し、それを基準にチャンク化します。
+ `SPLIT_BY_PARAGRAPH`: 連続する改行文字を検出し、それを基準にチャンク化します。

分割戦略は前の順序に従ってフォールバックし、`SPLIT_BY_PARAGRAPH` のようなより大きなチャンク化戦略は `SPLIT_BY_CHARACTER` にフォールバックします。例えば、`SPLIT_BY_LINE` を使用する場合、行が長すぎると、行が長すぎると、その行は文ごとにサブチャンク化され、各チャンクには可能な限り多くの文が収められます。長い文がある場合は、単語レベルでチャンク化されます。単語が長すぎると、文字単位で分割されます。

## ベクトルデータストアのレコードを読み取るにはどうすればよいですか?
<a name="troubleshooting-blueprints-27"></a>

1. `source.msk.data.type` が `STRING` の場合
   + **original\$1data**: Amazon MSK メッセージからの元の文字列全体。
   + **embedded\$1data**: 空でない場合 (チャンク化が適用された場合)、`chunk_data` から埋め込みベクトルが作成され、チャンク化が適用されていない場合は、`original_data` から埋め込みベクトルが作成されます。
   + **chunk\$1data**: 元のデータがチャンク化された場合にのみ存在します。`embedded_data` での埋め込みの作成に使用された元のメッセージのチャンクが含まれます。

1. `source.msk.data.type` が `JSON` の場合
   + **original\$1data**: JSON キーフィルタリングを適用した*後*の、Amazon MSK メッセージからの元の JSON 全体。
   + **embedded\$1data**: 空でない場合 (チャンク化が適用された場合)、`chunk_data` から埋め込みベクトルが作成され、チャンク化が適用されていない場合は、`original_data` から埋め込みベクトルが作成されます。
   + **chunk\$1key**: 元のデータがチャンク化された場合にのみ存在します。チャンクが `original_data` にある JSON キーが含まれます。例えば、`original_data` の例では、ネストされたキーまたは*メタデータ*の `jsonKey1.nestedJsonKeyA` ようになります。
   + **chunk\$1data**: 元のデータがチャンク化された場合にのみ存在します。`embedded_data` での埋め込みの作成に使用された元のメッセージのチャンクが含まれます。

はい、このアプリケーションで複数の Amazon MSK トピックからデータを読み取ることができます。すべてのトピックのデータは同じタイプ (STRING または JSON) である必要があります。そうしないと、アプリケーションが失敗する可能性があります。すべてのトピックのデータは、常に 1 つの OpenSearch インデックスに保存されます。

## ソースコードの新しい更新はどこで確認できますか?
<a name="troubleshooting-blueprints-28"></a>

「[https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases](https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases)」にアクセスして、新しいリリースを確認します。

## AWS CloudFormation テンプレートを変更して Managed Service for Apache Flink アプリケーションを更新できますか?
<a name="troubleshooting-blueprints-29"></a>

いいえ。 AWS CloudFormation テンプレートを変更しても、Managed Service for Apache Flink アプリケーションは更新されません。の新しい変更は AWS CloudFormation 、新しいスタックをデプロイする必要があることを意味します。

## 私の代わりにアプリケーションを AWS モニタリングおよび保守しますか?
<a name="troubleshooting-blueprints-30"></a>

いいえ。ユーザーに代わってこのアプリケーションをモニタリング、スケーリング、更新、またはパッチ AWS 適用しません。

## このアプリケーションはデータを AWS アカウントの外部に移動させますか?
<a name="troubleshooting-blueprints-31"></a>

Managed Service for Apache Flink アプリケーションによって読み取りおよび保存されるすべてのデータは、 内にとどまり AWS アカウント 、 アカウントを離れることはありません。