リアルタイムベクトル埋め込み設計図 - FAQ - Managed Service for Apache Flink
この設計図はどのような AWS リソースを作成しますか? AWS CloudFormation スタックのデプロイが完了した後のアクションは何ですか? ソース Amazon MSKトピック (複数可) 内のデータの構造はどのようなものですか? 埋め込むメッセージの一部を指定できますか? 複数の Amazon MSKトピックからデータを読み取ることはできますか? 正規表現を使用して Amazon MSKトピック名を設定できますか? Amazon MSKトピックから読み取ることができるメッセージの最大サイズはどのくらいですか? サポート OpenSearch される のタイプ ベクトル検索コレクション、ベクトルインデックスを使用し、 OpenSearch Serverless コレクションにベクトルフィールドを追加する必要があるのはなぜですか? ベクトルフィールドのディメンションとして設定すべきものは何ですか? 設定済み OpenSearch インデックスの出力はどのように表示されますか? OpenSearch インデックスに保存されているドキュメントに追加するメタデータフィールドを指定できますか? インデックスに重複する OpenSearchエントリがあると想定すべきですか? 複数の OpenSearch インデックスにデータを送信できますか? 複数のリアルタイムベクトル埋め込みアプリケーションを 1 つの にデプロイできますか AWS アカウント? 複数のリアルタイムベクトル埋め込みアプリケーションは、同じデータソースまたはシンクを使用できますか? アプリケーションはクロスアカウント接続をサポートしていますか? アプリケーションはクロスリージョン接続をサポートしていますか? Amazon MSKクラスターと OpenSearch コレクションは異なる VPCsまたは サブネットにあるか?アプリケーションではどのような埋め込みモデルがサポートされていますか?ワークロードに基づいてアプリケーションのパフォーマンスを微調整できますか?どの Amazon MSK認証タイプがサポートされていますか?sink.os.bulkFlushIntervalMillis とは何ですか? どのように設定すればよいですか? Managed Service for Apache Flink アプリケーションをデプロイすると、Amazon MSKトピックのどの時点からメッセージの読み取りが開始されますか? の使用方法 source.msk.starting.offsetどのようなチャンク戦略がサポートされていますか? ベクトルデータストアのレコードを読み取るにはどうすればよいですか?ソースコードの新しい更新はどこにありますか? AWS CloudFormation テンプレートを変更して Managed Service for Apache Flink アプリケーションを更新できますか? は、ユーザーに代わってアプリケーションを AWS モニタリングおよび保守しますか? このアプリケーションはデータを の外部に移動しますか AWS アカウント?

Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

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

リアルタイムベクトル埋め込み設計図 - FAQ

リアルタイムベクトル埋め込みの設計図FAQについては、以下を確認してください。リアルタイムベクトル埋め込み設計図の詳細については、「リアルタイムベクトル埋め込み設計図」を参照してください。

FAQ

この設計図はどのような AWS リソースを作成しますか?

アカウントにデプロイされたリソースを検索するには、 AWS CloudFormation コンソールに移動し、Managed Service for Apache Flink アプリケーションに指定した名前で始まるスタック名を特定します。リソースタブを選択して、スタックの一部として作成されたリソースを確認します。スタックが作成するキーリソースは次のとおりです。

  • Managed Service for Apache Flink アプリケーションのリアルタイムベクトル埋め込み

  • リアルタイムベクトル埋め込みアプリケーションのソースコードを保持するための Amazon S3 バケット

  • CloudWatch ログを保存するためのロググループとログストリーム

  • リソースを取得および作成するための Lambda 関数

  • IAM Lambdas の ロールとポリシー、Apache Flink アプリケーション用 Managed Service、Amazon Bedrock と Amazon OpenSearch Service へのアクセス

  • Amazon OpenSearch Service のデータアクセスポリシー

  • VPC Amazon Bedrock と Amazon OpenSearch Service にアクセスするための エンドポイント

AWS CloudFormation スタックのデプロイが完了した後のアクションは何ですか?

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

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

ソース Amazon MSKトピック (複数可) 内のデータの構造はどのようなものですか?

現在、構造化ソースデータと非構造化ソースデータをサポートしています。

  • 非構造化データは、 STRINGの によって示されますsource.msk.data.type。データは受信メッセージからそのまま読み取られます。

  • 現在、 JSONで で示される構造化JSONデータをサポートしていますsource.msk.data.type。データは常に JSON形式である必要があります。アプリケーションが不正な形式の を受け取るとJSON、アプリケーションは失敗します。

  • をソースデータ型JSONとして使用する場合は、すべてのソーストピックのすべてのメッセージが有効な であることを確認しますJSON。この設定でJSONオブジェクトを含まない 1 つ以上のトピックをサブスクライブすると、アプリケーションは失敗します。1 つ以上のトピックに構造化データと非構造化データが混在している場合は、Managed Service for Apache Flink アプリケーションでソースデータを非構造化として設定することをお勧めします。

