2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Elastic Stack (Elasticsearch)Advent Calendar 2024

Day 5

AWS Bedrock Integrationを使用してBedrockの使用状況を可視化する

Last updated at Posted at 2024-12-04

はじめに

生成AIを利用しているとどのぐらいトークンを使ったのか、といったメトリックや、生成AIへのプロンプトとレスポンスの生データを見たい、というLoggingの要望がかなりあるのではないかと思います。
Elastic v8.16.0からAWS BedrockのInvocation LogとMetricを取得して可視化するIntegrationがリリースされました。ドキュメントはこちらです。
https://www.elastic.co/docs/current/integrations/aws_bedrock
この機能についてのブログもリリースされています。
https://www.elastic.co/observability-labs/blog/llm-observability-aws-bedrock

本記事はv8.16.0をベースに記載しています

手順

以下の3ステップです。

  1. Bedrock Invocation Logの設定を行う
  2. Bedrock Integrationを設定する
  3. Elastic Agent (or Serverless ForwarderやFirehoseなど)でElasticsearchへの送信設定をする

データの流れとしては
Bedrock Invocation Log => CloudWatch Log => Elastic Agent => Elasticsearch
となります。

Bedrock

Bedrock Invocation Loggingで検索すると結構ヒットします。
例えばこことか。
https://dev.classmethod.jp/articles/amazon-bedrock-model-invocation-logging/

こんな感じで設定します。
スクリーンショット 2024-11-28 14.08.28.png

あらかじめCloudwatch LogのLog Groupを作成しておいてください。
Service roleはこの画面でCreate and use a new roleを選べばよしなに作成してくれます。
設定に問題がなければ、以下のようなログがCloudwatchに表示されます。
スクリーンショット 2024-11-27 13.22.33.png

ログデータ確認

BedrockのPlaygroundでChatをやってみるのが一番手っ取り早いです。
スクリーンショット 2024-11-27 13.20.37.png
その後、Cloudwatchには以下のようなログが出てきます。
スクリーンショット 2024-11-27 13.26.03.png

AWS Bedrock Integration

Integrationはログを自動的に整形して可視化のダッシュボードを作成するものです。
Ingest PipelineとKibana Lensが主な構成要素です。

まず3本線メニューからManagementの下にあるIntegrationsをクリックします。
スクリーンショット 2024-11-27 17.23.02.png

検索バーがあるのでbedrockと入力すると以下のようにフィルタされるので、表示されているAmazon Bedrockをクリックします。
スクリーンショット 2024-11-27 17.24.01.png

右上のAdd Amazon Bedrockをクリックします。
スクリーンショット 2024-11-27 17.26.38.png

次の画面はクラスタ作成後に初めてIntegrationsを追加する人だけ表示されます

この画面が表示されたら、一番下のAdd integration only (skip agent installation)をクリックします。
スクリーンショット 2024-11-27 17.28.34.png

次の部分に入力して、最後に一番下にあるSave and continueをクリックして保存します。

  • Access Key ID
  • Secret Key
  • Collect Logs from Cloudwatchを有効にしてからChange defaultをクリックして詳細設定を展開してLog Group ARNを入力
    スクリーンショット 2024-11-27 17.41.29.png

次にAdd Elastic Agent to your hostsをクリックしてElastic Agentをインストールします。
スクリーンショット 2024-11-27 17.44.35.png

少しスクロールダウンすると各環境におけるインストールコマンドが表示されていますので、これをコピー&ペーストしてインストールします。
スクリーンショット 2024-11-27 17.47.17.png

問題なくインストールができて設定に問題がなければ以下のようになります。
スクリーンショット 2024-11-27 18.00.47.png

ダッシュボード

データが来たところで、ダッシュボードで確認してみましょう。
3本線メニューからDashboardをクリックします。
スクリーンショット 2024-11-27 18.07.39.png

[Amazon Bedrock] Overviewをクリックします。他にもダッシュボードがいっぱいあって見つからない場合は検索窓にbedrockと入れてください。
スクリーンショット 2024-11-27 18.09.23.png

デフォルトでは直近15分のデータしか表示しません。PlaygroundのChatを触ったのはだいぶ前だと思いますので、右上のLast 15 minutesの横のカレンダーアイコンをクリックして、Playgroundを操作した時間が範囲に入るように時間範囲を選びます。
スクリーンショット 2024-11-27 18.12.09.png

全体画面

上の方はメトリック、真ん中あたりにInvocation Logがあります。
メトリックで気になるのはToken Usageあたりではないかと思います。
-Amazon-Bedrock-Overview-Elastic.png

Discoverで確認

Discoverに移ってlogs-*を表示し、フィールドをbedrockでフィルタします。Bedrock関係のフィールドが表示されるので、興味のあるフィールドをクリックしてみましょう。
スクリーンショット 2024-11-28 13.21.08.png

aws_bedrock.invocation.model_idというフィールドは全てのログに入っているので、これが存在することを条件とするフィルタを掛けると、Invocation関係のログのみ表示できます。
スクリーンショット 2024-11-28 13.25.22.png

当然全文検索エンジンなので、Chatで使った単語を打ち込めばそれでも検索できます。
例えばここでは"ERR-1000"というエラー番号で検索をかけています。
エラー番号などに曖昧な検索は必要ないので、ここはキーワード検索が必須になると思います。
スクリーンショット 2024-11-28 13.28.18.png

誰が使っているかを知りたい場合はgen_ai.user.idに入っています。

まとめ

Elasticでは生成AIと連携するツールを数多く出してきました。
本記事の機能を利用することにより、生成AIにかかるコストの把握や、プロンプトエンジニアリングがやりやすくなります。
また誰が使用しているかも一目瞭然ですので、セキュリティチェックにも有用です。

検索/O11y/Security全てできるElasticは生成AIを利用するのに最適なプラットフォームです。
是非お試し下さい。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?