埋め込むメッセージの一部を指定できますか?

  • source.msk.data.type が である非構造化入力データの場合STRING、アプリケーションは常にメッセージ全体を埋め込み、メッセージ全体を設定された OpenSearch インデックスに保存します。

  • source.msk.data.type が である構造化入力データの場合JSON、埋め込み用にJSONオブジェクト内のどのフィールドを選択するかを指定するembed.input.config.json.fieldsToEmbedように を設定できます。これは最上位JSONフィールドでのみ機能し、ネストされた JSONsおよびJSON配列を含むメッセージでは機能しません。.* を使用して 全体を埋め込みますJSON。

複数の Amazon MSKトピックからデータを読み取ることはできますか?

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

正規表現を使用して Amazon MSKトピック名を設定できますか?

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

Amazon MSKトピックから読み取ることができるメッセージの最大サイズはどのくらいですか?

処理できるメッセージの最大サイズは、現在 25,000,000 に設定されている Amazon Bedrock InvokeModel 本文の制限によって制限されます。詳細については、「InvokeModel」を参照してください。

サポート OpenSearch される のタイプ

OpenSearch ドメインとコレクションの両方をサポートしています。コレクションを使用している場合は OpenSearch、必ずベクトルコレクションを使用し、このアプリケーションに使用するベクトルインデックスを作成してください。これにより、 OpenSearch ベクトルデータベース機能を使用してデータをクエリできます。詳細については、Amazon OpenSearch Service のベクトルデータベース機能の説明を参照してください。

ベクトル検索コレクション、ベクトルインデックスを使用し、 OpenSearch Serverless コレクションにベクトルフィールドを追加する必要があるのはなぜですか?

Serverless の OpenSearchベクトル検索コレクションタイプは、スケーラブルで高性能な類似度検索機能を提供します。最新の機械学習 (ML) 拡張検索エクスペリエンスと生成人工知能 (AI) アプリケーションの構築を合理化します。詳細については、「ベクトル検索コレクションの使用」を参照してください。

ベクトルフィールドのディメンションとして設定すべきものは何ですか?

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

ベクトルフィールドのディメンション
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 インデックスの出力はどのように表示されますか?

OpenSearch インデックス内のすべてのドキュメントには、次のフィールドが含まれます。

  • original_data: 埋め込みの生成に使用されたデータ。STRING タイプの場合、メッセージ全体です。JSON オブジェクトの場合、埋め込みに使用されたJSONオブジェクトです。メッセージ内の 全体、または JSONの指定されたフィールドを指定できますJSON。例えば、着信メッセージから埋め込む名前を選択した場合、出力は次のようになります。

    "original_data": "{\"name\":\"John Doe\"}"
  • embedded_data: Amazon Bedrock によって生成された埋め込みのベクトル浮動小数点配列

  • date: ドキュメントが保存されたUTCタイムスタンプ OpenSearch

OpenSearch インデックスに保存されているドキュメントに追加するメタデータフィールドを指定できますか?

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

インデックスに重複する OpenSearchエントリがあると想定すべきですか?

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

複数の OpenSearch インデックスにデータを送信できますか?

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

複数のリアルタイムベクトル埋め込みアプリケーションを 1 つの にデプロイできますか AWS アカウント?

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

複数のリアルタイムベクトル埋め込みアプリケーションは、同じデータソースまたはシンクを使用できますか?

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

アプリケーションはクロスアカウント接続をサポートしていますか?

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

アプリケーションはクロスリージョン接続をサポートしていますか?

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

Amazon MSKクラスターと OpenSearch コレクションは異なる VPCsまたは サブネットにあるか?

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

アプリケーションではどのような埋め込みモデルがサポートされていますか?

現在、アプリケーションは Bedrock でサポートされているすべてのモデルをサポートしています。具体的には次のとおりです。

  • Amazon Titan Embeddings G1 - Text

  • Amazon Titan Text Embeddings V2

  • Amazon Titan Multimodal Embeddings G1

  • Cohere Embed English

  • Cohere Embed Multilingual

ワークロードに基づいてアプリケーションのパフォーマンスを微調整できますか?

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

  1. AWS MSF KPUs: アプリケーションは、デフォルトの並列処理係数 2 と 1 KPU あたりの並列処理でデプロイされ、自動スケーリングがオンになっています。ただし、ワークロードに応じて Managed Service for Apache Flink アプリケーションのスケーリングを設定することをお勧めします。詳細については、「Apache Flink アプリケーションリソース用 Managed Service のレビュー」を参照してください。

  2. Amazon Bedrock: 選択した Amazon Bedrock オンデマンドモデルに基づいて、異なるクォータが適用される場合があります。Bedrock のサービスクォータを確認して、サービスが処理できるワークロードを確認します。詳細については、「Amazon Bedrock のクォータ」を参照してください。

  3. Amazon OpenSearch Service: さらに、状況によっては、 OpenSearch がパイプラインのボトルネックになっていることに気付く場合があります。スケーリングの詳細については、「Amazon Service ドメインの OpenSearch スケーリング」を参照してください。 OpenSearch

どの Amazon MSK認証タイプがサポートされていますか?

IAM MSK 認証タイプのみがサポートされています。

sink.os.bulkFlushIntervalMillis とは何ですか? どのように設定すればよいですか?

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

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

Managed Service for Apache Flink アプリケーションをデプロイすると、Amazon MSKトピックのどの時点からメッセージの読み取りが開始されますか?

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

の使用方法 source.msk.starting.offset

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

  • EARLIEST: パーティション内の最も古いオフセットから読み取るデフォルト設定。これは、特に以下の場合に適切な選択です。

    • 新しく Amazon MSKトピックとコンシューマーアプリケーションを作成しました。

    • 状態を構築または再構築するには、データを再生する必要があります。これは、イベントソーシングパターンを実装する場合や、データ履歴の完全なビューを必要とする新しいサービスを初期化する場合に当てはまります。

  • LATEST: Managed Service for Apache Flink アプリケーションは、パーティションの末尾からメッセージを読み取ります。このオプションは、生成される新しいメッセージのみに注意し、履歴データを処理する必要がない場合にお勧めします。この設定では、コンシューマーは既存のメッセージを無視し、アップストリームプロデューサーによって発行された新しいメッセージのみを読み込みます。

  • COMMITTED: Managed Service for Apache Flink アプリケーションは、消費グループのコミットされたオフセットからのメッセージの消費を開始します。コミットされたオフセットが存在しない場合は、EARLIESTリセット戦略が使用されます。

どのようなチャンク戦略がサポートされていますか?

入力をチャンク化するために langchain ライブラリを使用しています。チャンクは、入力の長さが選択した より大きい場合にのみ適用されます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、行が長すぎると、行は文でサブチャンクされ、各チャンクはできるだけ多くの文に収まります。文が長すぎる場合、単語レベルでチャンク化されます。単語が長すぎると、文字で分割されます。

ベクトルデータストアのレコードを読み取るにはどうすればよいですか?

  1. source.msk.data.type が の場合 STRING

    • original_data: Amazon MSK メッセージからの元の文字列全体。

    • embedded_data: 空でない場合は chunk_data から作成された埋め込みベクトル (チャンク適用済み)、チャンク適用original_dataされていない場合は から作成された埋め込みベクトル。

    • chunk_data: 元のデータがチャンクされた場合にのみ存在します。での埋め込みの作成に使用された元のメッセージのチャンクが含まれますembedded_data

  2. source.msk.data.type が の場合 JSON

    • original_data: JSONキーフィルタリングが適用された後の Amazon MSK メッセージJSONからの元の 全体。

    • embedded_data: 空でない場合は chunk_data から作成された埋め込みベクトル (チャンク適用済み)、チャンク適用original_dataされていない場合は から作成された埋め込みベクトル。

    • chunk_key: 元のデータがチャンクされた場合にのみ存在します。でチャンクの元のJSONキーが含まれますoriginal_data。例えば、 の例では、ネストされたキーまたはメタデータjsonKey1.nestedJsonKeyAのようになりますoriginal_data

    • chunk_data: 元のデータがチャンクされた場合にのみ表示されます。での埋め込みの作成に使用された元のメッセージのチャンクが含まれますembedded_data

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

ソースコードの新しい更新はどこにありますか?

https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases に移動して、新しいリリースを確認します。

AWS CloudFormation テンプレートを変更して Managed Service for Apache Flink アプリケーションを更新できますか?

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

は、ユーザーに代わってアプリケーションを AWS モニタリングおよび保守しますか?

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

このアプリケーションはデータを の外部に移動しますか AWS アカウント?

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